- 締切済み
ご教授ください。
こんにちは。 MS Office (Excel)で、下記のソースがネット上で公開されていたのですが、細かいコマンドの意味がわからないので、解説頂けないでしょうか? <以下がソースです> Sub コンボボックス作成() Dim i As Integer For i = 1 To 20 Cells(i, 1) = "リスト" & i Next ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", Link:=False, _ DisplayAsIcon:=False, Left:=Cells(1, 4).Left, Top:=0, _ Width:=120, Height:=24).Select With Selection .ListFillRange = "A1:A20" .Object.ListRows = 20 .Object.Font.Size = 32 End With Application.CommandBars("Control Toolbox").Visible = False Range("C1").Select End Sub 出来れば1行ずつ解説頂けるとありがたいです。 宜しくお願い致します。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Yorisin
- ベストアンサー率54% (364/663)
全て教えろというのは少々乱暴ですね。 自分で調べるクセをつけないと知識としては向上しませんよ。 また、[使えれば良い]と思うならばブラックボックスのまま使うのでも良いですが・・・。 なお、以下は僕の分かる範囲で解説です。 Sub コンボボックス作成() ' "コンボボックス作成"という名前のサブルーチンを宣言。 ' サブルーチンは[End Sub]まで。 ' 引数/帰り数はない。 Dim i As Integer ' [i]という変数を宣言。 ' 変数型はInteger。 For i = 1 To 20 ' iを1~20まで1ずつ増やしながら繰り返す。 ' iが20の回が終了したら繰り返しが終わる。 ' 繰り返す範囲は[Next]まで。 Cells(i, 1) = "リスト" & i ' Cells=の意味は、セルのA1を1,1としてセル(縦,横)の内容を書き換える。 ' セルの位置がCells(i,1)→i=1~20で繰り返すので、 ' セルA1~A20までを書き換えている。 ' 書き換える内容は、先頭が ' リスト ' で、その後に1~20が順番に付く。 ' つまり、A1には[リスト1]、A2には[リスト2]...A20には[リスト20]と入る。 Next ' ここまでが繰り返し ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", Link:=False, _ DisplayAsIcon:=False, Left:=Cells(1, 4).Left, Top:=0, _ Width:=120, Height:=24).Select ' 詳しくはわからないが、 ' コンボボックスを作成してそれを選択する。 ' 最後の方でサイズや位置も指定している。 With Selection .ListFillRange = "A1:A20" .Object.ListRows = 20 .Object.Font.Size = 32 End With ' A1~A20の内容をコンボボックスのリストに入れる ' アイテムの数は20 ' フォントサイズは32pt Application.CommandBars("Control Toolbox").Visible = False ' ツールバーの[コントロール ツールボックス]を不可視に設定。 Range("C1").Select ' セルC1を選択する。 End Sub ' ここまでがサブルーチン
お礼
どうもありがとうございます。 勉強させていただきます。