- ベストアンサー
エクセル vbaについて
いろいろ探してみたのですが、見つかりませんでしたので質問させていただきます。 vbaを使って セル(a10)の数字を変化させたいのです。 変化させる数字はそのときによって変わります。 for next構文でできるのでしょうか? その番号はカウント式で1づつ増加させます。 なので 任意に10を入れると 1,2,3・・・と言うように数字を変化させその数字ごとに印刷をしたいのです。 どなたか教えてくださいよろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#2の補足について。 最初のSub ボタン3_Click()は不要です。構造的におかしいです。Sub Subとなっているから。 私のは、貼りつけたテキストボックスに、例えば10といれてEnterキーを押すと、それが(それだけで)イベント(キッカケ)となり、コードが実行されます。ボタンのクリックとは関連付けていません。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
例えばSheet1に、テキストボックスを1つ貼りつけます。 ダブルクリックしますとVBAの画面になり、TextChangeのコードが出ますが、無視して その下の余白部に Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = 13 Then n = TextBox1.Value For i = 1 To n Cells(10, "A") = i TextBox1.PrintObject = False 'テキストボックスは印刷しない Range("a1:j10").PrintOut '範囲は適当に修正のこと MsgBox i '確認用 Next i End If End Sub を貼りつけます。 デザインモードを脱して、ワークシートSheet1に戻り、テキストボックスに数字を(例えば3)いれてエンターキーを押すと A10セルの(番号か?)1,2,3のものが1部ずつ印刷されます。
補足
ありがとうございます。試したのですが、マクロのことがよくわからずに下記のように入れたらコンパイル エラー?となりました。 Sub ボタン3_Click() Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = 13 Then n = TextBox1.Value For i = 1 To n Cells(10, "A") = i TextBox1.PrintObject = False 'テキストボックスは印刷しない Range("a1:j10").PrintOut '範囲は適当に修正のこと MsgBox i '確認用 Next i End If End Sub お手数おかけしてすみません
- papayuka
- ベストアンサー率45% (1388/3066)
サンプルは毎回メッセージが出るので、5くらいで試して下さい。 テスト環境で。 Sub Test() Dim LCount, i As Long LCount = Application.InputBox("最後の数字は?", "Count") If IsNumeric(LCount) Then For i = 1 To LCount Range("A10").Value = i 'ActiveSheet.PrintOut MsgBox i Next i End If End Sub
お礼
回答ありがとうございました。 このようなマクロもあるんですね。とても参考になりました。
お礼
ありがとうございます。できました。本当に助かりました。別にまた質問がありますのでお答えいただけると幸いです。 今回のマクロに新たに付け加えたいのです。よろしくお願いいたします。
補足
お返事ありがとうございました。早速やってみました。 エクセル画面で、表示→ツールバー→コントロールボックス→テキストボックスを経て適当な大きさにします。ダブルクリックでvba画面が出てきて下記のように貼り付けました。 Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = 13 Then n = TextBox1.Value For i = 1 To n Cells(10, "A") = i TextBox1.PrintObject = False 'テキストボックスは印刷しない Range("a1:j10").PrintOut '範囲は適当に修正のこと MsgBox i '確認用 Next i End If End Sub シート1に戻りコントロールボックスに数字を入れるためにクリックすると小さな四角が出てきてしまい、その時点で数字を入力しエンターを押すと"参照値が違います"と出てしまいます。 本当に申し訳ありませんが、アドバイスお願いいたします。