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

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

imogasiの回答

  • 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をやるといってもエクセルのことを知らないとだめ。 初心者なら、まずマクロの記録を活用を考えること。

関連する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関数→カタカナ部分のみ置換」をしていますが、毎回こんな面倒な作業をするのも時間の無駄です。 これを回避する方法(半角は半角のまま)はありませんか?