[[20040522102421]] 『VBAをかじりたい』(苦学生) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『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)


皆さん、ありがとうございます。お教えにしたがってボチボチやっていきます。
過去ログを見たらすでによっしーさんがすでに存在してたのですね。知らなかったとはいえ同名を語ってごめんなさい。これからは(よっしー)あらため(苦学生)にします。よろしくお願いします。
 それからwebmasuterを見ていたら(最近はほかの所も見れるくらい余裕が
でてきました。)kazuさんというのはここの校長先生なんですね。そうする
と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)


(INA)さん、やさしい?解説ありがとうございます。
ここまで何となく解るような気がしました。
自分ばかりでてくると悪い気がして遠慮をしているのですが、本当は
聞きたいことばかりなのです。
昨日は休みで朝の5時から夜中の1時までここをみたり「エクセル全開VBA」で
マクロの練習したりして頭がボーとしています。マクロボタンまでやれました。

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.