• ベストアンサー

vba 離れた列を選択するには?

Range(Columns(5), Columns(10)).Select これだと5列目から10列目の全てが選択されてしまいます。 荘ではなく、5列目と10列目のみ選択状態にするにはどうすればいいでしょうか? 列はアルファベッドではなく数値で指定したいです。

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

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

たとえば union(Columns(5), Columns(10)).Select のように。

MPPLKJVGSMRLC
質問者

お礼

ありがとうございました。

関連するQ&A

  • 離れた列をvbaで数値で選択するには?

    Sub Macro1() Range("a:c,e:g").Select End Sub を数値にしたいのですが、 Sub Macro2() Range(Columns(1), Columns(3) & ":" & Columns(5), Columns(7)).Select End Sub だと、rangeでコンパイルエラーになります。 http://okwave.jp/qa/q7329478.html を見たのですが、 どうすればいいのかわからないので教えてください。

  • VBAでの1列すべての指定方法について。

    こんにちは。 VBAでの1列すべての指定方法についてお伺いします。 Columns(1).Select For Each MyObj In Selection x = MyObj Next というようにA列を検索させていますが、 Select使わないでRange("A:A")と言う形で 指定させようと思っています。 (シートの切り替えをしたくないので。) For Each MyObj In Range("A:A") x = MyObj Next しかし、任意の列に対して数列ごとに飛ばしながら 実行していますので、列の指定の方法は英数ではなく 数値で行いたいです。 For Each MyObj In Columns(1) x = MyObj Next と指定が出来れば良いのですが、上手く動きません。 1⇒Aと変換できる関数でも構いませんので、 良い指定方法あれば、宜しくお願い致します。

  • エクセルVBAで列の選択

    VBAで通常は、Columns("D").Select でD列が選択されるはずですが、途中にセルが結合している個所があると、選択範囲の列が、すべての行で広がってしまいます。 手動で列番号をクリックするとD列だけの選択ができるのにVBAではなぜ出来ないのでしょう? どうコードを変えればいいのでしょうか? エクセル2000です。

  • VBA 右端列の削除

    このたび初めて質問させていただきます。 周囲にVBAを扱うひとがいないため、初歩的(たぶん?)な質問をさせてください。 以下のようなマクロを記録したのですが、一部を編集したいと考えております。 Columns("F:H").Select Selection.Insert Shift:=xlToRight Columns("A:B").Select Selection.Cut Range("F1").Select ActiveSheet.Paste Columns("J:J").Select→J列固定ではなく右端の列と設定したい。 Selection.Cut Range("H1").Select ActiveSheet.Paste Columns("A:B").Select Selection.Delete Shift:=xlToLeft Columns("J:J").SelectをJ列固定ではなく右端の列を1列設定し切り取りがしたいのです。Range("A2").End(xlToRight).Select ActiveCell.Offset(-1,0).End(xlDown).Select と書き換えてみたのですが、うまく作動しませんでした。 どなたか教えていただけませんでしょうか?

  • VBAで列の選択が上手くいきません

    Excel2007のVBAについて質問があります Columns("v:y").Selectと書いたのに実行すると T列からY列まで選択されてしまいます 試しにColumn("x:y")と選択範囲を狭めても 同じ結果になります。 コードで書いた選択範囲よりも広い範囲が選択されてしまうという 症状に見舞われた方で解決方法をご存知の方 いらっしゃったら教えてくださいますようお願いします

  • 列を数値で選択する方法をご教授ください

    エクセル2007です。 Columns("a:b").Select なら列を選択できますが、 Columns(1 & ":" & 2).Select だと 「実行時エラー1004、アプリケーション定義またはオブジェクト定義のエラーです」 になってしまいます。 数値にしたい理由は、変数を代入したいからです。 アドバイスよろしくお願いします。

  • エクセル vbaのなぜこうなるのか?

    こんばんは。 単純な事かもしれませんが、ちょっと疑問に思ったので質問させていただきました(Excel2000使用)。 ・一つ目 2行目を選択する場合 ⇒ rows(2).select 2行目から5行目までを選択する場合 ⇒ rows("2:5").select ☆☆質問☆☆ 一つの行を選択する場合は引数を("")で囲わないのに、複数行では引数を""で囲わないといけないのか? ・2つ目 2行目から5行目までを選択する場合 ⇒ rows("2:5").select 2列目から5列目を選択する場合 ⇒ range(columns(2),columns(5)).select ☆☆質問☆☆ なぜ複数列を選択する場合、columns("2:5").selectでは実行時エラーとなるのか? 素人にも理解できるような回答をお願いいたします。

  • Excel2013VBA列選択の拡大

    ExcelVBA2013です。 列の取得でつまづいております。 お手数ですが、ご教授下さい。 下記のコードで選択範囲のコピー貼り付けは出来ていますが、列幅がコピーされていませんでした。 CC3のセルを基準にOffsetとResizeで範囲拡大してコピーしているためだと思います。 CC3の左隣のAX3:CB3はセル結合されています(○月)。(その下の4行目は日付の1~31が入力) 列は、今回はAX3:CC3まで(1月分)取得できればよいです。(可変します) MaxCol = Range("J5").End(xlToRight).Column  で列取得できます。 行の位置は、MaxRow = Range("I5").End(xlDown).Row  で取得した値です。 それで、列全体を取得しようと、 MaxCol = Columns(MaxCol).Select で最終列は取得できましたが、そこから列選択の拡大ができればと思っています。 現在は、AX3:CC237まで取得コピーして、隣の列に貼り付けで列幅が違う。 希望はAX:CCまでの列を取得選択コピーして貼り付け。 Sub SAMPLE() Dim MaxRow As Variant, MaxCol As Variant Dim r As Range, c As Range MaxRow = Range("I5").End(xlDown).Row '最終行番号 MaxCol = Range("J5").End(xlToRight).Column '最終列番号 Set c = Cells(3, Cells(3, Columns.Count).End(xlToLeft).Column) '表の右上角のセル番地を取得 c.Select c.Offset(0, -31).Resize(MaxRow - 2, 32).Copy c.Offset(0, 1) '表右上から1月分選択範囲拡大してコピー隣の列より貼りつけ End Sub

  • vba シートの選択後列の選択

    VBA初心者中の初心者です。 vbaでシート全体を選択後、全シート共通でI列全体を選択したいのですが、 Worksheets.Select Columns("i:i").Select と書くと、なぜかB列からI列全体が選択されてしまいます。 I列だけ(全シート共通)を選択したいのですが、どのようにすればよいのでしょうか? よろしくお願いいたします。

  • VBAで文字列を数値に変換させるには?

    VBA初心者です。 当事務所の事務システム(オラクル)をバージョンアップした際、出力帳票をエクセルのワークシートで出すようにしました。 以前は翼システムの帳票印刷用ソフトに連動させ、すぐ印刷できるものにしていたのですが、今後は出力結果から、合計行を後で(エクセルの段階で)だして付け加えたりなどしなければなりません。 事務所には年配の職員のかたもおられ、やはり自動でできるようにして欲しいとの要望があり、いくつかマクロを作りました。 しかし、各帳票エクセルに出力された際、数字が全て文字列で表示されてしまうので、まずこれを数値に直さなければなりません。 (ココから下) 帳票全部が数字ならば、Ctr+Aで範囲選択し、エクセルのツールで数値に直せばいいのですが、そうではないため、範囲選択するところから含めてマクロにしたいのです。 しかし、「文字列→数値」ができません。マクロのツールを使ってでは、それに値する行が作られませんでした。 Format関数をつかうのでしょうか? ????? 初心者的質問で申し訳ありません。 よろしくお願いします。 Sub Macro会費納入状況表データ() ' ' Macro状況表データ Macro ' マクロ記録日 : 2005/11/17 ユーザー名 : sn ' ' Columns("C:C").Select Selection.Insert Shift:=xlToRight Rows("5:5").Select Selection.Insert Shift:=xlDown Range("D6").Select Selection.CurrentRegion.Select (ココになにかいれるとおもうのですが) Columns("C:C").Select Selection.Delete Shift:=xlToLeft Range("A6").Select Selection.CurrentRegion.Select Selection.Copy End Sub

専門家に質問してみよう