- ベストアンサー
記録マクロは分かるのにDim(変数)が入ると分からない
マクロ初心者です。記録マクロで色んなファイルを作り、活用は出来ているのですが、データーの増減、条件判定などが入ってくると必ず、Dim〇〇の記述が入ってきます。 記録マクロのコード記述を読んで大体は読めるのですが、Dimになるとサッパリ分からなくなります。 私にはこのDimが変数、代入と言うことは分かるのですが、では『具体的にこうなんだ、こうなるんだ』ということが理解できません。変数宣言を強制していません。 過去のこのカテの類似質問を拝見しましたが、今一、理屈が分かっておりません。 変数型マクロのサンプル例でこの辺を詳しく解説しているサイトをご存知でないでしょうか? VBA構文と日本語記述解説を対比して解説してあると分かり易いと思うのですが、書籍も探しています。 ご存知の方、教えていただけないでしょうか?
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- エクセルマクロ(VBA)の変数について教えてください。
仕事でエクセルを利用してファイルを作ることが多いのですが、関数とマクロに課題のある者です。 マクロはそんなに高度で複雑なものが現状、必要でないので記録マクロで事足りていますが、私のやり方は 1.手順を記録 2.マクロの実行 3.ステップイン機能でステートメントの動作を見る 4.無駄な構文を削除 5.エラー(デバッグ警告表示)修正 6.日々替わる取り扱いファイル、シート名をそこだけ置き換えて汎用性を持たせている。 7.さらに動作を加えたい時は新しいマクロ記録で構文を記録し、ベースマクロに構文を追加している 8.日々更新変動されるファイルは情報量の余裕をみて、ファイルが想定を超えないように作っている。 9.記述式マクロ(VBA)が十分出来るスキルが乏しい と言うのが私のレベルですが、参考書、テキストを読んでいると必ず、『変数』Dimスペルというものが出てきます。この意味がもう一つよく分からないので、ツール→オプションのダイヤログボックス編集で『変数の宣言を強制をする』を外しています。 変数は実行の都度変わる値を扱ったり、代入すると言うことは何となく分かるのですが、完全に理解できてないので、(記述が分かりにくい)そこから前に進めません。 サンプル例はありますが、詳しく解説しているものが少ないです。『何故、こうなるか?』というのが抽象的な説明です。 『変数宣言を強制』にチェックを入れた場合、今まで、チェック無しで作ったマクロファイルは動作しませんか? たまに自動メンバー表示機能から構文を挿入しますが、個々のプロパティやメソッド、コレクションなど記述構文は英語ですが、これを日本語に置き換えて理解できるようにしたいのですが、皆さんはどのようにされたのですか?
- ベストアンサー
- オフィス系ソフト
- public変数
formA で dim test as New fromB test.m_foo = "分かりません" と値を代入し fromB で public変数 Public m_foo as string を宣言しています その他の formC, formD, formE で formBのpublic変数m_fooを使用したい場合 例 formC 上で宣言している変数 ANS に代入したい場合 formC に ANS = formB.m_foo と記述しても上手くいきません どのように記述したら formB で宣言しているpublic変数を他のformでも使用できるのでしょうか?
- ベストアンサー
- Visual Basic
- vbscriptの変数宣言
教えてください。 プログラム初心者です。 vbscriptで変数をDimで宣言しているものと。Dim無しの変数宣言していないく、 いきなり代入して使っているものもあります。宣言して使うものと使わないものの違いは何でしょうか? よろしくお願いします。
- ベストアンサー
- Microsoft ASP
- Dimとは・・・
変数の宣言をする時の「Dim」は何の略でしょうか… ほかにもプログラムをやっていて、何の略かわからないとなかなか覚えられません。よいサイトをご存知の方お願いします。
- ベストアンサー
- Visual Basic
- 変数の宣言について
VBですけれども 変数の宣言なしに For i ・ ・ ・ Next i などを記述しますと「変数の宣言がされていません」 というメッセージがでるのですが、テキストなどでは 変数の宣言などしていなくとも動作しますこれはどうして どういうことなのかご存知の方教えてください。 Dimとかの宣言もなしにです。 著書は 独習Visual Basic 6.0 などです。
- ベストアンサー
- Visual Basic
- 変数
エクセルマクロについて質問です。よろしくお願い致します。 通常、例えば「sheet1」という名前の付いたワークシートを選択する場合、 sheets("sheet1").select と記述するかと思います。そこで質問です。変数を使って、操作する人が選択した任意のワークシートを指定するためにはどのように記述すればいいでしょうか。 例) ・変数「年度」を宣言する。 ・操作する人が選択した任意の年度を「年度」に代入する。 ・「年度」に1999と代入されたときは「1999」と名前の付いたワークシートを選択する。 以上お願いします。
- ベストアンサー
- Visual Basic
- VB6で最後に$が付く変数名に付いて
VB6で質問です。 変数名の宣言で以下のように$が最後に付いた変数が宣言されているプログラムを 見ることになりました。 Dim x1$ ネットで調べたのですが、有効な情報がなく、ご存知の方がいましたら、 教えていただければと思います。 調べた限りでは以下のような動作をするため、 「何か意味があるのでは?」と考えているのですが、分からない状態です。 分かっている現象 Dim x1$ '←OKとなる Dim x1$ as Integer '←構文エラーとなる Dim x$1$ '←構文エラーとなる ほかにも同様に、変数名の後ろに付く文字として、 "%"もあるのですが、同様な状態です。 ご存知の方がいましたら、 教えていただければと思います。
- ベストアンサー
- その他(ソフトウェア)
- 繰り返しのマクロで変数について
Sheets("東京").Select Dim i x = Sheets("東京").Range("X1").Value For i = 1 To x 処理内容です Next i Sheets("千葉").Select Dim j x = Sheets("千葉").Range("X1").Value For j = 1 To x 処理内容です Next j このようなマクロを作っています 作業対象シートが複数ありまして (この例で言うと「東京」シートと 「千葉」シート) それらのシートに対してのマクロを まとめて記述したいのですが 同一マクロでは変数が同じものは使えないため わざわざ変数を複数使っています 「i.j」のように。 今後作業対象シートが増えていくたびに どんどんマクロが長くなっていくので うまく記述する方法はありませんでしょうか? 「処理内容です」の部分は まったく同じ内容です (変数以外) 宜しくお願い致します
- ベストアンサー
- オフィス系ソフト
- VBでの変数宣言は1行に2つできないのですか?
Visual BASICで変数宣言は1行に2つ以上記述しても実際、動作します。 例 DIM A、B as Integer このように宣言すると、AもBも整数となります。 しかし、このように宣言して、この変数を Call サブプログラム名(B) のように、パラメ-タとして引き渡そうとするとエラーとなってしまうようです。 よくわからないまま、 DIM A as Integer DIM B as Integer と分けて記述したらエラーがきえたようです。 変数宣言は1行に2つ以上まとめて記述してはいけないのでしょうか? VBは Ver 5 です。
- ベストアンサー
- その他(ソフトウェア)
- VB6変数の宣言dim j,k,p,m,n as Integerは良くない?
お世話になります。 VB暦1年です。 汎用の変数宣言でタイトルのように dim j,k,p,m,n as Integer dim ssa,ssb as String など、カンマ区切りで変数宣言を使っていたのですが 最近、知人にasの手前の変数は型どおり宣言されるが その手前の変数はVariant型で宣言されてしまうと指摘されました。 指摘されるまで気にはしていませんでしたが ウォッチで確認すると変数に代入されるまでは 型がVariant/Emptyとなってます。 以後、気をつければいいのですが 過去にコーディングしたプログラムにも多少、使用していて客先に納品してしまっているものもあります。 後々、問題になるのかな?
- ベストアンサー
- Visual Basic
お礼
Wendy02さん、お礼が遅れ、申し訳ありませんでした。大村さんの著書を購入し、今、少しずっ読んでいます。 焦らず、時間掛けて覚えたいと思います。奥が深いのでVBAは本当に難しいです。 記録を忘れてトライしてみます。有難うございました。