教育・子育て

VBA14弾~VBA まとめ & 試験 その他まで

マんタ's icon'
  • マんタ
  • 2020/02/29 00:22

前回までのはこちら

 

 

 

まず、EXCELでは複数のブックを同時に開くことができる。

1つのブックは Workbookオブジェクト です。

現在EXCELで開いているすべてのブックは、Workbookコレクションです。

また、空の新規ブックを挿入するには Addメソッドを実行します。

既に存在するものを開くときは Openメソッドを実行します。

では試してみましょうwww

上のほうは新規のブックの挿入

下は名前のブックが存在したら開くプログラムです。

(今回は当然存在しません(笑))

結果はこんな感じです

新しくもう1枚開かれます

もう一つのはこう表示されます。

続いてブックを保存するプログラムに移ります。

ブックを上書き保存するときは Saveメソッド

名前を付けて保存の場合は SaveAsメソッド

今回は実行するとこのような画面が出ますが、終了ボタンを押してください。

デバッグボタンを押してしまった場合は実行→メニュー→リセットを

 

また、どのボタンがクリックされるかは誰にも予測はできないのでエラーを防げませんが、エラーを無視することはできます。

それには On ErrorステートメントにResumeNextというキーワードを付けた命令ですが それについてはVBAスタンダードで学習します。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

ブックを閉じるときは Closeメソッド を実行します。

 

 

こんな感じにプログラム完成です。

実行するとこのような表示が出ますが今回は保存しないをクリック

 

そうするとEXCELのワークシートも閉じられますね。

続いて複数のブックの操作です。

任意のブックを開くときは Activateメソッドを実行。

書式は 表示したいブック.Activate です。

次にワークシートについてやっていきます。

挿入するときはブックの時と同じように Addメソッドを実行します。

シートを挿入するとその挿入したシートがアクティブシートとなります。

 

 

で、これを実行するとこうなります。

ハイ( ^ω^)・・・間違えて二回も実行してしまったのでこうなりますwww

まだまだ続きますが、シートを開く方法は2つあります。

Selectメソッド と Activateメソッド です。

書式は

開きたいワークシート.Select

開きたいワークシート.Activate                デス。

 

シートの名前を変える

ワークシートの名前を変えるには Nameプロパティを使います

対象のワークシート.Name="名前"

任意のワークシートにどんな名前が設定されているかを次のように所得することもできます。

MsgBox 対象のワークシート.Name

ここでちょっと補足~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

名前に設定できない文字は、

:コロン ¥円記号 /スラッシュ ?疑問符 

*アスタリスク [左角括弧 ]右角括弧

です。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

今回最後にこんなプログラムを‥‥

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

書式としては、 

ワークシート.Copy Before, After

Beforeで指定したワークシートの左、Afterで指定したワークシートの右にコピーされます。

ワークシートの名前は便宜的に Sheet1(2)などとつけられます。

Before, Afterを同時に指定はできません。

とりあえずこんな感じのプログラムに・・・

実行するとこのようになります。

Moveメソッドもやってみます。

 

動かしてみると…

こうなりますwww

続いてシートの表示と非表示

ワークシートを非表示するには、Visibleプロパティ にFalseを設定する

再表示するにはTrueを設定します。

先ほどの Sheet1 を非表示にしてみます。

これを実行すると・・・・・

 

Sheet1がなくなりましたね。

再表示もしてみます。

続けて削除に移ります。

削除はDeleteメソッドです。

アラートが出るとめんどくさいのでDisplayAlertsプロパティに Falseを設定します。

実行すると・・・・・・・

Sheet3が削除されましたwww

ここまでで9章終了です。

======================================デバッグ

 

プログラムの初心者の方のために一応説明を書いておこうと思います。

デバッグとは、

プログラムに潜むミスを見つけ出してそのミスを修正する作業

1.文法エラー・論理エラー

文法エラーは、VBAの書式や構文が誤っているエラーです。

例えば

Range("A1)=164 などです。

論理エラーは、VBAの文法的には正しいけど論理的に間違ってるというミス。

例えば次のプログラム

____________________________________________________________

Sub Sample()

      Dim i As Long

      For i = 1 To 3 

                 Cells(i,1)= Worksheets(i).Name

     Next

End Sub

______________________________________________________________

ワークシートが2枚しかない状態で実行するとエラーになります。

エラーが発生すると上のような表示が出てきます。

デバックする場合はデバックボタンをしない場合は終了ボタンを押してください。

デバックボタンを押した場合

黄色の部分が実行できなかった部分で、マクロが一時停止します。

こうした状態をデバックモードといいエラーの原因を調べられます。

続いて

イミディエイトウィンドウ?

プロパティ、変数の内容 実行途中のマクロに関する情報を表示したり、任意の命令を実行できるウインドウです。

補足~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

イミディエイトウインドウはVBAの初期状態ではコードウインドウの下部に表示されてます。ダブルクリックすれば移動できますよ(*^。^*)

あと、イミディエイトウインドウは、大文字と小文字は区別されません。

以上 マンタの補足でした~~~~~~~~~~~~~~~~~~~~~~~~~~

実際こんな風に表示されますね。

次にマクロを一時停止する機能を見ていきます。

ブレークポイント

設定の仕方

設定した位置にカーソルを移動し、デバックメニューからブレークポイント設定/解除をクリックすると下の画像のように茶色に反転!!

マクロを再び実行すると

マクロの実行を中止する場合は 実行 → メニュー → リセットを実行するか上の四角い青色のリセットボタンを押してください。

ブレークポイントの解除は設定されている行にカーソルを合わせて

デバック → メニュー → ブレークポイント設定/解除 かF9を押します。

Stopステートメント

マクロを一時停止させデバックモードにする命令です。

?i の下には実行するとiに格納されている数が入ります。

自分が予想するとおそらく3が入る気がしますが‥‥

そもそもウォッチウインドウとは何か?

マクロ実行中に変数やプロパティの内容などを監視できる機能。

いわゆる人間社会の監視カメラ・・・・・・・!

では、はじめていきます。

プログラムはできたので ウォッチウインドウ を開いてみましょう。

表示→ウォッチウインドウで表示されます。

イミディエイトウインドウと同じくダブルクリックでフローティングに切り替えることができます。

ウォッチの追加をクリックするとこのような画面が出るので、

式のところに i=6  プロシージャを先ほど作ったプログラムを選択

式がTrueの時に中断を選択してOK

するとこのようになります↓

で、ウォッチを削除するときは右クリックでウォッチの削除を選択するだけです。

続いてステップ実行

ステップ実行とはマクロを1行ずつ実行する機能です。

先ほどのプログラムを使います。F8を押すと1行目が黄色くなりますね

 

続けて何回かF8を押していき黄色いのが表示されなくなるまで実行します。

 

マんタ補足講座~~~~~~~~~~~~~~~~~~

ステップ実行には3つあります

ステップイン ステップオーバー ステップアウト

 

 

 

以上マンタの補足講座でした( ^)o(^ )

======================================

まず、マクロの実行の仕方は3つ

●実行 メニュー → Sub/ユーザフォームの実行 をクリック

●ツールバーの Sub/ユーザフォームの実行 ボタンをクリック 👈これが一番楽

●F5 キーを押す

 

マんタの補足①~~~~~~~~~~~~~~~~~~

引数を受け取るプロシージャーは直接実行できない。

例えば

__________________________________

Sub Sample()

         Cell SampleN("WWW")

End Sub

Sub Sample0(tmp As String)

       MsgBox tmp

End Sub

___________________________________

Sub Sample()のプログラムは実行できますが、

Sub Sample0内にカーソルを置いて実行することはできません。

~~~~~~~~~~~~~~~~~以上マんタの補足

続いてマクロダイアログボックス

EXCELのワークシートを表示している状態でマクロを実行したい場合は

マクロダイアログボックス を使います。

表示の仕方は、表示 タブ⇒マクロ グループ⇒マクロの表示 ボタンをクリックするか Alt +F8  キーを押します。

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

EXCEL2003では・・・ツール メニュー マクロ マクロをクリックするか、

Alt +F8 を押します。

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 

こんな画面が出てきます。

実行ボタン

リストで選択したマクロを実行します。

ステップインボタン

リストで選択したマクロをステップ実行します。

編集ボタン

VBEを起動してリストで選択したマクロを表示します。

作成ボタン

ボックスに入力した名前のプロシージャを作成します。

削除ボタン

リストで選択したマクロを削除

オプションボタン

ダイアログボックスを開いてプロシージャーのコメントやショートカットキーを編集します。

マクロ保存先

選択したブック内に保存されているプロシージャーがリストに表示されます。

マンタの補足②~~~~~~~~~~~~~~~~~~

マクロオプション ダイヤログボックスでマクロにショートカットキーを設定できます。

EXCELに設定されているのと同じのを設定するとEXCELの標準キーよりもマクロに設定したショートカットキーが優先されます。

解除するには、マクロオプション ダイヤログボックスでショートカットキーボックスを空欄にしてOKボタンをクリック

~~~~~~~~~~~~~~~~以上マんタの補足②

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

まずはEXCELを立ち上げて・・・・・・・・

開発タブ ⇒ コントロールグループ ⇒ 挿入をクリック

マんタの補足~~~~~~~~~~~~~~~~~~~

ハイ初タブが表示されてないという人は、Office ボタンをクリックして

EXCELのオプション ボタンをクリックし、基本設定の開発タブをリボンに表示する

オプションをオンにする。

詳しくはこちらに表示の仕方が載せてありますのでご覧ください。

続けてフォームコントロールクリック

クリックするとマウスが+の形になるのでドラッグしてボタンを作成します。

同時にマクロ登録のダイアログボックスが表示され今配置したボタンにマクロを登録できます。

例えばこんなボタンを作ってみました。

登録方法はボタンを右クリック マクロの登録 プロシージャーを選択 マクロの保存先を選びOKをおします。

では、ボタンをクリックしてみます。

正しく動けばセルAの10段目までにoooと入力されるはず・・・・・

ハイ。出てきましたね。

次にボタンのサイズなどの変更について。

右クリックで編集できます。

ここで、ボタンにマクロを登録するメリットとデメリットについて

メリット

①操作が簡単

マウスでボタンをクリックすることはパソコンの初心者でもできますね。

②マクロの内容を伝えやすい

例えば このシートを印刷 というボタンがあれば 押せば何が起こるかわかりますね。

処理に合わせてボタンを配置することでユーザーは目的のマクロを確実に実行できます。

③アクティブシートを特定しやすい

ボタンが配置されているワークシートは必ずアクティブシートになります。

デメリット

①ボタンを配置するスペースが必要

②大量のボタンは操作性が悪くなります

大量のボタンを配置する場合は、ボタンの大きさや色をを変えるなどして、グループ分けを検討しましょう。

③他のワークシートから実行できない

ボタンを操作するには、ボタンが配置されているワークシートを開かなければいけません。

ワークシートの数が多いときなど、マクロを実行するためにワークシートを切り替えるのは面倒ですね。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

メニュー/ツールバーに登録(EXCEL2003)からはじめていきます。

EXCEL2003までのバージョンにはメニューバーとツールバーがあり、

メニューバーやツールバーからマクロを実行できます。

マんタの補足~~~~~~~~~~~~~~~~~~~~~~~~~~~~

EXCEL2007ではメニューバーとツールバーは廃止されました。

登録の仕方は後程説明します。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

登録の仕方2003

写真が汚くて申し訳ないのですが…

 

 

 

このプロシジャーを例にします

 

 

 

 

 

 

 

 

 

登録したメニューやコマンドの編集

 

 

 

続いてツールバーへの登録の仕方をやっていきます。

基本的にメニューへの登録と一緒です。

画像がきれいに撮れてなくてすみません(´;ω;`)

 

 

 

 

次にブックにツールバーを添付する

新しく作成したツールバーはブックに添付ができます。

マクロを記述したブックに、そのマクロの実行するためのツールバーを添付しておけば、どのEXCELでブックを開いてもマクロを実行できます。

 

 

メニューやツールバーにマクロを登録するメリット&デメリット

メリット

①どのブックでも利用できる。

②マクロで操作できる

 メニューやツールバーをマクロ操作することもできます。

ブックを開いたときに専用のメニューを追加し、ブックを閉じるときに専用メニューを除去するような仕組みもできます。

デメリット

①マクロの実態と切り離されます。

メニューバーやツールバーはEXCELが管理している。

メニューバーやツールバーはBook1.xls開いてなくても操作可能なので、

開いてないときに実行するとマクロが記述されたブックを開いて実行しようとします。

②うっかり消されてしまう

ワークシート上に配置されたボタンは明示的な命令でない限り削除できません。

一方メニューバーに追加したメニューはユーザー設定ダイアログボックスのリセットを押すとすべて初期化されます。

ユーザーがうっかり消してしまうこともありますので・・・

最後にクイックアクセスツールバーに登録する方法

自分の下手な説明よりここを見たほうがわかりやすいと思います・・・・

===   まとめ & 問題 & +α ======

ではこんなプログラムを作ってみます

☆もしセルにALISと入力されていたらCells(i,1)にマんタと入力し

 それ以外だったらCells(i,2)にエラーと入力しましょう。

そしてそのプログラムをボタンで 動くようにしようという問題。

ちなみに IFステートメント For.....NEXTステートメントを使います。

で、プログラムはこんな感じになりました

 

EXCELのほうはこんな風に記述しておきます。

 

ボタン名は今回マンタのボタンとでもしておきますwww

では、押してみます。

こんな結果になりますねwwww

さて、ここまで EXCELVBAベーシック を公開してきましたがどうでしたか?

======================================

ここからは自分がVBAを学んで得たものや勉強の仕方を書いていきます。

で試験があるのですが試験の内容は、

①問題数は、40問前後

②選択式問題

③時間は50分

④合格基準は650~800点(1000点満点)以上の正解率 

 ⁂問題の難易度により変動WWWW(なんでやねん!)

受験料は

一般  12000円 税抜き 今はもう少し高いかも?

割引 10800円 ⁂VBAエキスパート割引受験制度を利用した場合

これが合格証書デス

で、勉強の仕方はひたすらテキストを読み直し

模擬テスト問題を何回もやり直し、3回目ぐらいでようやく合格しましたね。

1年ぐらいかかりましたがしかもクリスマスイブ前日!!!!!

この時思いました。自分にとって最高のクリスマスプレゼントだったなぁ・・・・・と。

(自分は富士○○○○で勉強してこの資格を取得しましたね)

合格証書は合格してから2週間後に来るということなので・・・年明けでしたね。

でしばらく休んで就活を何件かやったんですが・・・効果なし( ^ω^)・・・

50件ぐらいやって0

何のために・・・何のために・・・

とったんやああああああああああああああああああああああああああああああああ

と、当時は思いましたね。

今思えばALISに公開するため?

(いやいやいやいや・・・・そんなはずはない気がする。( ´艸`))

そのあとしばらくしてJavaを学びましたね。

まあ今回の話はここらへんでしまいにしておきましょうかね。

ここまでVBAシリーズの記事をご覧くださった皆様ありがとうございました。

VBAシリーズは今回でおしまいですがまた何らかの記事を書く予定なのでよかったらそちらもご覧ください。

ここまでご覧いただき本当にありがとうございました。

======== BY マんタ ==========

質問等ありましたらコメント欄にお願いします。

答えられるかどうかわかりませんが‥‥

____________________

使用した参考書はこちら

VBAエキスパート公式テキスト

EXCELVBAベーシック

著者 田中亨 

より

Article tip 0人がサポートしています
獲得ALIS: Article like 46.31 ALIS Article tip 0.00 ALIS
マんタ's icon'
  • マんタ
  • @25kit6
5月、そろそろ温かくなってきたかな?でも、少し肌寒いから健康管理は気を付けないとね。感染症もいろいろと流行ってるみたいだし・・・

投稿者の人気記事
コメントする
コメントする
こちらもおすすめ!
Eye catch
クリプト

続・NFT解体新書・デジタルデータをNFTで販売するときのすべて【実証実験・共有レポート】

Like token Tip token
6.37 ALIS
Eye catch
ビジネス

海外企業と契約するフリーランス広報になった経緯をセルフインタビューで明かす!

Like token Tip token
16.10 ALIS
Eye catch
他カテゴリ

ALISのシステム概観

Like token Tip token
5.00 ALIS
Eye catch
他カテゴリ

テレビ番組で登録商標が「言えない」のか考察してみる

Like token Tip token
26.20 ALIS
Eye catch
クリプト

NFT解体新書・デジタルデータをNFTで販売するときのすべて【実証実験・共有レポート】

Like token Tip token
120.79 ALIS
Eye catch
教育・子育て

【科学(化学)】進化に必要だった猛毒のガス~酸素~

Like token Tip token
25.63 ALIS
Eye catch
教育・子育て

【科学】アリストテレスにデカルトにニュートンに…みな光に取り憑かれた~光学の発展~

Like token Tip token
22.75 ALIS
Eye catch
クリプト

「ハッシュ」とは何なのか、必ず理解させます

Like token Tip token
0.10 ALIS
Eye catch
他カテゴリ

京都のきーひん、神戸のこーへん

Like token Tip token
12.10 ALIS
Eye catch
クリプト

Bitcoinの価値の源泉は、PoWによる電気代ではなくて"競争原理"だった。

Like token Tip token
159.32 ALIS
Eye catch
クリプト

ジョークコインとして出発したDogecoin(ドージコイン)の誕生から現在まで。注目される非証券性🐶

Like token Tip token
38.31 ALIS
Eye catch
トラベル

無料案内所という職業

Like token Tip token
84.20 ALIS