• ベストアンサー

EXCELマクロ:列の指定を数値で表現できますか?

Excel2000を使用しております EXCELの任意列の挿入、およびオートフィルを行なう関数を作成しようと思ったのですが、 オートフィルのメソッドの場合、 Columns("D:D").AutoFill Destination:=Columns("D:E"), Type:=xlFillDefault と、列を指定する場合、英字で指定しなければならないようで、 これを今回作成する関数の引数で渡された数値(2列目を3~10列目までオートフィル) で行ないたいと思っております。 列を数値で表現するにはどのようにすればよいのでしょうか。 ご回答をよろしくお願いいたします。

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.5

>単体列のオートフィルとの場合(同一データがフィルされる)と、当該結果の違いはなぜ起こるのでしょうか 引数Typeに「xlFillDefault」を指定すると、状況によって違ってくるので、ご希望の動作に合わせて、引数Typeの値を設定しましょう。 引数Typeについては、ヘルプにはいまいち詳細に説明されていません。 なので、マクロ記録で、オートフィルコピーを右クリックで行った時に表示されるショートカットメニューをいろいろ選択して確認して下さい。

その他の回答 (5)

  • YKchiko
  • ベストアンサー率26% (4/15)
回答No.6

 お返事遅くなってごめんなさいYKchikoです それからもうひとつごめんなさい。基本も基本の行と列を勘違いしてました。。。列の数値での指定、他のみなさんの回答で大丈夫ですよね???

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

列も数字で指定できるのではないでしょうか。 Sub test01() Columns(2).Select End Sub Sub test02() Range(Columns(2), Columns(3)).Select End Sub がどちらも目的を達しましたが。 以下はダメでした。 Sub test03() Columns("2:3").Select End Sub Sub test04() ' Columns(2:3).Select End Sub Sub test05() Columns("2,3").Select End Sub Sub test06() Columns(2, 3).Select End Sub

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.3

こんにちは。maruru01です。 例えばこんな感じとか。 tempCol = 3 Columns(2).AutoFill Destination:=Columns(2).Resize(, tempCol), _         Type:=xlFillDefault ちなみに、tempColはコピー範囲の幅(コピー元を含む)を表していて、上式の場合は、B列をD列までコピーすることになります。 あとは、この幅の指定方法を工夫して下さい。

o_w_nakazaki
質問者

お礼

ご回答ありがとうございます。 AutoFillが行なわれました。 1点疑問なのですが、 2列目にデータをいれて いただいたサンプルを実行した際に フィルされるデータが連続データ(1,2,3...) となっておりましたが、 単体列のオートフィルとの場合(同一データがフィルされる)と、当該結果の違いはなぜ起こるのでしょうか

  • ki-aaa
  • ベストアンサー率49% (105/213)
回答No.2

AB列を指定するには、次の四つの方法があります。   Columns("A:B").Select Range(Cells(1, "A"), Cells(65536, "B")).Select Range(Cells(1, 1), Cells(65536, 2)).Select Range(Columns(1), Columns(2)).Select  でわ

  • YKchiko
  • ベストアンサー率26% (4/15)
回答No.1

 列を指定した場合は、数字の前に$をつければいいですよ

o_w_nakazaki
質問者

お礼

ご回答ありがとうございます。 ご指示いただいた例にならい、列の挿入を行なおうとしたのですが 「アプリケーション定義またはオブジェクト定義のエラーです」 というダイアログが表示されてしまいます。 エラーが表示されるのは以下の文です。 Columns("$2:$2").AutoFill Destination:=Columns("$2:$10"), Type:=xlFillDefault 行挿入ではうまくいくのですが、、、 Rows("$2:$2").AutoFill Destination:=Rows("$2:$10"), Type:=xlFillDefault

関連するQ&A