魔王の憂鬱 -3ページ目

魔王の憂鬱

情報通信っぽいことを、分かりやすく述べているつもりです。

突然だが、こいつを見てくれ。こいつをどう思う?



魔王の憂鬱



何かいきなり長ったらしくなっていますが、

これは私がマクロを作成する際、まず記述する一連の流れです。

いわゆる「テンプレート」ですかね。



○変数の宣言


    Dim 変数名 As 変数の種類


私がよく使うのは「ブック」「シート」「セル範囲」「数値型」です。

その他に「文字列型(String)」も使っているかな。



○変数の初期化


    Set 変数名 = 変数の対象


「ThisWorkbook」というのは、マクロを記述しているExcelを指定する記述です。

今開いているExcelを指定する「ActiveWorkbook」という記述もあります。


「Worksheets()」でワークシートを具体的に指定します。

上記例のように数値で指定してもいいですが、

「Worksheets("testSheet")」と、シート名を明記する指定方法もあります。


testNumberのみ「set =」の記述がないことにお気づきだろうか・・
intやstringなどのデータ型はsetはいらないんですね。

そうなると全てを「変数名」と書いてはいけないでしょうが;


今でもこの辺りはちょくちょくエラーに引っかかります。



○メモリの解放


    Set 変数名 = nothing


setしたものは最後にnothingとして後片付けをしておきましょう。

小さなマクロであれば気にする必要はないのですが、

チリも積もれば・・です。書いておくクセをつけておきましょう。

ちなみにsetしていないtestNumberはこの処理は必要ありません。



どうでしょう?

大分プログラムっぽくなってきましたね。

以前にご紹介した「Msgbox」と組み合わせると、色々試すことができます。



Sub test2()

Msgbox ThisWorkbook.Worksheets(1).range("A1").value


End Sub



一行にまとめてしまいましたが、

このExcelブック」の「1枚目のシート」の「A1セル」の「」を「出力する

というマクロです。


シートやセル範囲を変えてみたり、

セルの内容を別のセルに代入してみたりして遊んでみて下さい。

こんな話があります。




ある著名な科学者が都内の高等学校へ訪問した際、先生を集めてこう言いました。

「ここにLEDの発光棒があるのだが、これらを使って100までの数字を表現したい。

最低いくつの棒が必要だろうか?」










(あなたならいくつと答えますか?少し考えてみて下さい)













体育教師が言いました。

「1から100までですか?100個あれば十分でしょう?」



国語教師が言いました。

「16個ですかね。LEDをデジタル時計のように並べればいいのですよ。

"日"のようにね、これが7個×2桁で14個。百の桁は「1」だけ表せばいいので

2個・・いや、1個で十分か。あらら、15個で事足りました。」



数学教師が言いました。

「1、2、4、8、・・8個だね。

簡単だよ。2進数で表記すればいいのさ。しかも128まで表現できますよ。」



そこに偶然通りかかったIT技術者が言いました。

「要件は数字を表現する事だけですね?それなら1個で十分。

LEDをモールス信号のように点滅させて、100通りのパターンを作ればいいのですよ。

どの数字を示すのかは解読しないと分かりませんが、表現するだけなら問題ありません。」




・・さて、あなたの考えはどの先生と一致していましたか?







まぁ完全な創作話です。


・単純な個数?

・デジタル時計の表現?

・2進数?

・モールス信号?


まだまだ考えられますね。

実現可能性に捉われず、どこまで発想を飛躍させて考えられるかが大切です。

Excelにマクロを保存したとき、

それ以降開くたびにマクロを有効にする必要があります。

セキュリティのレベルによっては開く事すらできなかったりします。


以前お話した通り、悪意を持ったマクロが勝手に動かないように

このような設定がなされているのです。




魔王の憂鬱


が、

それでも面倒ですよね。うん、面倒。




実は、この作業をしなくても使えるExcelマクロが一つだけあるんですよ。

それは「個人用マクロブック」と呼ばれるものです。


個人用マクロブックとは、その名の通り個人的に使うためのマクロでして、

どこかに存在するExcelの設定フォルダに、

ある特定の名前をつけて保存することで設定できます。



まぁ「百聞は一見にしかず」「習うより慣れろ」ってなもんで、

早速設定してみましょうかね。



●フォルダの位置

C://Documents and Settings/ユーザー名/ApplicationData/Microsoft/Excel/XLSTART


この「ApplicationData」が隠しフォルダなので、普通に見つかることはないかもしれませんね。



●ファイル名

PERSONAL.XLS


上記のフォルダを開いて、この名前でExcelを作りましょうか。




・・はい。これで設定完了です。


「大げさな事を言っておいて、これで終わりですか?」


・・終わりです。終わりどころか、

Excel上でマクロの保存先として「個人的マクロブック」が選べるので、

こんな面倒な設定すら本来は知る必要もなかったりします。


「じゃあどうしてこんな面倒な方法を教えやがったんですか?」


それは、上記設定が「マクロの記録」のときに選択できる設定だからです。

最初に申したとおり、私はマクロの記録を使わない方法でマクロを扱いますので

手動で行いたいがために、このような面倒な説明をしている訳です。


一度個人用マクロを作ってしまえば、

あとはマクロの編集画面に

魔王の憂鬱


このように個人用マクロも編集できるようになります。


次回以降Excelを開くと、このPERSONAL.XLSが裏で勝手に開かれます。

開かれますが、非表示扱いなので見えていないだけなのです。




今回は個人用マクロの作成までで抑えておきましょうかね。

個人用マクロは主に汎用的に使いたいマクロを登録します。


さて、次回のマクロは普通のマクロか、それとも個人用マクロか、

どちら用のマクロをご紹介しようかな。




●参考文献


All About 「エクセルで個人用マクロブックを使うには」

http://allabout.co.jp/gm/gc/297809/