• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:オートフィルマクロで作り、パラメータを変数にす方法)

オートフィルマクロで変数を使用してパラメータを指定する方法

このQ&Aのポイント
  • EXCEL2007で、オートフィルマクロを作成し、変数を使ってテキストボックスに入力された値をオートフィルのパラメータに指定する方法について教えてください。
  • 例えば、テキストボックスに「10」と入力された場合、A1からA10までオートフィルするマクロを作成したいです。
  • 初心者ですので、詳しい説明をお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! 外していたらごめんなさい。 テキストボックスに仮に10と入れ、マクロを実行するとA1セルをA10セルまでオートフィル、 テキストボックスが20であればA1セルをA20セルまでオートフィル! という解釈で良いのですかね? もしそうであれば一例です。 Dim a As Integer a = TextBox.Value Range("A1").Select Selection.AutoFill Destination:=Range("A1:A" & a) こんなんではどうでしょうか? 的外れならごめんなさいね。m(_ _)m

tokyo2199
質問者

お礼

ありがとうございました。 まさに求めていた記述です。 思ったような結果がえられました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.4

ん? そういう意味ですか。 では >オートフィル とは,具体的にどういう操作を考えたのですか。 ご質問で掲示されているのは単に「A1を10個コピーする」ですが,それなら private sub commandbutton1_click() worksheets("シート名").range("A1").resize(me.textbox1, 1).filldown end sub といった具合です エクセルの操作としての「オートフィル」なら private sub commandbutton1_click() worksheets("シート名").range("A1").resize(me.textbox1, 1).dataSeries type:=xlautofill end sub といった具合になります。 A1セルにたとえば「A1」などのように記入してあった時の結果が違いますが,具体的にどういう使い方を考えているのかに応じて,適切なマクロを選んで使ってください。

tokyo2199
質問者

お礼

説明不足ですいませんでした。 説明では範囲内に同じ10の値を入力する作業のみえますが、求めていたのは下記でご説明くださった、10、11,12 のようになるプログラムです。 無事できました。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

大げさに、オートフィルといわなくても良いのでは。 A1:A10に同じ値を入れるなら Sub test01() Range("A1:A10") = 10 End Sub この10をTextBox1.Valueで代替して使えば良い。 Range("A1:A10") = TextBox1.Value こんなことのためにテキストボックスを持ち出す必要あるのかな。InputBoxで十分では。 ーー それともれんぞくデータの作成のことか。 操作をしてマクロの記録を採れば仕舞い。 ーー 前記だってA1:A10を範囲指定。数式バー部に10と入れてCTRLを押しながら、ENTERでマクロの記録が採れる。 VBAをやるといってもエクセルのことを知らないとだめ。 初心者なら、まずマクロの記録を活用を考えること。

全文を見る
すると、全ての回答が全文表示されます。
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

worksheets("シート名").range("A1:A10").value = me.textbox1.value などのように。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • オートフィルのマクロを作りたい

    ある列に複数のデータがある場合、その一番上の右隣のセルに数式などを入力後、そのセルの右下の小さい四角をダブルクリックすると、左の列のデータある一番下までオートフィルされますよね。 これのマクロを組みたいのですが、単純に出来ません。 普通通りマクロの記録をすると、実際に入力されていたセル番号までのマクロとなってしまい、データを追加した場合意味が無くなります。 具体的に説明すると、 A1からA10までそれぞれデータがある場合、 B1に数式を入力後、オートフィルでB10までコピー。 これをマクロで組もうとすると、B10までのフィルが組まれてしまい、A11~A20までデータを追加後マクロを実行してもB10までのフィルしか実行されません。 「左の列のデータがあるところまで」というマクロは組めないのでしょうか。

  • TextBoxをInteger型の変数に代入したい

    開発環境は、VB2005 ExpressEditionです。 TextBoxをInteger型の変数に代入したいのですが。 Dim num01 As Integer 1 num01 = Int(TextBox1.Text) 2 num01 = CInt(TextBox1.Text) 3 num01 = Integer.Parse(TextBox1.Text) 1,2,3どれで実行しても”入力文字列の形式が正しくありません。”とでてしまいます。どなたか良い方法をご存知の方がいたら、教えて下さい。

  • VBA:変数を使用したオートフィルタについて

    エクセルVBAについて質問させてください。 A1セルにの値をB1、C1の方向にオートフィルを行いたいと考えています。 オートフィルをするセルの個数を変数で指定したい場合、どのように記述すればよろしいでしょうか? (変数の値が5なら、B1、C1、D1、E1までオートフィルというような感じです。)

  • EXCEL2007マクロ/オートフィルについて

    VBA初心者です。 EXCEL2007でオートフィルのマクロを作ったのですが、下記のケースで困っています。 A列のデータが入っている行までB列のデータをオートフィルで入力したく、 A列の最終行からデータが入っている行までを求めてB列のデータをオートフィルで入れるため、下記のマクロを設定しました。 Sub test()   Range("B1").AutoFill Destination:=Range("B1", Range("A1048576").End(xlUp).Offset(, 1)) End Sub ところが、A列のデータが2行以上ある場合はうまくいくのですが、一行のみだった場合オートフィルができなくてマクロがとまってしまいます。 一行なので当然なのですが、このような処理をしたい場合、他に方法はないものでしょうか? お知恵を拝借できますと大変助かります。 どうぞよろしくお願いいたします。

  • エクセルマクロ配列で変数は使えますか

    エクセル2013です。 初めて配列を使います。 以下のように作成し思ったようにできました。 Sub 計算() '成功 Dim a As Integer Dim c As Integer Dim b(5) As Integer Dim 最終行 Dim 値列  値列 = 17 最終行 = Cells(Rows.Count, 1).End(xlUp).Row For 処理業 = 1 To 最終行 For a = 1 To 5 b(a - 1) = Cells(1, 値列) 値列 = 値列 + 1 Next 値列 = 17 For a = 1 To (22 - 値列) c = c + b(a - 1) Next Cells(処理業, 30) = c a = 0 c = 0 Next 処理業 End Sub ただ計算する列の範囲をインプットボックスで入力した値 にしたい為以下のように改造しました。 Dim b(対象列) As Integerでエラーになります 配列には変数は使用できないのでしょうか? よろしくお願いします。 Sub 計算() '失敗 Dim a As Integer Dim c As Integer Dim b(対象列) As Integer’★ここでERRになる Dim 最終行 Dim 対象列 Dim 値列  対象列 = 22'インプットボックスで入力した値 値列 = 17 最終行 = Cells(Rows.Count, 1).End(xlUp).Row For 処理業 = 1 To 最終行 For a = 1 To (対象列 - 17) b(a - 1) = Cells(1, 値列) 値列 = 値列 + 1 Next 値列 = 17 For a = 1 To (22 - 値列) c = c + b(a - 1) Next Cells(処理業, 30) = c a = 0 c = 0 Next 処理業 End Sub

  • マクロとオートフィル

    オートフィルを使った「マクロの記録」の部分でつまずいてしまいました。 A列に名前、B列に数字が入っていて、2列にオートフィルタをかけている場合 B列の0の数字のみを非表示にしたかったので オートフィルのタブを使って「0」のチェックマークを外すという動作を「マクロの記録」で記録しました。 そこまではいいのですが、データの追加があったのでオートフィルタの範囲内に数字と名前をそれぞれの列に追加したあと上記のマクロを使ってみると、どうしても追加したデータと0が非表示になってしまいます。 これを避けるにはVBAで指示しないと行けないのでしょうか?

  • 連続になってないオートフィル

    連続になってないオートフィルのやりかたなのですが、 a1に1という値があって、その下に7個セルをあけて2を入力し、 次は、2の下に8個あけて3を入力し、次は9個セルをあけて4を入力し、それからは、もとにもどり、7個あけて5、8個あけて6・・・・7→8→9の順番で、というのをオートフィル的にやりたいのですが、何かやる方法はありますでしょうか?

  • EXcelでオートフィルのパラメータを変数化

    お世話になります。 [変更前]マクロで「("A3:B72")」を変数化したくて[変更後]のようにした。 結果エラーになります。 実行時エラー'91' オブジェクト変数またはWithブロック変数が設定されていません。 [変更前] Sub 賞与明細MCR() Range("A3:B4").Select Selection.AutoFill Destination:=Range("A3:B72"), Type:=xlFillDefault Range("A3:B72").Select End Sub [変更後] Sub 賞与明細MCR() Dim 処理 As Characters 処理 = "A3:" & CStr(Range("d1")) Range("A3:E4").Select Selection.AutoFill Destination:=Range(処理), Type:=xlFillDefault Range(処理).Select End Sub

  • VBでの変数宣言は1行に2つできないのですか?

    Visual BASICで変数宣言は1行に2つ以上記述しても実際、動作します。 例 DIM A、B as Integer このように宣言すると、AもBも整数となります。 しかし、このように宣言して、この変数を Call サブプログラム名(B) のように、パラメ-タとして引き渡そうとするとエラーとなってしまうようです。 よくわからないまま、 DIM A as Integer DIM B as Integer と分けて記述したらエラーがきえたようです。 変数宣言は1行に2つ以上まとめて記述してはいけないのでしょうか? VBは Ver 5 です。

  • 【Excel97】オートフィルについて

    オートフィルを利用して連番等を入力する際、数字を半角で入力→オートフィルをすると全角になってしまう場合があります。 (Excel2000ではこの症状は出ませんでした) <例>  テキスト1ページ ← これを下にオートフィル  テキスト2ページ  テキスト3ページ  テキスト4ページ  テキスト5ページ     :     : 全角になる条件は  ・書き出しがカタカナ  ・数字が1~4で始まる ※0、5~9で始まる場合は半角のまま  ・数字が1桁もしくは3桁 カタカナ部分が同じ場合は「ASC関数→カタカナ部分のみ置換」をしていますが、毎回こんな面倒な作業をするのも時間の無駄です。 これを回避する方法(半角は半角のまま)はありませんか?

専門家に質問してみよう