• ベストアンサー

VBA 1行のコードで表示したい。

エクセルVBAです。 例えば、A1とB2に「a」と入力したい場合は、 Sub test1() Cells(1, 1) = "a" Cells(2, 2) = "a" End Sub とするしかないのでしょうか? Sub test2() Range(Cells(1, 1), Cells(2, 2)) = "a" End Sub だと、 A1、A2、B1、B2に「a」が入力されてしまいました。 test2のように、1行で離れているセルに「a」と入れる方法があれば教えて下さい。 (:は使わない方法です) ご回答よろしくお願い致します。

  • fsjkls
  • お礼率99% (430/432)

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

  • ベストアンサー
  • jcctaira
  • ベストアンサー率58% (119/204)
回答No.3

fsjklsさん こんにちは。 Unionでできます。 Union(Cells(1, 1), Cells(2, 2)) = "a"

fsjkls
質問者

お礼

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

その他の回答 (3)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.4

一例です。 既に回答済みなのでその他の記載例です。 Union([A1],[B2],[C3:D4],・・・・) 因みに固定ならばコロン連結のCells(1, 1) = "a":Cells(2, 2) = "a"、 又は[A1]="a":[B2]="a"もありと思います。

fsjkls
質問者

お礼

Unionは質問をしてはじめて知りました。 ありがとうございました。

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

連続したセル範囲(長方形セル群)なら考える余地もあるかもしれません(出来るとは限らない)が、質問のようなのは2ステップになります。 >1行のコードで表示したい こんな表現おかしい。:で続ければ1行になる。それは聞いていないでしょうから。 ちなみに Sub test01() [A1] = 1 [B2] = 2 End Sub という書き方はあるが聞いていることではないだろう。 同じ値なら Range("A1,B2") = 2 が出来る。 Sub test01() 'Range("A1,B2") = Array(1, 2) Range("A1,B2").Value = Range("G3:H4").Value End Sub は両方ダメだった。 Sub test02() Dim a As Variant a = Range("G3:H4") Range("A1,B2") = a End Sub もダメだった。

fsjkls
質問者

お礼

いろいろ試して頂いてありがとう御座います

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.1

Range("a1,b2").Value = "a" です。

fsjkls
質問者

お礼

ありがとう御座います!

関連するQ&A

  • セルが何行なのかをVBAで取得したい

    セルが何行なのかをVBAで取得したいのですが どういうコードにすればいいですか? 例えば、A1セルに a b c と入ってる場合、3行ですが それをVBAで取得するにはどうすればいいですか? Sub test() Dim r As Range Set r = Cells(1, 1) If r.Value Like "*" & Chr(10) & "*" Then MsgBox "改行があります" End If End Sub というコードで改行が有ることは取得できたのですが 何行かまでは取得する方法がわかりません。

  • エクセルVBAでセル選択するコードが変

    エクセルのワークシートでVBAでセル選択するコードで理解に苦しむことがあります。 通常、Cells(2, 1)はセル番地で言えばA2セル Cells(4, 1)はセル番地で言えばA4セルです。 しかし、 With .Range("B5:B15")でくくれば  .Cells(2, 1)はセル番地で言えばB6セルだと思います。 .Cells(4, 1) はセル番地で言えばB8セルだと思います。 ところが下記のコードを動かすと、なぜかC10:C12が選択されてしまいます。 この理屈がわかりません。 Sub test02()   With Sheets("Sheet1")     With .Range("B5:B15")       .Range(.Cells(2, 1), .Cells(4, 1)).Select     End With   End With End Sub なお、 .Range(.Cells(2, 1), .Cells(4, 1)).Selectを .Range(“A2:A4”).Selectに書きかえると、希望のB6:B8が選択されます。

  • もっとA1にtestといれるVBAコードがあるはず

    教えて下さい。VBAです。 Sub test1() Range("a1").Value = "test" End Sub Sub test2() Cells(1, 1) = "test" End Sub 以外にも「セルA1にtestを入れる」というコードの書き方がいくつかあったと思うのですが 思い出せません。 教えていただけないでしょうか。 よろしくお願い致します。

  • オートフィルタ 最終行を指定する必要は?

    エクセルでVBAでオートフィルタをする場合、 ******************************************* Sub test1() 最終列 = Range("IV1").End(xlToLeft).Column Range(Cells(1, 1), Cells(1, 最終列)).AutoFilter End Sub Sub test2() 最終行 = Range("a65536").End(xlUp).Row 最終列 = Range("IV1").End(xlToLeft).Column Range(Cells(1, 1), Cells(最終行, 最終列)).AutoFilter End Sub ******************************************* どちらでもできるのですが、 test2のように最終行を取得・指定する必要はあるのでしょうか?

  • EXCEL VBAのRangeプロパティについて

    EXCEL VBAのRangeプロパティについて 下の2つのプログラムで表示されるメッセージは、 プロシージャAは"$B$1" プロシージャBは"$A$1" なのですが、Rangeプロパティはどういう使われ方をしているのでしょうか? お教えくださいませ。 ・プロシージャA Sub test1() Cells(1, 2).Activate MsgBox ActiveCell.Range("A1").Address End Sub ・プロシージャB Sub test2() Cells(1, 2).Activate MsgBox ActiveSheet.Range("A1").Address End Sub

  • エクセルVBAにて最終行の取得とその活用

    エクセルVBA初心者です。 VBAで入力行最終行を取得するのは、色々なところに載っているですが、 その行から一個下の行を全て消すのはどうしたらよいのですか? Sub 最終行取得() Dim r r = Range("B4").End(xlDown) Rows(r + 2).ClearContents  ←ここは適当です。 ちなみに Range("a"&r+1).ClearContents で一つしたのセルを消す事は出来ました。

  • EXCEL(VBA)で1行おきに行を選択する方法

    こんにちは。VBAは苦手なので教えてください。 EXCELのsheet1にあるリストに、下記マクロで1行おきに 空白行を挿入しました。 Sub test1() '隔行で空白行を挿入 Dim rw As Long 'セル For rw = Range("A1").End(xlDown).Row To 2 Step -1 Rows(rw).Insert Next End Sub 同じファイルのSheet2の1行目<Rows("1:1")>に、計算式が入力されています。 マクロで挿入した空白行全てを選択し、そこへSheet2の1行目のコピーを 貼り付けたいです。 ぜひ、良い方法を教えてください。

  • VBA教えて下さい

    for nextの使い方がわかりません 変数を使用し条件に当てはまる数値だけ 処理するといった内容です 考えたコード sub test() dim a as variant dim b as variant dim i as variant with workbooks("book1").activesheet set a =.range("A5") set b =.range("B5") end with with workbooks("book2").activesheet for i = 80 to 110 if a = cells(i,1) then b.value = cells(i,2) end if next i end sub このコードにてやりたい事は まず、book1の今開いてるシートを参照し A5セル、B5セルをセットし (例えばA5は2と入力している B5セルは10000と入力している) 次に、book2の今開いてるシートを参照し もし、1行目の80~110どれかのセルの数字が 変数aと同じ値ならば (A行80~110行のセルの数字2があれば 例えば85列) 変数bの数字を2行目の80~110に条件に当てはまるセルに移す (B行85列にB5セルの値10000を移す) ()の部分は例えで書いてます 読みにくかったら無視でお願いしますm(__)m 指定の仕方など間違ってると思うので コードを書いてくれると助かります 回答お願いしますm(__)m

  • VBA最終行取得

    Sub 最終セル取得() Dim gyou As Integer gyou = 1 Do Until Cells(gyou, 1).Value = "" gyou = gyou + 1 Loop Range("C1").Value = gyou End Sub 上記のプログラムのどこを変えれば 文字が入力されている最終行の取得ができますでしょうか。 A列に入っている文字の最終行(セル)がC1に表示される というようにしたいのですが…; このまま実行すると1つ多いセル行が表示されてしまいます 同じような質問をしてしまって申し訳ありません; どなたかわかる方回答お願い致します Excelは2000です;

  • エクセルVBAで範囲内での位置取得(行&列)

    Sub test() Set Rng = Range("B2:E7") Rng.Cells(2, 2).Select End Sub これで、範囲Rng内では2行/2列目となるC3セルが選択されます。 では、C3セルが、範囲Rng内で何行/何列目であるかを取得するにはどのように記述すればよいのでしょうか? Rng.Cells(2, 2).Rowは、当たり前ですが、3になってしまいます。

専門家に質問してみよう