[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBAをかじりたい』(苦学生)
[VBAをかじりたい(「エクセルの(夜間)学校に通い詰めの苦学生)]
前回VBAを教えていただいたよっしーです。自分もVBAを勉強したいと
思っているのですが、書籍を購入して勉強するほどの熱意を持ち合わせていません。
VBAに書いてある文がなんとなく理解できる程度でよいのですが、
たとえば教えていただいた
' ---------- ---------- ---------- Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If AtFlg = 0 Then AtFlg = 1 CommandBars("Cell").Enabled = False Else AtFlg = 0 CommandBars("Cell").Enabled = True End If End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) If AtFlg = 1 Then Dim Cl1 As Long, Cl2 As Long, Rw1 As Long, Rw2 As Long If WsFlg = 0 Then WsFlg = 1 Cl1 = Range(Target.Address).Column Cl2 = Range(Target.Address).Columns.Count Rw1 = Range(Target.Address).Row Rw2 = Range(Target.Address).Rows.Count Application.ScreenUpdating = False Range(Range(Columns(Cl1), Columns(Cl1 + Cl2 - 1)).Address & "," & _ Range(Rows(Rw1), Rows(Rw1 + Rw2 - 1)).Address).Select Target.Activate Application.ScreenUpdating = True
' ---------- ---------- ----------
で、どこにどんなことが書いてあるぐらいにはなりたいと思うのです。
日本語なら分かりやすいのに・・・
言葉の説明が紹介されているURL(?)がありましたら教えてください。
(考えが甘いですかね?でも初心者の怖いもの知らずということで質問してみまた。)
わからない単語をドラッグして反転させて F1 キーを押してみてください。 いいことがあるかも・・・ (まさ)
[まさ]さんの言うとおり、VBAのHELPは意味不明だけれど役に立つこともあります。
最初の一歩を CommandBars("Cell").Enabled = False ツールバー[セル]の使用可能状態を不可にする
おいおい、これだから、 プログラム言語ってエイリアンの言葉ですか?って言われる。 (kazu)
これから学習するつもりで >VBAに書いてある文がなんとなく理解できる程度でよいのですが、 ということでしたら、「百戦錬磨」の手によるものよりも、 「マクロの記録」で出来たコードを見直してみたり、記録したものを ステップイン(一行ずつコード実行)でエクセル画面とVBE画面を見ながら 実際の操作を目で追っていったほうが学習になると思いますよ。 自分が操作して記録したものだから、コードと操作の関係がわかりやすいです。 慣れた人のコードはメモリ内でデータ処理してしまっていて ステップインしても、エクセルでは変化がわからない場合が多いので、 いきなり理解しようとするのは困難です。 私はマクロの記録から入っていって、 わからなければF1でヘルプ、 ↓ それでも理解できなければインターネットで検索 (「単語 Excel VBA」「単語 Excel マクロ」で検索すれば結構事例がある) ↓ その上でお手上げの時は「エクセルの学校」のような相談サイトで相談 という順番で調べました。 私のお勧めは記録である程度マクロ自体の使い方を覚えてから 繰り返し処理をしたいとか、選択範囲を自動拡張したいとかの 欲求にしたがって必要範囲だけ少しずつ覚えていくのが 無理がないと思いますよ。 (KAMIYA)
>そうするとKAMIYAさんは教頭先生かな ぶるぶるぶるっ!とんでもない。 チョークが飛んできまっせ。 真打はなかなか出てこないものです! 教育実習生ぐらいにしておいてください。 自分の訓練もかねていろいろ首を突っ込んでいるだけです。 (KAMIYA)
KAMIYAさん、別件ではありがとうございます。
私もスタッフなんて滅相もありません(^_^A; まだまだ日々精進中の身であり、覚えたてのころ他のフォーラムなどでいろんな方の指導を受け、 現在は、自分で判る範囲は少しでも役に立てたらと思いレスしているだけです(^_^A; なにぶん、文章が苦手で判りにくい回答しか出来ないので誤解がないか心配です。 (まさ)
タイトルのニックネームを変更しました。
> ...豊富なスタッフがそろっていますね... 豊富というより、ユニークでかつ優秀なスタッフに支えられています。 この場を借りて、皆さんにお礼を申し上げます。
(うわさの校長先生・kazu)
>Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) シートモジュールのイベントプロシージャの記述。 シート上で、ダブルクリックをするとマクロ実行。
> If AtFlg = 0 Then > AtFlg = 1 > CommandBars("Cell").Enabled = False > Else > AtFlg = 0 > CommandBars("Cell").Enabled = True > End If ここまでで、 If 〜 End If の条件判別文。 もし、変数 AtFlg が = 0 なら、 AtFlg に 1 を代入し、 右クリックのショートカットメニュー(CommandBars("Cell"))を 使用不可(Enabled = False) にする。 Elseのときは、 AtFlg が 0 以外の時は、上記の逆の設定をすることになる。
>End Sub Private Sub 〜 End Sub で、1個のマクロ。
(INA)
If AtFlg = 0 Then の Thenが解らず2時間も彷徨っていましたが、 多分英語の「その時」とか「それからだろう」と自分を納得させました。
Cl1 = Range(Target.Address).Column
Cl2 = Range(Target.Address).Columns.Count Rw1 = Range(Target.Address).Row Rw2 = Range(Target.Address).Rows.Count のRangeは範囲だろう。CとRは列と行らしいのでC12とRW、1RW2は行・列を 表しているのかもしれない。それならどこかを削除すれば行だけ色を付けられるのかな。 色もこちらから指定できるのかな。と色々やっていてもだめでした。 できたのは Range(Range(Columns(Cl1), Columns(Cl1 + Cl2 - 1)). の最後のー1の 1を2に変えたら2行、3なら3行に色がつきました。(うれしかった) 他に月末統計で4月から3月まで12枚のシートがあるのですが一枚づつコピーを 繰り返さないとだめですかね。昼は先生、夜は(苦学生)で大変なんです。
>Thenが解らず2時間も彷徨っていましたが、 >多分英語の「その時」とか「それからだろう」と自分を納得させました。 VBAといっても英語がもとになっているので、 英語が分かれば、何となく処理の意味が分かることは確かです。 しかし、プログラミング言語なので、 構文として覚えるのが普通です。 つまり「そのような書き方である。」と納得してしまって 使って、覚えるのが手っ取り早いです。
とにかく VBA を使用するなら、 VBE のヘルプ がインストールしてないと話になりません。 そして、ヘルプで構文と使用例を読むのが、第一歩でしょう。
(INA)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.