• ベストアンサー

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

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

noname#150929
noname#150929

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

  • ベストアンサー
  • Siegrune
  • ベストアンサー率35% (316/895)
回答No.2

Range("a1").Value = "test" Cells(1, 1) = "test" 以外でも cells(1,1).value2 = "test" cells(1,1).formula = "test" cells(1,1).formulalocal = "test" cells(1,1).formulaR1C1 = "test" cells(1,1).formulaR1C1local = "test" などでもかけますけど、用途によって使い分けしますので、 どんな用途か書いてもらったほうが的確な回答になると思います。

noname#150929
質問者

お礼

このような答えを求めていました!ありがとうございました。

その他の回答 (2)

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

セル番地的なことの質問なのか?(右辺の質問ではないよね) ーー Range 既述 Cells  既述 [A1] cells(インデックス) そのNextやPrevious Offsetは除く Selection.SpecialCells(xlCellTypeLastCell).Selectといった特徴で規定される表現法は除く。 -- 例 Sub test01() [A2] = 23 End Sub ー Sub test03() Cells(3) = 34 Cells(5).Next = 45 Cells(5).Previous = 55 End Sub

noname#150929
質問者

お礼

いっぱいあるのですね! とても参考になりました。 ありがとうございました。

noname#158634
noname#158634
回答No.1

本題は「A1の指定」と「文字列"test"を入れる」のどっち? ※A1の指定 Cells(2, 1).Offset(-1, 0)みたいな無茶なものとWorksheetFunctionを除くと [A1] くらい。 ※"test"の出力 "t" & "e" & "s" & "t" みたいな無茶なものを除くと無い。

noname#150929
質問者

お礼

ありがとうございました。 質問の仕方がわかりづらくてすいません、 「A1の指定」です。

関連するQ&A

  • 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」と入れる方法があれば教えて下さい。 (:は使わない方法です) ご回答よろしくお願い致します。

  • エクセル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が選択されます。

  • VBA (Row とRowsの違いについて)

    いつもお世話になっております。 VBA初心者ですが、RowとRowsの違いについて今一つ分かりません。 添付ファイルのように、A2:A25まで数字を入れた表を作って、今ある知識で行数をカウントするコードをいくつか書いてみました。 test1:A2から始まる表を構成するトータル行数を返す。 test2:?? test3:A2から始まる表の最終行番号を返す。 test4:test1と同じ test5:??? (1)test2、5は同じ内容のコードになると思いますが・・結果の『2』は何を意味しているのか分かりません。 (2)RowとRowsの違いは簡単に言うとどういう事でしょうか? まとまりの無い文章で申し訳ありませんが、よろしくお願いいたします。 Sub test1() Cells(2, 2).Value = Cells(2, 1).CurrentRegion.Rows.Count End Sub Sub test2() Cells(2, 3).Value = Cells(2, 1).CurrentRegion.Row End Sub Sub test3() Cells(2, 4).Value = Cells(2, 1).End(xlDown).Row End Sub Sub test4() Cells(2, 5).Value = Range(Cells(2, 1), Cells(2, 1).End(xlDown)).Rows.Count End Sub Sub test5() Cells(2, 6).Value = Range(Cells(2, 1), Cells(2, 1).End(xlDown)).Row End Sub

  • セルが何行なのかを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(Excel2000)にて、参考書等を見て下記のコードを作成しました。 「セルA1かA10において、同じ数値が続けて入力されたら、最後のセル(一番下のセル)をB列にコピーする。」 Sub ループ() Dim a As Long With Range("a1:a10") For a = 1 To .Count - 1 If .Cells(a).value <> .Cells(a + 1).value Then .Cells(a, 2).value = .Cells(a).value End If Next .Cells(.Count, 2).value = .Cells(.Count).value End With End Sub 上記の「For idx = 1 To .Count - 1」の意味が分かりません。 よろしくお願いします。

  • VBA教えてください

    VBA初心者です 画像を添付します 赤いセルの背景色に反応し、 C~Eのセルを結合してその中に文字を入れると言うものですが 10/1みたいに全て結合出来れば良いのですが コードを実行した結果 10/5の結果はC~Eのセルは結合されてますが 列の9~11のセルは結合されてないです これをまとめて結合出来るようにしたいです (10/1の結合セルみたいな事をしたいです) コード sub test() const hani as string="A1:E11" dim rng as range for each rng in range(hani) if rng.interior.colorindex= 3 then range(cells(rng.row,3),cells(rng.row,5)).merge cells(rng.row,3).value="停止" end if next rng end sub です。 試行錯誤しましたが変な結果になって手詰まりしてます。 コード書いてもらえるとすごく助かります! 回答お願いします!

  • VBAでセル記入禁止

    たとえば、"A1"に1を記入した場合、B1を記入不可にできるような、VBAのコードがあれば教えて欲しいです。 sub 記入不可() if range("A1").value = "A1" then B1のセルが記入できないコード end if end sub です。 よろしくお願い致します。

  • VBAのコードについて質問です

    独学でエクセルVBAの初心者です。 定尺の鋼材から一定の長さのものが何本切り出せるかを調べるプログラムを作りたいです。 ネットで調べたところカッティングストック問題というものすごい難しいサイトに当たりましたが、 そのような難しいものではなく単純に同じ長さのものを切っていき、必要本数が取れたら次の長さを 切っていくというものを作りたいと思います(最終的に定尺何本必要か知りたい)。 まだまだ始めたばかりなのですが、do while文でorを使ったのですが反映されません。 なぜなのでしょうか? iが3になった時点で引くのを止めたいのですが止まりません教えてください。 Sub Test() Worksheets("Sheet1").Cells(1, 2).Value = 5500 Worksheets("Sheet1").Cells(2, 2).Value = 1000 Worksheets("Sheet1").Cells(3, 2).Value = Range("B1").Value Dim i i = 0 Do While Range("B3").Value > Range("B2").Value Or Range("B4").Value = 3 i = i + 1                           ↑この部分 Range("B3").Value = Range("B3").Value - Range("B2").Value Loop Worksheets("Sheet1").Cells(3, 2).Value = Range("B3").Value Worksheets("Sheet1").Cells(4, 2).Value = i End Sub

  • VBAのコードを見ていただけませんか

    いつも、ここのサイトの方々には大変お世話になっております。ありがとうございます。 さてexcel2000で、dataというフォームにデータを格納し、メインのシートから、読みに行って編集するデータベースを作成しようとしています。 とあるサイトを参考にして、コードを作成しましたが、いくら頑張ってもどうしてもエラーが出てしまいうまくいきません。 どうか、コードのチェック・修正内容の提案等をいただけないでしょうか?よろしくお願いいたします。 (1)自分で登録した「IDが見つかりません」という表示しかでず、登録が出来ない (2)dataシートのB列(2列目)が主キー(IDと呼んでいます) です。(メインのシートとデータを照合させる部分) (3)メインのシートのIDはAL1~AQ1行セルまでを結合したセルに保管しています。 (4)下記コードでCommandButton1ボタンを「登録」と命名し、メインシートで入力したデータをdataシートに変更登録、新規に入力したデータも登録できるようにしたい。 (5)スピンボタンでIDを変化させて、メインフォーム上のデータも変化させたいけど、こちらも同種のエラーが出てしまう。 ■以下コードです。 Private Sub CommandButton1_Click() Dim fRange As Range Dim fRow As Long If (Range("AL1").Value = "") Then 'IDが入力されていない場合 MsgBox "IDを入力して下さい", vbExclamation Exit Sub End If Set fRange = Sheets("data").Columns(2).Find(What:=Range("AL1").Value, _ LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows) If (fRange Is Nothing) Then 'IDが見つからなかった場合 MsgBox "IDが見つかりません", vbExclamation Exit Sub End If fRow = fRange.row 'IDの行位置を求める Sheets("data").Cells(fRow, 1).Value = Range("AZ1:BE1").Value Sheets("data").Cells(fRow, 2).Value = Range("AL1").Value Sheets("data").Cells(fRow, 3).Value = Range("AA1:AO1").Value Sheets("data").Cells(fRow, 4).Value = Range("D5:E5").Value Sheets("data").Cells(fRow, 5).Value = Range("G5").Value Sheets("data").Cells(fRow, 6).Value = Range("I5").Value Sheets("data").Cells(fRow, 7).Value = Range("D5:F7").Value Sheets("data").Cells(fRow, 8).Value = Range("G6:I7").Value Sheets("data").Cells(fRow, 9).Value = Range("E8:E9").Value Sheets("data").Cells(fRow, 10).Value = Range("G8:G9").Value Sheets("data").Cells(fRow, 11).Value = Range("B11:I24").Value Sheets("data").Cells(fRow, 12).Value = Range("B71").Value Sheets("data").Cells(fRow, 13).Value = Range("C71").Value Sheets("data").Cells(fRow, 14).Value = Range("B73").Value Sheets("data").Cells(fRow, 15).Value = Range("C73").Value Sheets("data").Cells(fRow, 16).Value = Range("B75").Value Sheets("data").Cells(fRow, 17).Value = Range("C75").Value   ’・・・・全部でfRow122まであります End Sub

  • VBAのコード forを使用した処理

    おはようございます。 どうしてもコードが思いつかないので質問させていただきます。 やりたいこと 例 A1~A5セルにランダムに『今日』や『明日』の文字が入っている として B1セルに『1』、B2セルに『2』、B3セルに『3』Bセルに『4』 とそれぞれ数字が入力されているとします。 例えばもし A2セルとA4セルに『今日』という文字が有れば、C1セルに B2セルの値とB4セルの値を足したものを反映させたいのですが どうしてもfor文を使用すると最後の数字 (このパターンだとB4の数字を張り付けられるだけになります。) どうしたらSUM関数みたいに連続してB2とB4セルの値を 足せるようなコードをかけるのでしょうか? すいませんが下記にコードを記載します。 出来ましたらこうしたらうまく計算できるよ! というコードを記載していただけないでしょうか? 宜しくお願い致します。 Sub test() Dim i As Long For i = 1 To 5 If Cells(i, "A").Value = "今日" Then Range("C1") = Cells(i, "A") ←ここの処理コードが間違っていますよね End If Next i End Sub

専門家に質問してみよう