• ベストアンサー

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

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

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

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

セルの結合をしているとか???

four_knight
質問者

お礼

n-jun様 ご回答ありがとうございました。 おっしゃるとおり、数枚の中の1枚のシートでセルが結合されているのが原因でした。 ありがとうございました。

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

その他の回答 (1)

  • DreamyCat
  • ベストアンサー率56% (295/524)
回答No.1

2010版ではI列だけ選択されますが、 そのあとにb:iと書いたコードが書いてあるのでは Columns("i").Select でも Columns("i:i").Select でも I列だけ選択されます。

four_knight
質問者

お礼

DreamyCat様 ご回答ありがとうございました。 Columns("i").Select Columns("i:i").Select でも同じなのですね、 まだまだvbaへの道のりは長いです、 ご教授いただきましてありがとうございました。

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

関連するQ&A

  • vbaで全シートのある列のスペースを消したい

    vba修行中の初心者です。 シートをすべて選んだ状態である列(ここではI列)を選び、セルの中のスペースをすべて消すということをしたいのですが、 Worksheets.Columns("i:i").Select.Replace What:=" ", Replacement:="", Matchbyte:=False にすると、コンパイルエラーが出ます。 どのように書き直せばよいのでしょうか? どうぞお助けください。 よろしくお願いいたします。

  • VBA 複数シート選択について

    Sub test() Dim i As Integer i = ActiveWorkbook.Worksheets.Count Worksheets(Array(2, i)).Select End Sub シート2とシートi の選択ではなく、2~iまでの複数シート を選択するにはどのように書くのかご教示下さい。

  • Excel VBAで2~4列目の3行目以下を選択

    Excel VBAで2列~4目の3行目以下すべてを選択する方法は、ないでしょうか? 2列~4目すべてを選択というのは、比較的簡単で、たとえば Sub 2to4 ()   Worksheets("Sheet1").Activate   Columns("B:D").Select End Sub とでも書けばよいのでしょうが。 http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_cell.html 要はこれから3行目までを除外する方法があればいいわけですが、 そういう方法があったら教えてください。 今は、cells(2,1)から、cells(4,5000)までを選択といったように 原始的な方法でやってますが、この方法だと数字を大きくしすぎると 2003以前のバージョンでトラブり、数字を小さくしすぎると、選択しきれなかったりと…。 いろいろ不都合が多いので…。

  • エクセルVBA 別シート間の列のコピー&ペースト

    列のコピー&ペーストができません。 i, j は変数で、Integerで定義しており、省略はしていますが、期待通りの値がi, j には代入されています。 Sheet1のi列からj列をコピーし、Sheet2のC列(これは固定)に貼り付けたいのですが、うまくいきません。 私の書いたコードは下記の通り。 下記は改行されていますが、実際のVBAでは1行で書かれています。 Worksheets("Sheet1").Range(Columns(i), Columns(j)).Copy Worksheets("Sheet2").Range(Columns("C")) 貼り付け先(Destination)の記述がいけないのでしょうか? 行き詰っておりますので、どなたかお助けください!

  • Excelシートを複数選択するvbaについて

    タイトルのvbaを作成していますが、インデックスエラーとなりうまく選択できません。 社員番号をシート名にしたシートが複数あります。 ここでは、2番目のシートから仮に060001~060100までとします。 (社員番号は6桁で整理しています。) 1番目のシートには、別途、条件に一致した社員番号リストを作成しています。 (シート名が6桁のため、セルの書式設定で"000000"をしています。) A1=060002 A2=060005 A3=060088 この社員番号リスト(A1、A2、A3)に一致するシートを別ブックにコピーするのが目的ですが、まずは、選択するところから始めたところ、インデックスエラーにより選択できません。 シート名と配列にしたリストの型がよくないと思い、文字列に直すなどを試してみましたがうまくいかず、結局どのように直していいのかわかりませんでした。 ご教示いただけないでしょうか? よろしくお願いいたします。 以下に、実行したプログラムを記載させていただきます。 Option Base 1 Sub Sample() Dim Sh As Worksheet Dim ArrShName() As String Dim i As Long ReDim ArrShName(1) For i = 1 To 3 ReDim Preserve ArrShName(i) ArrShName(i) = Cells(i, 1) Next i ' Worksheets(Array("060002", "060005", "060088")).Select Worksheets(ArrShName).Select End Sub

  • エクセルVBAで列の選択

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

  • エクセルのブックを開く度にシートの列幅を指定したいのですが・・・

    稚拙な質問お許しください。 エクセルでブックを開いたときに、すでにシートの列幅が任意の幅になっているよう、VBAで「ThisWorkbook」というところに、 Private Sub Workbook_Open() Sheet1.Columns("a:a").Select Selection.ColumnWidth = 7 Sheet1.Columns("b:b").Select Selection.ColumnWidth = 8 Sheet1.Columns("c:c").Select Selection.ColumnWidth = 10 Sheet1.Columns("e:e").Select end sub といった感じで記述したのですが、「F8」キーで処理の過程をみながら追っていくとどうしても、Eの列を過ぎるとEの列だけでなくそれ以降の列も選択してしまい(シート上に表があるのですが、その表の1番最後の列までです。)、任意の幅に指定できないのですが、原因がよくわかりません。どなたか、お力添えください。

  • 複数シートの選択

    エクセルVBAで複数シートの選択をしたいのです。 シート名やシートの位置が変更される可能性があるので オブジェクトで指定したいのですが 記述方法が分かりません。 ##シートの位置 Sub mac1() Worksheets(Array(2,5)).Select End Sub ##シート名 Sub mac2() Worksheets(Array("aaa","あああ")).Select End Sub

  • エクセルVBAでエラーがでます。

    エクセルで以下のようなVBAをつくりましたが Columns("B:C").Select でエラーがでます。 初歩的なことですが教えてください。 Sub Macro3() ' ' Macro3 Macro Worksheets(1).Copy before:=Worksheets(1) Worksheets(1).Activate Columns("B:C").Select Selection.Delete Shift:=xlToLeft Columns("C:L").Select Selection.Delete Shift:=xlToLeft Columns("H:H").Select Columns("L:AA").Select Selection.Delete Shift:=xlToLeft End Sub

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

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