• ベストアンサー

Excel VBA セルの値が数種類存在する時

VBAのコードの書き方について教えて下さい。 セルの値が○○の時、 ・・・・・.value = "○○"  と書きますが、○○のパターンが複数存在する時は どうすればよいでしょうか。 ORなどで繋げてみたところうまくいきませんでした。 ご存知の方がいらっしゃいましたらご教示ください。 よろしくお願いします。

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

  • ベストアンサー
  • googoo900
  • ベストアンサー率44% (82/184)
回答No.2

質問が具体的でないので回答が難しいです。 その前後を提示してもらえると、他の方からも含めて回答がつきやすいと思います。 IF文のときはorでよいと思います。その場合も ・・・・・.value = "○○" or ・・・・・.value = "△△"  です。

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

その他の回答 (1)

  • mar00
  • ベストアンサー率36% (158/430)
回答No.1

一例です。 セルの位置がわからないのでA1、B1、C1にしています。 Select Case Range("A1") Case "○○", "××", "△△" Range("B1").Value = Range("A1").Value Case "■■" Range("C1").Value = Range("A1").Value End Select のようにしてみてはどうでしょう。

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

関連するQ&A

  • セルの値が「#VALUE!」の場合 vba

    セルの値が「#VALUE!」の場合、 VBAで If Cells(lastRow, Col_本体価格) = Empty Then とすると、 「実行時エラー 13 型が一致しません。」 となります。 セルの値が「#VALUE!」の場合でも、 VBAでifステートメントを使えるようにするには どうすればいいですか?

  • Excel VBAにてUserFormのTextBoxにセルの値を色情報込みで反映させる方法があれば教えてください。

    VBA初心者です。当方勉強不足で大変申し訳ありません、 もし以下をご存知の方がいましたら教えてください。 VBAにてUserFormをつくっており、 その中でTextBoxにセルの値を反映さています。 式としては以下です。 UserForm1.TextBox1.Value = Cells(1, 1).Value この場合、セルの値は反映するのですがセルの値の色まで反映ができません。 #Cells(1,1)に赤文字で「100」と入力した場合でも #TextBoxには黒文字で「100」と反映されます。 これを色まで反映させたい場合はどのように記述をすれば宜しいのでしょうか? 何卒ご教示頂きたくよろしくお願いします。

  • エクセルVBAで設定したセルの値

    エクセルVBAについての質問です。 例えば、A1とB1のセルの値を参照している数式がC1セルに設定してあるとします。 さらに、D1のセルにはC1の値を参照している数式が設定してあるとします。 VBAでA1、B1のセルの値を変更したとします。 次のステップのVBAでC1、D1のセルを参照すれば、A1、B1の変更が反映された後の正しい値である C1、D1の値が取得できるのでしょうか? できて当たり前だと思うのですが、セルに設定してある数式が大変複雑であったりすると、ちゃんとA1、B1の変更が反映された正しいC1、D1セルの値がVBAで取得できるのかちょっと不安です。 ばかな質問かもしれませんが、回答をよろしくお願い致します。

  • Excel VBA セルの値を変更後にVBA作動

    Excel VBAを活用して、特定のセルの値が変更されたときに、VBA処理を発動させることになりました。 処理といたしましては、C列(3列目)の4行目以下の空白セルに数値を入力するか、セルに入力されている数値を変更した場合にVBAを発動させたいです。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column = 3 And Target.Row >= 4 Then MsgBox "セルの値が更新されました" End If End Sub 上記のコードを実行してみたところ、3列目(C列)の4行目を選択した段階でVBAが作動してしまいます。 セルの値変更後に作動するようにするには、どう修正すればよろしいでしょうか?

  • Excel VBA で色付きのセルの値を取得する

    ExcelのVBAマクロで、For ~ Then構文で複数のセルを参照していき、 色付きのセル(塗りなしのセル)に入力されている値のみを取得する方法を教えてください。 Excel2007を使用しています。

  • Excel VBA セルの内容をTextBoxに

    ExcelのVBAで質問があります。 複数のシートの表に入力した値の合計を出したいのですが、 その後の処理もあり、ユーザーフォームのテキストボックスに反映させたいと考えています。 Windows7のExcel2010で作っています。 試しにセルB1の値が変わった時、 テキストボックスに反映させるつもりで作ったコードは以下の通りですが、 上手くいきません。 Sub Z_test() UserForm2.Show vbModeless End Sub Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(False, False) = "B1" Then UserForm2.TextBox1.Value = Range("B1").Value '←※ End If End Sub ※の行には他にも UserForm2.Controls("TextBox1").Value = Range("B1").Value と調べたコードを試してみたのですが、 セルの内容が全く反映されません。 セルB1には数式の「=SUM(C2:C1000)」 が入っており、表のC列に入力された値の合計を求めています。 どなたかお知恵を拝借できれば大変助かります。 宜しくお願い致します。 長文失礼しました。

  • Excel VBAでシート間でセルの値がコピペできない

    今日は、Excel VBAでシート間でセルの値を単純に飛ばすだけなのですが何故か隣のセルではうまくいくのにあるセル だけには、どうしてもその値が入っていきません。 勿論セル番地は間違っていません。 何か原因があるのでしょうか。 皆さん、同じような経験をされた方原因を教えて下さい

  • エクセル ソルバー セル参照をVBAで

    エクセル ソルバーのセル参照をVBAコードで変更しようとしていますが,複数のセル参照がうまくいきません. まず,マクロの記録でセルc3の値を2にするようにC2とC4の値を変更するというコードを記録させました. SolverOk SetCell:="$C$3", MaxMinVal:=2, ValueOf:="6",ByChange:="$C$2,$C$4" 次にセル参照をコードで操作するために"$C$3"の部分はcells(3,3)と置き換えてもうまく起動したのですが,"$C$2,$C$4"の部分は,cells(2,3),cells(4,3)と置き換えると, コード内でエラーメッセージ「コンパイルエラー,修正候補,名前付き引数」とでます.この場合どう修正すればいいのでしょうか. コードでセル参照を操作しようという動機は,例えば「アクティブセルから下のセルを順に3つ参照するよう」など,場合に応じてマクロを指示するためですが,ためしに試みた時点で上記内容でつまずいてしまいました. よろしくご教示お願いします.

  • VBAにて複数選択したセルの値に選択した値の追加

    いつもこちらではお世話になっております。 現在VBAにて機能実現において、つまずいております。 複数選択したセルの値の後ろに、プルダウンから選択した値を追加したいと考えております。 値は追加できるのですが、選択を開始したセルの値が他のセルにも反映されてしまうという状況です。 それぞれのセルの値にプルダウンから選んだ値を追加しようと思えば、どのような方法で行えばよいでしょうか? よろしければご教授お願いいたします。 Private Sub Worksheet_Change(ByVal Target As Range) Dim a As Integer If Target.Address = "$B$1" Then Application.EnableEvents = False a = Cells(1, 2).Value Selection.Value = Selection.Value & a Cells(1, 2).Value = "" Application.EnableEvents = True End If End Sub 以下の画像は、実現したい画面のイメージと現在の状態です。

  • Excel、VBA、選択されているセルに値の追加

    最近仕事の事務作業を軽減させるためVBAの勉強を始めました。 現在VBAにて機能実現においてつまずいております。 ご教授いただけると幸いです。 実現したい機能といたしましては、Ctrlとクリックで選択された位置の離れている複数のセルに対し、 リストから参照した値を、選択されているセルの内容に追加したいと考えております。 現在最初に選択したセルの内容が、以降選択したセルに反映されてしまう形になってしまっています。 それぞれのセルに最初に選択したセルの内容を反映させず、リストから選んだ内容を追加しようとすればどのような方法があるでしょうか? ご回答の方、どうぞよろしくお願いいたします。 以下は現在のソースと、実現したい画面イメージになります。 Private Sub Worksheet_Change(ByVal Target As Range) Dim k As String '1,3のセルの内容が変更されたら開始 If Target.Address = "$C$1" Then Application.EnableEvents = False 'セル1,3の内容をkに代入 k = Cells(1, 3).Value '選択されているセルにkの内容を追加 Selection.Value = Selection.Value & k Application.EnableEvents = True End If End Sub

専門家に質問してみよう