人気ブログランキング |
<< 「TH69の亜米利株」のグラフ... 「TH69の亜米利株」Ver.... >>

個人用マクロブックの使い方

TH69です。

今回はエクセルのマクロネタですので、興味のない方は読み飛ばして下さい。

新しいPCでは「個人用マクロブック」という便利なエクセルの機能をまだ使っていないので、いい機会と思いその使い方を記事にしてみました。「個人用マクロブック」は汎用のマクロなどをいつでも使えるように登録できる機能で、使い方によっては邪魔臭い作業を大幅に短縮することができます。

エクセルのリボンに「開発」が表示されていない場合は、ファイル>オプション>リボンのユーザー設定を開いて「開発」にチェックを入れて表示させて下さい。
e0382354_13303787.gif

では、「個人用マクロブック」を実際に使ってみましょう。

今回は行列番号の表示と非表示の切り替えをやってみたいと思います。

何でもいいのでエクセルのブックを開き「開発」タブを表示すると、そこに「マクロの記録」がありますのでクリックします。
e0382354_13303795.gif


すると「マクロの記録」ウインドウが開きますので、「マクロの保存先」の右端にある▼をクリックし、「個人用マクロブック」を選択し「OK」ボタンを押します。
e0382354_13303830.gif


「OK」ボタンを押すとマクロの記録が始まりますので、ファイル>オプション>詳細設定>次のシートで作業するときの表示設定にある「行列番号を表示する」のチェックを外し「OK」ボタンをクリックします。
e0382354_13483639.gif


元の画面に戻ったら開発タブの「記録終了」をクリックしてマクロの記録を終了させます。行列番号は非表示になっていますね。
e0382354_08513947.gif


そして同じ開発タブの「Visual Basic」をクリックします。
e0382354_08514003.gif


すると「Visual Basic for Applications」というウインドウが開きます。よく「VBA」とか言ってるあれですね。この画面はVisual Basic Editor(VBE)というもので、VBAのコードを編集するためのエディタとなります。
e0382354_13571376.gif


その左画面にある「VBAProject(PERSONAL.XLSB)」のツリーを開き、標準モジュールにある「Module1」を開きます。すると何かプログラムのコードのようなものが表示されます。これが今マクロ記録した「行列番号非表示」のVBAコードとなります。
(この「PERSONAL.XLSB」が個人用マクロブックの本体で、通常は非表示のブックです。)

先頭がシングルコーテーションの行はコメントなので、結局VBAコードとしては「ActiveWindow.DisplayHeadings = False」だけのようです。簡単ですね。英語が苦手な私でも何となくわかります。「アクティブウインドウの行列番号表示→しない」みたいです。
e0382354_14015666.gif


それでは試しに「= False」の部分をクリアし、「=」を入れてみましょう。すると下の画像のようにリストが表示されますので、Trueを選択してダブルクリック(もしくはTabキー)で確定させます。「True」なので、多分行列番号が表示されるはずですね。
e0382354_14221972.gif


VBE画面のツールバーに右三角の実行ボタンがありますので押してみましょう。その時どのマクロを実行するのかVBEは判断できませんので、カーソルを実行したいマクロの「Sub~End Sub」の間に置くようにしてくださいね。
e0382354_14255390.gif



思い通りに行列番号が表示されました。簡単ですね(笑)。
でも、これはこれで邪魔臭いですね。行列番号の表示非表示を切り替えるためにVBEを操作するなんて考えられません(汗)。では、「ActiveWindow.DisplayHeadings = True」と「ActiveWindow.DisplayHeadings = False」のマクロを作って利用しましょうか。(私も昔はそのようにしていました)でも「True」と「False」を切り替えるだけなので、何とか一つのコードに収められそうです。
e0382354_08514087.gif


ここからはVBAのプログラミングになりますね。まずマクロ一覧に表示されるマクロ名である「Macro1」(数字部分は変わる場合があります)の部分を、分かりやすい「行列番号切替」などに変更します。その時に「半角スペース」や「()」などは変更しないように注意してくださいね。
e0382354_14342362.gif



次に「ActiveWindow.DisplayHeadings = True」の頭に「if」と入力します。「if」の後ろには半角スペースを入れます。そして半角スペースを空けて「then」と入力し確定します。勘のいい方ならわかると思いますが動きは数式内のIF関数と同じで、「If~Then〇」で「もし~だったら〇を実行」となります。VBAでは「IF文」と言います。

このコードは「アクティブウインドウの行列番号が表示だったら〇を実行」となりますね。
e0382354_14390895.gif


「アクティブウインドウの行列番号が表示だったら」どうしたいかというと非表示にしたいわけですから、
「ActiveWindow.DisplayHeadings」と入力して(コピペでいいです)「=」を入れ、出てきたリストから「False」を選択して確定します。
e0382354_14480710.gif



そして改行して「else」と入力します。数式内のIF関数の「もし~でなかったら●」の部分ですね。
e0382354_14511309.gif


この場合「アクティブウインドウの行列番号が表示でなかったら(非表示だったら)」何がしたいかというと、表示したいわけなので「ActiveWindow.DisplayHeadings = True」(コピペでいいです)と入力します。
e0382354_14543408.gif

さらに改行して「end if」と入力します。これはIF文を使う場合の決まり事で、これがないとIF文がどこで終了するのか分からないので必ず入力します。
VBAのIF文は基本中の基本なので、『If~Then〇(Else●)End If』は定型文として覚えておくと便利です。数式でIF関数が使える人なら何の問題もなく理解及び使用ができると思います。(「Else」がカッコなのは使用しない場合もあるからです。)
e0382354_14593664.gif


VBEでのVBAコード編集作業はこれで終了となります。実際に動くかどうか「実行ボタン」を何度か押して行列番号の表示と非表示が切り替わることを確認してくださいね。
お疲れさまでした。

でも、このままでは個人用マクロブックの利用はできませんので注意してください。個人用マクロブックを利用する設定を保存しないといけないためです。

ブックを閉じる時に下の画像のようなダイアログが出ると思いますが、ここで「すべて保存」をクリックすることにより個人用マクロブックが有効になります。次回エクセル起動時より非表示で「PERSONAL.XLSB」が開き、そこに登録されたマクロを使用できるようになります。
e0382354_14593648.gif


それから今回作ったマクロ「行列番号切替」を利用する場合は、開発タブのマクロをクリックします。
e0382354_14593618.gif


そこで出てきたマクロウインドウのマクロを選択し実行ボタンを押します。
e0382354_14593639.gif


これで今までの『ファイル>オプション>詳細設定>次のシートで作業するときの表示設定』からやるよりはかなり楽になりましたが、まだ邪魔臭い気がします。

次回(があればですが…)は、もっと簡単にマクロを利用できるようにする方法をアップしたいと思います。

同じやり方で汎用マクロ(設定関係が特に便利です)が色々個人用マクロブックに登録できますのでお試しください。ご質問等あればコメントなどでお願いします。

では。

【参考コード】
Sub 行列番号切替()

If ActiveWindow.DisplayHeadings = True Then
ActiveWindow.DisplayHeadings = False
Else
ActiveWindow.DisplayHeadings = True
End If

End Sub

(可読性をアップするVBAコードのインデント(字下げ)はTabキーで)

にほんブログ村 米国株
by th1252 | 2019-08-10 15:42 | Excel | Trackback | Comments(0)
トラックバックURL : https://th1252.exblog.jp/tb/28512227
トラックバックする(会員専用) [ヘルプ]
※このブログはトラックバック承認制を適用しています。 ブログの持ち主が承認するまでトラックバックは表示されません。
名前
URL
画像認証
削除用パスワード
<< 「TH69の亜米利株」のグラフ... 「TH69の亜米利株」Ver.... >>