• ベストアンサー

VBAについての質問です

コマンドボタンを押すと、2行目の値(B2,C2)を元に、シート名「A」の中の②という値を消すという様なVBAコードを教えてもらいたいです。 なかなかうまく動かなくて困っております。

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1646/2496)
回答No.1

以下で試してみてください。 Sub Test() Dim mRng As Range For Each mRng In Sheets(Range("B2").Value).UsedRange 'もしくは範囲指定でSheets(Range("B2").Value).Range("A1:F10")とか If mRng.Value = Range("C2").Value Then mRng.ClearContents End If Next End Sub

advantage123
質問者

お礼

できなくてすごい悩んでいました。 教えていただきまして本当にありがとうございました。

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

その他の回答 (2)

  • kkkkkm
  • ベストアンサー率65% (1646/2496)
回答No.3

回答No.1No.2の補足です。 ボタンは質問の画像の表があるシートにあるとしたコードですのでボタンが別のシートにあるのでしたら Range("B2")とRange("C2") は質問の画像の表があるシートを指定してください。 Sheet1でしたら Sheets("Sheet1").Range("B2") Sheets("Sheet1").Range("C2") とかです

全文を見る
すると、全ての回答が全文表示されます。
  • kkkkkm
  • ベストアンサー率65% (1646/2496)
回答No.2

回答No.1の追加です。 値が含まれていたらその値だけを消す場合は Sub Test2() Dim mRng As Range For Each mRng In Sheets(Range("B2").Value).UsedRange 'もしくは範囲指定でSheets(Range("B2").Value).Range("A1:F10")とか If mRng.Value Like "*" & Range("C2").Value & "*" Then mRng.Value = Replace(mRng.Value, Range("C2").Value, "") End If Next End Sub 値が含まれていたらそのセルの内容を全て消す場合は Sub Test3() Dim mRng As Range For Each mRng In Sheets(Range("B2").Value).UsedRange 'もしくは範囲指定でSheets(Range("B2").Value).Range("A1:F10")とか If mRng.Value Like "*" & Range("C2").Value & "*" Then mRng.ClearContents End If Next End Sub

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

関連するQ&A

  • VBAの書き方を教えてください

    EXCEL2003を使用しています。 特定のセルの値を取得して、値と同じシート名を検索して移動する事はVBAで可能でしょうか? 具体的に、sheet1のA1はVLOOKUPにて検索後の値(りんご)が表示されています。 コマンドボタンにて、A1の値(りんご)を取得して、数十枚あるシートの中からA1と同じ値(りんご)の名前のシートに移動したいのです。 いろいろ探したのですが、よく分からなかったので教えて下さい。

  • 入力するたびにセルを移動させるVBA

    シート2のB2(1)、B3(2)に値を入力し、シート上に作ったコマンドボタンを押すと、シート3のC3に(1)の値、D3の(2)の値が入力されるマクロを組んでいます。新たにシート2のB2、B3に値を入力し、ボタンを押すと、今度はシート3のC4,D4に(1)、(2)の値が入力される、もう一度同様の作業をするとシート3のC5、D5に(1)、(2)の値が入力されるVBAはどのようにすればいいですか?

  • エクセルVBA/抽出・貼付け

    下記を行いたいのですが、どのようなコードになるのでしょうか? シート001(入力用) (1)A1~A50、B1~B50、C1~C50、D1~D50  に数値、E1~E50に文字列 (2)F1~F50、G1~G50、H1~H50、I1~I50  に数値、J1~J50に文字列 ※空白行混在 シート002(計算用) シート001に作ったコマンドボタン:クリックにより、 シート002を表示させ、A1~E100に、 シート(1)のA1~E50とF1~J50の空白行以外を連続して 反映させたい。並べ替え用など別シートを用いずに、 VBAコード内で処理したい。

  • VBAのコマンドボタンについて

    エクセルVBAのコマンドボタンをシートに配置してあるのですが、セルの操作(他シートからのコピペ)によってそれの大きさが変わらないようにしたいです。 コマンドボタンのオプションで、『セルに合わせて移動やサイズ変更をしない』にチェックをいれてあるのですが、他のシートからコピペした際にコマンドボタンの位置とサイズが変わってしまいます。 コピーする元のシートのセルサイズに引きずられて、大きさが変わってしまいます(値だけコピーにすれば大丈夫)。 元に戻すボタンを押してもコマンドボタンの大きさは元に戻ってくれないので困っています。 シートの保護で行と列の大きさを保つように保護することも試みたのですが、それだとコピペができなくなってしまいました。 コピペした際に コマンドボタンの大きさと位置が変わらなければどんな方法でも大丈夫です。 (1)コマンドボタンの設定のミス?なので設定を変更する (2)常時、「形式を選択して貼り付ける」の際に"値のみ"しか選べないようにする(もしくは単に「貼り付け」した時に値だけ貼り付けるように設定する)、 (3)行と列の高さ・幅の変更を禁止したままコピペ等が出来るようにする ・・・などなど 詳しい方よろしくお願いします。

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

    いつもお世話になっております。 以下の操作(添付ファイル)に対するVBAのコードを教えてください。 (1)シート1(添付ファイル左):B列に新聞名、C列に対象記事数 (2)マクロを実行することにより、シート2(添付ファイル左)の表が作成される。 質問したい事は、A新聞の記事数が3、B新聞の記事数が2なので、シート2にA新聞の行が3行作成され、その下に、B新聞の行が2行・・・・記事数が0の場合は行は作成されない。 のような事をやいりたいのですが、コードが分かりません。 どなたかよろしくご教授ください。

  • マクロ VBA入力

    シート1  A    B   C     1 コード コード 金額     2 01 シート2  A    B   C   D   E     1 コード 名前 コード 名前 金額     2 01    あ  02   い  20     3 01    あ  03   う  30 シート1とシート2があります。シート1のA2に入力されたコードがシート2のA列に入力されていたら、その行のC列のコードをシート1のB2に反映し、E列の金額をシート1のC2に反映する。シート1のA2のコードは、シート2のA列に複数あるため、この作業を繰り返す。 シート1 A  B   C  1 コード コード 金額   2 01   02   20  3 01   03   30とできるようにするにはどうすればいいでしょうか?分かりにくい文章で申し訳ありません。関数では無理なのでVBAの入力しかないかと考えていますが、VBAは全くの初心者で困っています。どなたかご回答宜しくお願いいたします。   

  • VBAについて教えてください

    VBA初心者です。下記のような処理を行ないたいのですが、このような処理は可能でしょうか? 【sheet2】   A B   1 あ a       2 い b     3 う c 4 え d 5 お e 【sheet1】 (1)   A B   (2) A B   (3) A B   1  あ a    う c     お e   2  い b    え d (処理内容) 【sheet1】にボタンを作成して、それにマクロを関連付けます。 そのボタンを押した結果が、【sheet2】のデータを2行ずつ【sheet1】にコピーして、ボタンを押していくと【sheet1】の結果が(1)⇒(2)⇒(3)⇒(3)と同じとなる。 このような処理を行いたいのですが、どのように作成したらよいのかわかりません。宜しくお願いいたします。

  • エクセル VBA コンボボックスで検索

    エクセルVBA初心者です。 シート1行目には工場名、2行目に見出し、3行目からデータが記入されています。 2行目に見出しとして、A列には作業者名、B列に工事番号、C列から作業時間などが記入されています。 ユーザーフォームにコンボボックス、コマンドボタンを設置し、コンボボックスには工事番号一覧が表示されるようにするところまではできましたが、コンボボックスで工事番号を選択し、コマンドボタンを実行することで、1シート内の一致する行だけを表示したいのですが、いろいろなサイトを参考に試してみたのですがうまくいきませんでした。 同じ内容のシートが複数ありますが、シート毎での検索・抽出をしたいと考えています。 どのようなコードを作成したら良いのかご教授願えたら幸いです。 よろしくお願い致します。

  • VBAで列全てに式を入れたいんです。

    エクセルで 例えばセルA1,B1,C1を選択して 3つのセルの値をD1に値としてコピーする事は出来ませんか? A1,B1,C1はVBAで得た値です。 関数で1つにすると、もう一度コピーして値として 貼り付けなけねばなりませんので・・・ VBAは他の方に作成して頂いたので、 知識としてはありません。 VBAでの追加の仕方があればお教え下さい。 下記の回答を頂きまして 上手くいったのですが、 その式を、列全てで行うのはどうすればいいのでしょうか? 「 次のコードをEnd Subの上の行に挿入してください With Sheets("シート名") .Range("D1") = .Range("A1") & .Range("B1") & .Range("C1") End with 」 すみません。誰かお教え下さい。

  • vbaでシートより100より大きい値を削除するコードを教えてください

    vba初心者です。 値の羅列のシートでセルの値が100より大きいセルはのある行は削除したい時どのようなコードを書けばわからず苦慮してます。 例として下記のようなシートの場合どうかきますでしょうか? A B C D E F ---------------------------------------- 1 20090101 20 30 95 40 ---------------------------------------- 2 20090102 25 35 105 45 ---------------------------------------- 3 20090103 40 50 110 50

このQ&Aのポイント
  • Windows11のノートパソコンで無線LANでのドライバーインストールを行っています。
  • プリンタードライバーのインストールを行うと、パソコン側ではプリンターの無線LAN設定に失敗したとのメッセージを表示しています。
  • パソコン本体側のWi-Fi設定は「プライベート」にしています。
回答を見る

専門家に質問してみよう