pickup

目次

できるだけすっきりしたコードを書く

こんにちは。伊川(@naonaoke)です。

上の記事で紹介したVBAのコードの中に、たくさん新しいコードがありました。

今回は、Controlsコレクションについて説明します。

問題提起

 

(株)IKAWAの柄久 瀬瑠子(エク セルコ)は、上司から下記のような依頼を受けました。

・ユーザーフォームで入力した内容を、シートに転記したい。

・できるだけ簡単なコードで記載すること。

どのようなコードを記載したらいいだろうか?

解決策

 

回答
sesuo2.jpg
・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

ここがポイント

ここがポイント
Function8.png
連続した数字が並んだら、ループを考えるようにしましょう。ループを理解できた時点で、みなさんのVBAにおけるスキルは、必ずレベルアップしています。こんな構文が、業務中にサクッと記載できたら、かっこいいですよね。

 

まとめ

今回のまとめ
sesuko3.jpg
今回のブログの内容は、大変短いですが、伊川が、

VBA初心者の頃、なんで?と思った内容でした。少しずつ、伊川と一緒にスキルアップしていきましょう。

今回のサンプルファイルは、No47です。

毎日の業務が、3時間短縮できます

わからない事を延々と考えるのは、無駄です。

  • なんで作動かないの?
  • もうやだ!VBAなんか嫌い!
  • ネットで調べても情報がない!

必ず作動するコードが、ここにあります。

スポンサーリンク

Twitterでフォローしよう

おすすめの記事