1つだけ過去を変えられるとしたら?

こんにちは。
半年前から時間を見ながら、ExcelVBAを勉強しているものです。
まだまだ入門者で
何とか下のレベルのコードが書けるようになったのですが、
時間がかかってしまっています。
Sub Sample()
Dim i As Long
Dim lastrow As Long
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
 For i = 2 To lastrow
 If Cells(i, 1).Value Like "Sub Sample*()*" Then
 Cells(i, 1).Borders(xlEdgeTop).LineStyle = xlThick
   End If
 Next
End Sub
いざ、このレベルのコードを書くだけで
途中で「何だっけ?」と忘れてしまうので
OneNoteに自分が作成したサンプルコードのリストを見ながらか
記録マクロでプロパティや引数を探りながらもやっていますが
時間がかかり過ぎています。

ヘルプを見ながら。というのも良く聞くので
実際ヘルプを見て何度かトライしていしていますが
ハードルが高く(特にオンラインのヘルプになってからは)
挫折しております。

実際にVBAを仕事で使ってらっしゃる方はどのように
コードをスラスラと書いてしまうのでしょうか?
リファレンス本などは見ないのでしょうか?

教えて頂いてこれから先の勉強のヒントにさせてください。

よろしくお願いします。

A 回答 (3件)

仕事で使うと用途が限られるため、使う構文も決まって来ます。

同じコードを何度も書くと、自然とそのコードはすらすら書けるようになります。

あーかったるい、毎回毎回同じじゃねーかと思うようになったら、引数付きSubとして独立させましょう。構造化プログラミングですよ。

調べものは専らネットです。Googleとお友だち、師匠はoffice Tanakaとmoug、MSDNは教典です。コピペは私もしますが、内容理解は後追いでもいいからすべきです。


コード書き
我々片手間プログラマは、マクロ作成が本業ではありません。コード書いてる間に手作業で終わってしまったら、どうなるでしょう?給料泥棒です。常に時間対効果を気にしつつ作成する必要があります。初心者のうちは自宅でやることを勧めます。私もコーディングは自宅、業務中は動作確認です。
    • good
    • 0
この回答へのお礼

ありがとう

OverTheGalaxy さま。

>コード書いてる間に手作業で終わってし>まったら、どうなるでしょう?

仰る通りです。
何のためにVBAを使うのかと考えたら
同じ操作の繰り返しを軽減して作業時間を
短縮するためなのに、返って時間をかけてしまうのは意味がないことですよね。

同じコードや、似たコードの繰り返しのこと。これから意識して整理したな。って思いました。

自宅でコーディングに慣れておくこと。
他の方のアドバイスにもありましたが
ネット使いもポイントなんですね。

とても参考になりました。
ありがとうございました。

お礼日時:2016/02/16 11:10

私はコードはスラスラ入力する所とコピペが半々くらいです。


スラスラ書く部分というのは、その処理特有のものです。
コピペというのは、よく使う部分でスペルを正確に覚えていないような所です。

例えば、tomatonikomiさんが例に挙げてくれたコードでいうと
最終行を求める部分
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
これは定型なので、メモ帳に記載してあります。

【最終行取得(して繰り返し)】
Dim i As Long, imax As Long
imax = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To imax

のように書いてあります。

これは単に最終行を求めるというだけの事ですが、次のステップとして処理でひな形をメモしておくと便利です。複数のブック処理とか色々。

色々なマクロを組んでいくと、何も見ないで入力できる部分と、見直さないと出来ない部分がわかってきますので、記憶できていない部分をテキストにしておくととても便利です。

ちなみにヘルプやリファレンスはほとんど見ません。
この自分のメモ帳とあとは、何をしたいかで「エクセルVBA ○○処理」のようにネット検索します。この方が早いので。
    • good
    • 0
この回答へのお礼

ありがとう

jmuiny さま。

確かに最終行を取得するコードは
何度も使うので、自然に思い出して
いるようです。

ネットも使ってらっしゃるのですね。

一つの方法で絞らずに一番効率的な
方法を生み出せるように
頑張りたいと思います。

ありがとうございました。

お礼日時:2016/02/16 10:57

> (特にオンラインのヘルプになってからは)



オンラインでは情報量が多すぎて、肝心のものが見つけにくいですよね。
私はオフラインに切り替えて使っています。
(ついでに「常に手前に表示する」もオフにしています。)

オンラインでヘルプ、テンプレート、トレーニング、その他のコンテンツを参照する
https://support.office.com/ja-jp/article/オンラインでヘルプ、テンプレート、トレーニング、その他のコンテンツを参照する-f04c902c-0ac7-4c18-ac88-c6c7a9afcf66

これは 2007 ですが、 2010 でも似たようなものです。

2013 はこちらが絵入りで分かりやすいかな。
オンラインでなくオフラインのヘルプを表示する方法
http://excel-2013.blogspot.jp/2015/06/blog-post_ …
    • good
    • 0
この回答へのお礼

ありがとう

bonaron さま。
なるほど。オフラインの方法もあるのですね。
紹介して頂いたページを参考にさせて頂きます。
ご回答ありがとうございました。

お礼日時:2016/02/16 10:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!