• ベストアンサー

改行について

EXCEL VBAでの質問です。初心者です・・・ if文を書いていて、条件が3つ程あったのでOR条件でわけて記述した所 コードが長くなり改行しようと考えたのですがそのまま改行するとエラーになります・・・ コードを改行する場合は "," ではダメなのでしょうか? 省略ですがこのようなプログラムで途中で改行したいのです。 If Range("A21").Value = 1 or Range("A21").Value = 12 ・・・Then 初歩的ではございますが、よろしくお願いいたします

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

  • ベストアンサー
回答No.1

コードを途中で改行する場合は、半角空白とアンダーバー(アンダースコア?)で、次の行も含めて1行になります。 If Range("A21").Value = 1 or Range("A21").Value = 12 ・・・Then は、 If Range("A21").Value = 1 _ or Range("A21").Value = 12 _ ・・・Then p.s. 場合によっては、select case を使うのも見やすくなります。 select case Range("A21").Value case 1,21,... 処理 end select

sekomike
質問者

お礼

ありがとうございます。無事いけました(^^♪ select caseを使うともっと見やすいですね。。。 select case文でもやってます。 また、よろしくお願いします(^^♪

関連するQ&A

  • 改行と同時に罫線を消す

    VBAをはじめたばかりで、わからない事があるので 質問をさせて頂きます。 今、日付ごとに改行できるマクロを作成し、改行は 出来たのですが、改行した際に罫線を消すプログラムを どのように書いたらいいのかわかりません。 また罫線を消した際に、改行されたままの状態に したいのですが…。 Sub test() Dim i As Long Dim ist As String ist = Range("B" & Rows.Count).End(xlUp).Value For i = Range("B" & Rows.Count).End(xlUp).Row - 1 To 1 Step -1 If ist <> Range("B" & i).Value Then ist = Range("B" & i).Value Rows(i + 1).Insert Shift:=xlDown //改行 /* 改行と同時に罫線を消すプログラム? */ /* 改行された状態を維持するプログラム? */ End If Next i End Sub /* この部分に記述する事で、自分のやりたいことができるのかな? と思っているのですが…。 もしわかる方がいましたら、教えてください。 よろしくお願いいたします。

  • 【VBA】改行されたセルの条件

    VBAにてA1のセルが画像のように改行されたセルであっても条件式で処理を行うようにしたいのですがうまくできません。 ↓式のように作成はしてみました どうしたら改行されたセルでも処理が行えるのでしょうか? Sub test() If Range("A1") = (行1行2の場合) Then 処理 End If 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 というコードで改行が有ることは取得できたのですが 何行かまでは取得する方法がわかりません。

  • Excel2002VBAを使っての集計方法(集計条件が多い場合)

    Excel2002を使用しています。 “コード”を Sheet1のセルA1 として 下記の様なリストがあります。 コード 対象区分 件数 201     1    1 102     5    5 503     4    2 201     2    2 108     2    3 108     8    4 324     9    5 このリスト使って件数を集計するのですが、 集計条件が下記の条件です。  集計条件   コード 201 503   対象区分 1 4 7 8 9 この条件を満たす件数の合計3をExcelVBAを使って Sheet2のセルA1に入力したいのですが、効率の良い 書き方が思い付きません。 現在の私の知識では、以前こちらでご教授頂いた 下記の方法 Dim x As Range Dim sum sum = 0 For Each x In Sheets(1).Range("A:A") If x.Value = 201 _ And (x.Offset(0, 1).Value = 1 Or _ x.Offset(0, 1).Value = 4 Or x.Offset(0, 1).Value = 7 Or _ x.Offset(0, 1).Value = 8 Or x.Offset(0, 1).Value = 9) Then sum = sum + x.Offset(0, 2).Value End If If x.Value = 503 _ And (x.Offset(0, 1).Value = 1 Or _ x.Offset(0, 1).Value = 4 Or x.Offset(0, 1).Value = 7 Or _ x.Offset(0, 1).Value = 8 Or x.Offset(0, 1).Value = 9) Then sum = sum + x.Offset(0, 2).Value End If Next Sheets(2).Range("A1").Value = sum End Sub しか分からないのですが、以前よりも仕事で扱う コード数が増えてしまい、実際は集計条件のコード が100ぐらいあり、  If x.Value = 集計条件のコード   ・・中略・・  End If を100近く書いて処理するのは、効率の面、速度の面からきびしくなってしまいました。 定数等を使ってやってみたものの上手くいかず煮詰まっています。 何とぞご教授よろしくお願いします。

  • VBAで改行削除

    A列でセル内改行(Alt+Enter)をするとメッセージボックスが出るようにしましたが、 且つ、改行以降を削除したいのですが どうすればよろしいでしょうか? <例> あ か ↓ あ  "か"と、改行を削除したい。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Value Like "*" & vbLf & "*" And Target.Column =1 Then MsgBox "改行禁止", vbOKOnly + vbCritical End If End Sub 宜しくお願い致します。

  • getcの改行判定

    Windowsの構文解析でgetcを使ったプログラムを作ったのですが、 改行の判定に c = getc(fp_in); if(c == '\n'); とすると、 コマンドプロンプトに「コードは効果を持たない」と言われ、 コンパイルして実行してもif文は真にならないみたいです。 改行の判定を行うには正しくはどう記述すればいいのでしょうか?

  • vb.netでのif文について

    vb.netでエクセルを操作する プログラムを作ってて、 Dim xlrange As Excel.Range Dim xlcells As Excel.Range xlrange=xlcells(1,1) if xlrange.value<>"*合計*" then xlrange.value="" end if というプログラムを考えたのですが、 うまくいきません。 if文の条件にxlrange.valueは使えるのでしょうか?

  • ExcelVBA 二つのセルに入力された時の判定

    セルA1とA2両方に値が入力された時、セルA3に文字を入力するマクロを作りたいです。 下記プログラムで試しているのですが、ステップインで見ると最初のIFでTrue判定されてしまいます。 どうすればこの条件を満たすマクロになるのか、教えて頂けないでしょうか。 以上、宜しくお願い致します。 Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("A1")) Is Nothing Or Intersect(Target, Range("A2")) Is Nothing Then Exit Sub Else If Range("A1").Value <> "" And Range("A2").Value <> "" Then Range("A3").Value = "入力済み" End If End If End Sub

  • excel vba ジャンプ

    excel2003のUserFormにてtextbox作成しました。 textbox1にページを入力すると指定のページにジャンプする コードを作成したのですが、動作的には目的とする事ができました。 ただ、初心者レベルで作成したので、コード記述が長く、 ページが増えるたびにコードを追記していかなければなりません。 下記に作成したコードを記述します。 もっと簡単に記述する方法はありますか? ---------------------------------------------------------- Private Sub TextBox1_Change() If TextBox1.Value = 1 Then ActiveWindow.ScrollRow = 1 ActiveWindow.ScrollColumn = 1 Range("$A$15").Select End If If TextBox1.Value = 2 Then ActiveWindow.ScrollRow = 38 ActiveWindow.ScrollColumn = 1 Range("$A$38").Select End If If TextBox1.Value = 3 Then ActiveWindow.ScrollRow = 69 ActiveWindow.ScrollColumn = 1 Range("$A$69").Select End If If TextBox1.Value = 4 Then ActiveWindow.ScrollRow = 100 ActiveWindow.ScrollColumn = 1 Range("$A$100").Select End If If TextBox1.Value = 5 Then ActiveWindow.ScrollRow = 131 ActiveWindow.ScrollColumn = 1 Range("$A$131").Select End If End Sub ---------------------------------------------------------- 上記記述で行っていることは、 textbox1に 1 と入力すると1ページ目が表示  キーボードでctrl+Homeの操作をした状態でカーソルがA15選択 textbox1に 2 と入力すると2ページ目が表示  表示の先頭が38行目、カーソルがA38選択 ページの行数が1ページ目だけ37行 2ページ目以降が31行ごとです。 実際は、200ページ以上あるのでなんとかしたいのですが・・・・

  • VBAでセル記入禁止

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

専門家に質問してみよう