タグ

ブックマーク / www.asahi-net.or.jp/~ef2o-inue (3)

  • VBA基本(イディミエイト・ウォッチ・ローカルウィンドウ)

    ブレークポイントやStopステートメントを書いてマクロ起動させ、停止してVBEが表示された状態では各変数やセル内容を確認することができます。 イミディエイトウィンドウ ソースコード上に記載されている変数は、マウスを当てるだけで内容が確認できますが、その行為だけでは変数内容が見られないケースも出てきます。 隠れているシートやセルの内容 (難しいですが)配列化させた変数で現在指されていない配列要素 オブジェクトの上のソースコード上に記載がないプロパティ値 などがそうです。このような場合は、「イミディエイトウィンドウ」を開いて確認します。 「イミディエイトウィンドウ」は、VBEの「表示」メニューにあります。選択すると「空」のウィンドウが開きます。 このウィンドウに「?」を先頭に置いて、表示させたい変数や式、プロパティ値(オブジェクトから明示する)を記述し、Enterを押すと、次の行に値が表

  • VBA基本(変数の宣言と初期化、有効(適用)範囲)

    変数は、その宣言場所と宣言方法で有効(適用)範囲が異なります。 「変数」とは!? 自動記録(マクロの記録)では「変数」は一切発生しません。 ですから、自動記録で作成されたマクロのコード記述を見ているだけでは「変数」を理解することはできません。 自動記録ではワークシート上のセルの値に対する処理を行なうことがあるので、これが「変数」と同義的なものと考えているかも知れません。 ですが、セルの値は通常は視覚的に見えるものですが、「変数」は視覚的な実体がなく値も通常は見えません。 実は既に「繰り返しや判断、分岐などは昔からあるBASICと同じ。」のサンプルでは利用しています。 「変数」は処理上必要な値などの「一時置き場」と考えて下さい。 変数を宣言する場所と宣言の方法による違いは実際の記述はこのようになります。 '*******************************************

  • VBA基本(プロシージャはどこに書いたら良いか。)

    標準モジュール、シートモジュール、ThisWorkbookなどプロシージャを書ける場所は複数存在します。 どこに書くべきなのでしょうか? マクロの自動記録から始めたので「標準モジュールに書くものと思っていた」とか、 もしくは、標準モジュールはいちいち追加しなければならないので、何も考えずにシートモジュールに細かい処理記述を書いている、なんてことはありませんか? それでも正しく動くようにできたのならそれで間違いではありませんが、以下のような判断基準を持った上で書き込む場所を決定してはいかがでしょうか。 単にシートモジュールが既にあったから、そこに書いたというのでは、安直なだけでしょう。 ただ、A1セルの値をメッセージ表示するだけのコードですが、これを標準モジュールに記述するのと、Sheet2に記述するのでは同じ動作にはなりません。 このようにコードの記述上でA1セルがどのシートのものかが明示

  • 1