目次
できるだけすっきりしたコードを書く
こんにちは。伊川(@naonaoke)です。
上の記事で紹介したVBAのコードの中に、たくさん新しいコードがありました。
今回は、Controlsコレクションについて説明します。
問題提起
(株)IKAWAの柄久 瀬瑠子(エク セルコ)は、上司から下記のような依頼を受けました。
・ユーザーフォームで入力した内容を、シートに転記したい。
・できるだけ簡単なコードで記載すること。
どのようなコードを記載したらいいだろうか?
解決策
回答
・For Next構文でループさせる。
・Controlsコレクションを使う。
ユーザーフォームから転記
作成手順 その1 ユーザーフォームを作成する
このようなフォームを作成します。
作成方法の関しては、この記事を参照してください。
商品名1の隣の空白のテキストボックスは、Textbox1という名前がついています。
下がるにつれて、Textbox6までになります。
Range(“A1”)=Textbox1
Range(“A2”)=Textbox2
Range(“A3”)=Textbox3
Range(“A4”)=Textbox4
Range(“A5”)=Textbox5
Range(“A6”)=Textbox6
このように記載しても同じ結果は得られます。
しかし、このようなコードを記載した場合、メンテナンスがとても面倒です。
仕事は、やれば良いというものではありません。
作成手順 その2 Controlsコレクションを使う
Private Sub CommandButton1_Click() Dim i As Long For i = 1 To 6 Cells(, i).Value = UserForm1("TextBox" & i).Value Controls("TextBox" & i).Value = "" Next i End Sub
ここがポイント
ここがポイント
連続した数字が並んだら、ループを考えるようにしましょう。ループを理解できた時点で、みなさんのVBAにおけるスキルは、必ずレベルアップしています。こんな構文が、業務中にサクッと記載できたら、かっこいいですよね。
まとめ
今回のまとめ
今回のブログの内容は、大変短いですが、伊川が、
VBA初心者の頃、なんで?と思った内容でした。少しずつ、伊川と一緒にスキルアップしていきましょう。
今回のサンプルファイルは、No47です。
毎日の業務が、3時間短縮できます
わからない事を延々と考えるのは、無駄です。
- なんで作動かないの?
- もうやだ!VBAなんか嫌い!
- ネットで調べても情報がない!
必ず作動するコードが、ここにあります。