2012年5月10日 (木)

[Excel2007または2010]挿入機能がグレー表示/画像が貼り付けできない

お久しぶりの更新。
前にも引っかかったことがあったのに覚えてなかったので、今回はちゃんとメモすることにしました…。

今回の問題は、Excel2010で挿入タブにある昨日のほとんどがグレー表示で、
画像やオートシェイプの貼り付けができないというもの。
よく見たら、保存してあるはずのオートシェイプまで消えている・・・なんで?

まずは、保護シート設定や、共有設定にしているかどうかを疑ってみたけれど、どれも違う。
じゃあなんだ?と、途方に暮れてたんだけど、やっと解決策が載ってるところを発見。

【excel2007or2010の挿入タブがグレー表示】
http://answers.microsoft.com/ja-jp/office/forum/office_2007-excel/excel2007or2010%E3%81%AE%E6%8C%BF%E5%85%A5/352bc857-de59-e011-8dfc-68b599b31bf5?msgId=a7e7274f-755a-e011-8dfc-68b599b31bf5

【Excel2010で挿入タブの一部がグレーアウト】
http://irumi.sblo.jp/article/43761090.html

上記のサイトに解決法が載ってた!助かりました。ありがとうございます。

■、挿入タブを使えるようにして、消えていた画像を表示させるには…
1. [ファイル] タブの [オプション] をクリックし、[Excel のオプション] を開く
2. [詳細設定] をクリックし、[次のブックで作業するときの表示設定] の項目まで下にスクロール
3. [オブジェクトの表示] の [すべて] にチェックをし、[OK] ボタンをクリック

これで、挿入機能がまた使えるようになったし、消えてた画像も見えるようになった!よかったよかった。

でも、なんで詳細設定が変わったのかなーと思ってたら、その原因もちゃんと書いてあった。
キーボードの[Ctrl]+[6]で表示の切替になるようで、
[Ctrl]+[5]の取り消し線ショートカットキーを使ってた時に誤操作してしまったらしい。
これは気をつけないとあかんなー。

2012年2月23日 (木)

[ASP.NET]IEのファイルダウンロードダイアログの「開く」ボタンを非表示にする方法

またまた、お客さんから。
『ダウンロードするときに「開く」を押して間違ってXボタンを押しちゃうのをどうにかしたい!』
とのこと。
しかもたまたまそこのダウンロードの機能だけ、ダウンロード時にフラグを更新してしまって
1回きりしかダウンロードできない仕様なので、
「開く」→ファイルのXボタンを押すともう2度と出てこなくなるんだよね…。
(Temporary Internet Filesを探してもらうのも大変だし。。。)

というわけで、ダウンロードファイルは「保存」しか使えないようにしましょうと提案。


これは下記のサイトを参考にさせていただきました。

ASP.NET(C#)でIEのファイルダウンロードダイアログボタンをカスタマイズ niyoな日記
http://niyodiary.cocolog-nifty.com/blog/2009/09/aspnetcie-b7f4.html

ボタンを消せることにも驚いたけど、いろんな方法があるのね。
(参考にしたサイトでは3種類の方法がありました)


私はヘッダのmetaタグに設定する方法にしました。

<meta id="metaDownloadOptions" runat="server" name="DownloadOptions" content="noopen" />
※サーバー側で設定をいじることがなければ、「runat="server"」は不要。

この1行を追加すると、
見事にダウンロードダイアログから「開く」ボタンが消えたので、一件落着!

2012年2月22日 (水)

[ASP.NET][AjaxControlToolkit][Javascript]NumericUpDownExtender操作時のイベント

テキストボックスにAjaxControlToolkitのNumericUpDownExtenderを付けて、数値を1ずつ増減できるのを付けたのだけど、
お客様からの要望で、

1.1〜9は"01"〜"09"に。
2.UpDownする度に、ほかのコントロールを操作したい。

そしてこれをサーバー側ではなく、クライアント側で処理してほしい、
つまりJavacsriptで実現してほしいということになった。

NumericUpDownExtenderにUpDownする時のイベントがあれば簡単だなーと思っていたら、
そんなものは用意されてなかった。。。(私が見つけられなっただけかもしれないけど…)

仕方がないので、TextBox.Attributes["onchange"]に(<input type="text" onchange="・・・" />のこと)
関数を書くことにした。

下に、テキストボックスと最小値とチェックボックスのIDを渡し、
最小値以上の数値が入力された場合はチェックボックスにチェックを入れるという関数を書いてみた。
-------------------------------------------------
function txtChange(obj, min,chkid){
    var e = obj;//テキストボックス
    var i = parseInt(e.value);
    var chk = document.getElementById(chkid);

    if(i < 10){
        e.value = "0" + String(i);
    }
    if(i > min && !chk.checked){
        chk.checked = true;
    else{
        chk.checked = false;
    }
}
------------------------------------------------
これで1.と2.の実現ができた。

しかし、問題が…。
このチェックボックスが曲者で、UpDownの操作が無くても手動で設定できる仕様だったので、
初期ロード時にDBから値をセットした時や、
何かの操作でPostBackが発生してしまう時にもこのtxtChange関数が動いてしまって、
手動で設定した内容が消えてしまうのだ。
(例:最小値2に設定し、テキストボックスには4と入力したが、チェックボックスのチェックは手動で外した場合、
PostBackが発生すると、またチェックがついてしまう。)

NumericUpDownを操作するときだけ、
つまり、サーバー側の操作でテキストボックスの値が変えられる時以外で上の関数を呼び出したいんだけどなぁ。

ちょっと悩んだけど、Page_Load「以外」がわかればいいので、
Javascriptのwindow.onloadを使えばいいんじゃないか!とひらめいた。

というわけで、ページロードがされたかどうかを判断するフラグを置いて、ロード時に"1"を立てるようにした。
--------------------------------------------
<input type="hidden" id="OnLoadFlg" 〜/>を設置。
======================
window.onload = function(){
    document.getElementById("OnLoadFlg").value = "1";//ページロードされた場合1を立てる
}
function txtChange(obj, min,chkid){
    var e = obj;//テキストボックス
    var i = parseInt(e.value);
    var chk = document.getElementById(chkid);
    var onLoadFlg = document.getElementById("OnLoadFlg");

    if(i < 10){
        e.value = "0" + String(i);
    }
    //ページロード時以外の場合にチェックの処理
    if(onLoadFlg.value == "0"){
        if(i > min && !chk.checked){
            chk.checked = true;
        else{
            chk.checked = false;
        }
    }
    onLoadFlg.value = "0";//フラグを元に戻す
}
------------------------------------------------

ちょっと不細工だけど、これで思ったような処理ができた。
もっとスマートな方法があれば教えてください><

2012年2月13日 (月)

[ActiveReports] 環境によって余白やページサイズが変わるのを防ぐには

久々にドツボ。
本番環境と開発環境で、ActiveReportsで作ったPDFのページサイズが違う・・・
クライアントからの問い合わせで発覚。

<開発環境>
Visual Studio2008 C# / ASP.NETのWebアプリ
.NET Framework 2.0
ActiveReports for .NET 3.0J SP3 Version 5.2.1053.1

<ページサイズの違い>
開発環境:222.2mm×296.7mm(※現行システムもこのサイズ
本番環境:222.2mm×279.4mm

なんと2cm弱も違う。
現行システムから、ページ設定は1ミリも変えてないのになぜ…?
最初は、レポートデザインのDetailやPageFooterの縦の長さを変えたらいけるだろうと思ってたら、全然うまくいかず。
余白を2cm削ってみたものの、現行システムと全く同じのレイアウトにならないので微妙…。

ActiveReports for .NET 3.0Jのリリースノートには、

  レポートの作成および表示処理は、ご利用の環境のハードウェア構成等に依存します。
  特定のOS、プリンタ、ドライバなどの組み合わせによって、プレビューや印刷結果が異なったり、一部正しく出力されない場合があります。
ftp://ftp.grapecity.com/trial/ActiveReportsNET/ReleaseNote_5210531.htm

と書いてある。
じゃあ原因は、サーバの環境依存なのかな?
というところまではわかったんだけど、結局どうすれば良いかわからず、藁にもすがる思いで、
先輩に「どーすればいいんですか(>Д<;)」と聞いてみた。

そしたらすんなり、方法を教えてもらえた!さすが先輩(・∀・)
参考URL
http://www.ilovex.co.jp/Division/SRD/archives/2008/03/activereportpdf.html

これと、先輩の送ってくれたコードを元に、
こんな関数を追加してみた。

/// <summary>
/// PDFページ設定
/// </summary>
/// <typeparam name="ReportType">帳票タイプ</typeparam>
/// <param name="rpt">帳票インスタンス</param>
/// <remarks>サーバ環境依存によるページ設定違い回避</remarks>
public static void PdfSetting<reporttype>(DataDynamics.ActiveReports.ActiveReport3 rpt)
where ReportType : DataDynamics.ActiveReports.ActiveReport3
{
    rpt.Document.Printer.PrinterName = "";//プリンタの設定を使用しないようにする
    rpt.PageSettings.PaperKind = System.Drawing.Printing.PaperKind.A4;
    rpt.PageSettings.PaperWidth = (float)8.27;//inch
    rpt.PageSettings.PaperHeight = (float)11.69;//inch
}

これを帳票インスタンス生成時に

...PdfSetting<reporttype01>(this);

とか書いてやれば、初期化してくれるどの帳票で呼び出しても大丈夫(・∀・)

参考URLの記事は、自分でも調べてたときにヒットして一読してたのに、すっかり見落としてた…
これを読んで必要な情報かどうか判断できるというのは技術と経験の差だわね…
自分の未熟さを実感したので、これからも精進しないと><

2012年1月10日 (火)

[VBA]定義された名前を削除する

何度も使いまわされたExcelファイルには結構ゴミ(既に意味のない定義された名前)がついてることが多々ある。
名前が定義されていると、ファイルサイズが大きくなったり、
前に使っていた人が無意識にサーバ名とか顧客のフォルダ名を登録しててそのままだったりする
(セキュリティ的にもどうなの、、、)
ので、気付いたら消すようにしている。


通常は、

数式>名前の管理
で、不要の名前を選択して削除
(Excel2010)

挿入>名前>定義
で、不要の名前を選択して削除
(Excel2003)

でうまくいくんだけど、Excel2010では
名前リストを全削除したのに、保存時の互換性チェックで

「このブックのいくつかの数式は、現在閉じている他のブックにリンクされています。
 以前のバージョンの Excel では、リンク先のブックを開いていないときにこれらの数式を再計算すると、255 文字を超える部分は返されません。
場所:定義された名前」

というメッセージが表示されてしまう。

そこでVBAに以下のコードを書き込んで実行し、名前を全部消してしまうことにした。
-------------------------------------------------
Sub ClearAllNames()

    Dim objName As Name

    For Each objName In ActiveWorkbook.Names
        objName.Delete
    Next objName

End Sub
-------------------------------------------------

上のコードを実行してから保存すると、上記のメッセージはでなくなった。
実行して、名前の定義が消えていることを確認したら、VBAに追加したコードは削除しておこうね。(そのコードが次にゴミになったりいらんことをしたりするので・・・

2011年12月21日 (水)

[ASP.NET] ValidatorをJavascriptから呼び出す方法

ASP.NETのButtonにOnClientClickを追加して、Javascriptの方で警告文(とある条件の時にメッセージは出すけど処理は続行しますよー的なの)を出すようにしたんだけど、そうするとButtonのValidationGroupに紐付けているValidationControlたちが動かなくなってしまった・・・。

同じように設定しているLinkButtonはうまくいくのになぁ・・・。<a>と<input>違いなのかしら?

動かないのは仕方ない。無理やり入れて動かしてみよう。
さて、検証処理はどこで動いているか。

デバッグ実行すると、Visual Studioのソリューションエクスプローラに「スクリプトドキュメント」というのが現れる。
その下に、「Windows Internet Explorer」>「(表示中のページの動的に作られたソース)」>「ScriptResouce.axd?=1***」がいくつか現れるはずなので、
"var Page_ValidationVer・・・"
で始まるファイルを探そう。
このファイルがValidatiorの検証処理の本体っぽい。

そしてページのHTMLには

var Page_ValidationSummaries
var Page_Validators

というものが作成されているはず。
Page_ValidationSummaries配列にはValidationSummaryが格納され
Page_Validators配列にはページ内のすべてのValidatiorが格納されている模様。
ほほう。

Page_ValidationSummaries、Page_Validatorに格納されている検証オブジェクトを使用して、
ScriptResouce.axd〜内で検証処理を行ってるみたい。

というわけで、ボタンクリックをしたときに警告文(確認)を出し、そのあと確認メッセージを出してから、
検証を行うJavascriptを書いてみた。
ButtonのOnClientClickに以下を記述。

----------------------------------

function checkSave() {
var ret = true;
ret = checkName();//入力欄にある値が入っていない場合は注意喚起のメッセージを出す。confirm('名前が入力されていません。');
if(ret == true) {
var ret2 = confirm('保存しますか?');
if(ret2 == true) {
var result = false;
result = Page_ClientValidate('CheckSave');//ValidationGroup="CheckSave"の検証を行う
return result;
}
else { return false; }
}
else { return false; }
}


----------------------------------
この「Page_ClientValidate('(該当のValidationGroup)');」
は、ScriptResouce.axd〜内にある、ValidationGroupが同一のすべての検証を行う関数。
これを無理やり書き込んだらうまく動くようになった!
はぁ、難しいなー><

【参考】OnClientClickとValidatorの関係
http://d.hatena.ne.jp/manymanytips/20110120/1295505521

ASP.NETのValidatorをjavascriptから呼び出す
http://d.hatena.ne.jp/manymanytips/20110117/1295243420

ASP.NETのValidator理解のための覚え書き
http://mitc.xrea.jp/diary/070

2011年12月20日 (火)

[Visual Studio2008]デバッグ実行が重くて遅い・・・

Visual Studio2008のデバッグ実行が遅すぎてイライラしてきた。
どれだけ遅いかというと、F5を押したあと、トイレに行って帰ってきてもまだ画面が真っ白というありさま。酷い。
(他のマシンではサクサク実行できるのできっと私のマシンがヘボいんだ・・・><)

なんとかならんのかー!!と思って調べてみると2つ改善できる方法があるみたい。

その1:Visual Studio2008のスタートページの更新をしない

「ツール」メニュー>「オプション」でオプション画面を開いて、
「環境」>「スタートアップ」>「スタートアップ時」の設定項目を「空の環境を表示」に。
「コンテンツをダウンロードする間隔」のチェックも外しておこう。
(「空の環境を表示」に設定にするとこれはどっちでもいいのかな?)

【参考】 Visual Studio 2008でデバッグ実行の開始・終了が重い
http://darthddk.blog55.fc2.com/blog-entry-1.html

でも私の場合は改善せず。。。(´・ω・`)Visual Studioの起動は早くなったけど。
じゃあ、これならどうだ!↓


その2:.suoファイル(ソリューション ユーザー オプション)を削除する

ソリューションを閉じてから、該当.slnファイルを作る時に一緒に作られる.suoファイルを削除するといいらしい。
※.suoファイルは隠しファイルになっているのでもし見つからなければフォルダオプションで隠しファイルも見えるように設定しとこう。

見てみると.suoファイルがいつの間にか、数MBの容量になってた・・・。これが原因?
.suoファイルってのは、ソリューションに関連付けられたオプションを記録するファイルなのだけど、
http://msdn.microsoft.com/ja-jp/library/xhkhh4zs(v=vs.90).aspx )
何を設定してたか忘れたので(ぇ)一旦リセットしちゃえ☆ということで、
.suoファイル・.slnファイルを消して、ソリューションファイルを作り直すと、
新たに作成された.suoファイルは数KBに!めっちゃサイズが小さくなってる。
デバッグ実行してみると、前より早くなった!(でもサクサクとまではいかなかった・・・

【参考】 Visual Studio 2008 デバッグモードでプログラムの起動が遅い
http://shimaura.cocolog-nifty.com/blog/2011/06/visual-studio-2.html

てなわけで、上の2つをやってみたら前よりは改善されたのでよしよし。
マシン替えてくれないかなー、お金ないんかなー・・・

[Excel]-画像のコピー

2003では、Shiftキーを押しながら、編集>図のコピー
http://hamachan.info/excel/zu-kopi-.html

2007では、ホーム>貼り付け>図>図としてコピー
http://hamay.blogspot.com/2007/03/blog-post_26.html

2010では、ホーム>コピー>図としてコピー
http://www4.synapse.ne.jp/yone/excel2010/command/clipboard.html

だそうです。
統一してくれよ・・・

2010年4月 9日 (金)

ワインの学校に通い始めました♪

更新が長らく途絶えてましたが、ちょっと復活!

4月からワインの学校通うことにしました。
ワインを飲むのは好きなんだけど、知識があまりなかったので少しでも勉強して美味しく飲みたいなぁと思いまして。
あと、習い事をして新しい世界を見てみたかったっていうのもあります。(大袈裟)
思えば、小中高大とずっとクラブ活動とか習い事をしてきたので、社会人になって何もしてないっていうのが、今頃になって物足りないってことに気付いてムズムズしてきたわけですw

というわけで、復習を兼ねて学校で勉強したことをちょこちょこここでまとめていこうと思いました。
週1回の授業なので、できるだけ週1回のペースでUPしていきたい!(という希望w)です。(どこまで続けられるのやら)

さて、私が通うのは梅田某所のワインの学校です。(たぶんググったらすぐ見つかる)
学校の創始者の方はワイン業界では有名な、あの漫画の『もやしもん』でも紹介された「パリスの審判」(1976年にカリフォルニアワインとフランスワインをブラインドテイスティングする試飲会があり、当時無名だったカリフォルニアワインが勝ってしまった事件)の試飲会を企画したイギリス人ワイン商!学校説明会で聞いてビックリ!
で、ワイン初心者からソムリエ試験対策までとレベルやジャンルも豊富だったので、ここならしっかり勉強できそう!と思ってこの学校に通ってみようと思いました。

でも入試があるわけじゃなくて、熱意(と授業料dollar)があれば誰でも入れますhappy01
私が入ったのは一番基本的なコースで、ワインの基礎から学べるコース。
1回の授業あたり、1時間授業+1時間テイスティングの計2時間で9月はじめまで半年間学ぶことにしました。

と、通うきっかけと学校の紹介はここまでにして・・・
早速、授業の内容をまとめ。(覚書なので箇条書きです…)
----------------------------------------------------------------
【第1回 ワインとの出会い】
・ワインは古代メソポタミアの頃から作られていた。
・ギリシャ・ローマの勢力拡大によってヨーロッパ中に広がる。
・キリスト教では重要なツールとして用いられた。
・大航海時代に(ヨーロッパから見た)新世界へのキリスト教の伝播とともに北南米、南アフリカ、オーストラリアにも広がる。(今でも新世界ワインって言うところ)
※この辺りは世界史でも習いますよね。懐かしい。

中近東では古くからワインを生産しているのですが、日本ではあまり流通していないそうです。生産量の問題かな。

■ワインに必要な3大要素
・気候(水・土・日当り)
・人(育て方)
・伝統(土地柄)

--------------------------------------------------------------------
【テイスティング】

wineテイスティングの基本>

  • 目・鼻・口で分析。
  • 思ったことを全て書き留めること。
  • 表現するための知識、ワインのバックグラウンドを知っておくとなおよし。
  • 様々な香りを覚えること。
  • 香りの強さを知るために、グラスを近づけすぎないで嗅ぐこと。
  • 鼻をリセットするためには自分の匂いを嗅ぐ。
  • 赤ワインの味のリセットにはフランスパンの白い部分を食べる(舌になじませる)。

wineワインを上手く注ぐには>

  1. ビンの底を持って、ゆっくり注ぐ。
  2. そっと注ぐのを止めて、ビンの口を少し回して雫を切る。

今回は3種類。
■№1
・生産者:Veuve Clicquot Ponsardin(ヴーヴ・クリコ・ポンサルダン) シャンパン
・キュヴェ名:Yellow Lavel(キュヴェ名とは銘柄のようなもの)
・原産国:France(フランス)
・産地:Champagne(シャンパーニュ)
・AOC:Champagne(シャンパーニュ)
※AOCは原産地呼称制度で、つまりはそこの土地で作られたワインというフランス政府のお墨付き的なもの。
・収穫年:NV(ノン・ヴィンテージ:ヴィンテージ(収穫年)がラベルに記載が無く、様々な年のワインをブレンドされ造られている。それは寒い土地なので収穫量が少ないため)
シャンパンで収穫年が書いてあるものはプレミアモノ。
寒い土地では赤ワインのブドウも育ちにくいので、シャンパンのロゼも高価。

・シャンパンに使うワインのブドウは育つのに3年、2次発酵までに2~3年と生産にかなり手間がかかるため、お高い。

・ワインに良く書いてあるBRUT(ブリュット)は「辛口」という意味。

wineシャンパンの安全な開け方!>

  1. 栓に巻きつけてある針金は素早く取る。
  2. ガスに押されてコルク栓が出てくるが、飛び出ないようにコルク栓を軽く押さえながら、横にも力を加えてコルク栓を斜めになるようにし、ガスを抜く。
  3. ガスを抜いて音が出なくなったらゆっくりとコルク栓を抜く。

■№2
・生産者:Chateau Lagrange(シャトー・ラグランジュ) 赤ワイン
・原産国:France(フランス)
・産地:Bordeaux(ボルドー)
・AOC:Saint-Julien(サン・ジュリアン)
・収穫年:2004年
やや濃く、紫がかった赤色、粘性は強く、香りは複雑(樽、スモーク、ベリー系、ペッパーの香り)
少し渋め。
私は結構好きな味だったけど、濃いワインだったので苦手な人もいるかも。

■№3
・生産者:Chateau Rieussec(シャトー・リューセック) 白ワイン
・原産国:France(フランス)
・産地:Bordeaux(ボルドー)
・AOC:Sauternes(ソーテルヌ)
・収穫年:2006年
黄金色、粘性は強い、ハチミツのような香り、とてもフルーティで甘みが強い。
ほんとに甘かった。白は辛口が好きな方だけどこの甘さは好き。
ハチミツを飲んでるみたいだった。

ワインに詳しい方なら「結構いいワイン飲んでる?」って思われるかもですが、
これは初回の授業なので特別だそうです。
今後の授業では安価なワインも出てきます。
ワインは高いから絶対美味しい、安いから不味いってわけでもないし、ワイン一つ一つに個性があって飲む人の味の好みやあわせる食事によっても美味しさが左右されるので(嗜好品ですから)、自分にあったワインを見つけるのは大変。
だから、少しでも自分で見つけられるようになれたらいいな。。。

さて、来週も頑張ろうnote
クラスの人たちとも仲良くならなきゃhappy02

2008年12月 9日 (火)

AS3:今更だけど、便利サイトメモ書き

Flashを今まで使ったことがなかった超初心者の私が、ActionScript3.0を勉強する上でとても参考にさせていただいたサイトです。

pencilAdobeのFlashデベロッパーセンター
クイックスタートをよく読めば、基本が押さえられます。

pencilAdobe Flash CS3 ドキュメンテーション
Flash CS3のヘルプのWeb版。ヘルプと内容は同じ。

pencilFLASH-japan
Flashに関するコミュニティサイト。ActionScript3.0特設会議室は便利。

pencilActionScript3.0のwiki(PUWIKI)
よくまとまってるし、サンプルも付いててわかりやすいです。

【個人ブログ】
penciltrick7.com blog

pencilActionScript3.0 勉強部屋

pencilmoriblog

pencilpyro blog

フォトアルバム

2012年5月

    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

My Photostream

  • Flickrにアップしてる写真の一部です。
    www.flickr.com
    This is a Flickr badge showing public photos and videos from micek_flicek. Make your own badge here.

クリック募金

  • クリックで救える命がある。
Powered by Six Apart