• ベストアンサー

EXCEL マクロ

EXCEL マクロで、「セルB4とC4の文字が、同じだったら、セル範囲B6~D10をコピーして、セル範囲E6~G10に貼り付ける」という処理を行わせたいと思います。 そこで、文字の比較で、”同じだったら”という記述方法がわかりません。#VALUEになってしまいます。 文字が同じ場合は、セル範囲をコピーして張り付けるという処理です。よろしくお願いします。

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

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

※は違う場合は消す処理で、無くても良いです。 Sub Test()  With ActiveSheet   If .Range("B4").Value = .Range("C4").Value Then     .Range("B6:D10").Copy Destination:=.Range("E6:G10")   Else '※     .Range("E6:G10").Clear '※   End If  End With End Sub

tabtab9
質問者

お礼

papayukaさん、ありがとうございました。 たすかりました。

関連するQ&A

  • エクセルのマクロで特定の文字があるときだけコピーできるようにしたい

    エクセルのマクロで特定の文字があるときだけコピーできるようにしたい エクセルでこういう表があるとします ココカラ 1 * 2 b 15 3 * 4 d 19 5 e 25 6 * 7 g 35 8 * 9 j 46 10 k 54 ココマデ このような表があるとき、マクロを使ってもしB列に「*」以外の文字(この場合アルファベットのb) があるときは左のセル(2)をずっと下のセルにコピー(仮にA50とします)した後、右のセル(15)をB51にコピー、 次は文字が「*」なのでコピーはせずにd列になったら4と19をC50,D51にコピー・・・ という作業をセルに「ココマデ」と書いているところまで繰り返す、というマクロを作りたいのですが、どうすれば いいのでしょうか?

  • エクセル条件付き書式をマクロにしたいです

    Excel2007使用しています。 類似質問が見つかりましたが、VBA勉強中でそこからの応用ができないので 教えていただけると助かります。 条件付き書式を毎回作成するのが大変なので、マクロで自動設定したいと考えています。 条件付き書式で設定していたのは「C4に指定文字があったら、B4・C5・D4・E4のセルを指定した色に塗りつぶす」を5パターン使用していました。 色を変えるかどうか判断する文字が含まれているのはC列にあります。 C4に「ああ」の文字があればB4・C5・D4・E4のセルを赤色に塗りつぶす C4に「いい」の文字があればB4・C5・D4・E4セルをアクア色に塗りつぶす C4に「うう」の文字があればB4・C5・D4・E4セルを黄色に塗りつぶす C4に「ええ」の文字があればB4・C5・D4・E4セルをオリーブ色に塗りつぶす C4に「おお」の文字があればB4・C5・D4・E4セルを紫色に塗りつぶす これを、C4から文字がある行まで(200行~15,000行まで対象行数が変動)処理して欲しい イメージで伝えて申し訳ありません、 情報足りなければご指摘いただければと思います。 どうぞ宜しくお願い申し上げます。

  • EXCEL マクロ(2)

    EXCEL マクロ B1セルからF1 B2セルからF2 B3セルからF3 までとに文字"T"のデータであるセルがあります。 (1) その数をカウントして各G1,G2,G3に入れる処理 をどのようにかけばいいですか。

  • エクセルのマクロのセルの選択について

    エクセルのマクロについて教えてください。 シート上にボタンを作ります。 そのボタンをクリックする前に適当にセルを範囲指定(アクティブ)に しておきます。 セルをアクティブにしたその状態で、ボタンをクリックすると、どこから どこまで範囲指定しているのかわかるようなマクロは作れるでしょうか? (1)たとえばB3からD10まで範囲指定しているときは、B3とD10のセルの場所  をひっぱってくるような... (2)あるいは  cell(?1,?2) ←B3とD10の ?1 と ?2 の値を求めるような... できれば(1)のようなB3とD10のセルの場所が直接わかるようなマクロが現在考えています処理にあっているので、そのほうがいいと思っているのですが.. お忙しいところ申し訳ありませんが宜しくお願い致します。

  • エクセル 特定セルの表示拡大マクロ

    エクセル2010のマクロについて質問させていただきます。 特定セルが選択された場合のみ表示を140%に拡大し、そのほかを選択した場合は100%に戻すマクロをご教授願います。 具体的な例としては エクセル A1~E4 で表を作成しています。 入力セルは A2,B2,C2,D2,E2,A4,B4,C4,D4,E4 の10カ所に数値を入力します。 上記10カ所を毎回選択するのか面倒なので「名前の管理」で10カ所を選択しています。 エクセルファイルを開くと10カ所を選択するマクロを実行しています。 その10カ所を範囲指定した中で選択セルを「Enter」で送っていき、「D2」もしくは「D4」セルを選択した場合のみ、表示倍率を上げそのほかのセルを選択した場合は表示倍率を戻すマクロをご教授願います。 名前の管理(範囲指定)を実行せずに、単にセルだけを選択した場合のマクロは作成できたのですが、範囲指定した中でのセル選択ではマクロが実行されませんでした。 単にセルだけを選択した場合拡大するマクロを記述しますので、よろしくお願いします。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address() = "$D$2" Or Target.Address() = "$D$4" Then ActiveWindow.Zoom = 140 Else ActiveWindow.Zoom = 100 End If End Sub マクロを学び始めて間もないため、初歩的なミス、見当外れな質問をしてしまうかもしれませんが、何卒よろしくお願いします。

  • エクセルのマクロについて

    エクセルのマクロ実行についてですが、 例えば、 E1セルの値が1ならばこうする(マクロ名 E1セル1) E2セルの値が2ならばこうする(マクロ名 E1セル2) E3セルの値が3ならばこうする(マクロ名 E1セル3) というマクロを別々に作りました。 これをボタンで実行する時に、 If Range("E1").Value = 1 Then ElseIf Range("E1").Value = 2 Then 2行目には作ったマクロを全部貼り付けないといけないのでしょうか? それとも簡単にこの場合は、マクロ名E1セル1を実行するという命令することができるのでしょうか? できるのであれば、入力方法を教えてください。 質問が分かりにくいと思いますが、よろしくお願いします。

  • エクセルのマクロ

    任意のセル内の文字の一部をコピー状態にした後に、任意のセルに一文字ずつ貼り付けるマクロを作成したいのですが。 例えば、A1に"あいうえお"と入力されていて、"うえお"をコピー状態にして実行すると、貼り付ける基点となるセルをインプットボックスで指定し、B3が指定されたとするなら、B3に"う"、C3に"え"、D3に"お"が貼り付けられる。 以下のマクロで望んでいる処理が可能になるのですが。 Sub test()  Set x = Application.InputBox(Prompt:="test", Type:=8)   Range("A10").Select   ActiveSheet.Paste   y = Range("A10").Value   z = 0   w = Len(y)     For i = 1 To w      x.Offset(0, z).Value = Mid(y, i, 1)       z = z + 1     Next i   Range("A10").Clear End Sub 上記マクロでは、コピー状態になっている文字を一旦作業用のセルに貼り付けるという処置を取っていますが、そのように作業用のセルを用いないで同じ処理を行うにはどうすればいいでしょうか?

  • EXCELのマクロで。。。

    シートAのセルC2の値(数字)を シートBのE、F、Gの各列のうち空いている一番左のセルで、かつ、D列に何か書いてある一番下の行のセル に転記したいです。 たとえば、シートBが図のような場合にはF28です。これが毎回、変化します。 マクロの記述を教えて下さい。よろしくお願い致します。

  • エクセルで、コピーに関するマクロ

    コピー対象は、例えば、C5に"お"、D5に"は"、E5に"よ"、F5に"う"という感じで、一つのセルに一文字ずつ横に連なるように入力されています。 貼り付ける場所は、例えば、起点をB8にすると、B8に"お"、C9に"は"、D10に"よ"、E11に"う"と、斜め下に連なる形になります。 コピー対象の起点となるセルは毎回違いますが、常に起点と同じ行に一つのセルに一文字ずつ入力されている状態になっており、どこからどこまでをコピー対象にするかは毎回指定することになります。 コピー対象の文字列を構成する個々のセルの中に、空欄のセルが含まれることはありません。また、コピー対象を構成するセルの最後のセルの右隣のセルは、必ず空欄になります。 貼り付ける場所は毎回違います。起点となるセルを指定すると、そのセルから斜め下に連なる形で貼り付けられます。 上記のことができるマクロを教えてもらいたいのですが。

  • Excel 2007のマクロ記述について

    Excel 2007で、B4セルからI最終行までの整数のみを小数点以下1桁にする処理をマクロで実行したいのですが、どのように記述したらよいか教えてください。 最終行とはI列にセルの値がある最後の行です。 下記の例のマクロ実行結果は、1→1.0、2→2.0となります。 (例)      列      A  B    C    D    E   F  G   H  I    J      K  行4  A1 0.9   0.9   0.9   0.9  1.2  1.2   2  2   CIRCLE  CIRCLE    5  A2 1.4   1.4   1.6   1.6   1   1  1.5  1.5  CIRCLE  CIRCLE    6  A3 0.71  0.71   0.71  0.71  1   1  1.5  1.5  CIRCLE  CIRCLE マクロ実行結果      列      A  B    C    D    E   F  G   H   I    J      K  行4  A1 0.9   0.9   0.9   0.9  1.2  1.2  2.0  2.0  CIRCLE  CIRCLE    5  A2 1.4   1.4   1.6   1.6  1.0  1.0  1.5  1.5  CIRCLE  CIRCLE    6  A3 0.71  0.71   0.71  0.71  1.0  1.0  1.5  1.5  CIRCLE  CIRCLE

専門家に質問してみよう