• 締切済み

EXCELのマクロ

CSVデータで 例えば G列に あり なし の判定をしていて ひとつでも あり があれば メッセージを出して警告 するようにしたいのですが  どうような文になりますか?

みんなの回答

  • SI299792
  • ベストアンサー率48% (719/1487)
回答No.2

CSV だと、マクロは入れれません。Excel に取り込まなければならないのですが、それをプログラムでやらなければならないのか、ファイルはどのように指定するか判りません。 既に取り込んであるものとして、メッセージ表示だけです。ない場合は何表示しません。 ' Sub Macro1() ' If WorksheetFunction.CountIf([G:G], "あり") Then MsgBox "「あり」が有ります", vbCritical End If End Sub

全文を見る
すると、全ての回答が全文表示されます。
  • retorofan
  • ベストアンサー率33% (328/977)
回答No.1

EXCELのマクロを作ってみました。 ワークシート「Sheet1」のG列のセル(G1からG100まで)を順に調べ、 セルの値が「あり」である場合にメッセージボックスで表示します。 Sub CheckColumnG() Dim rng As Range Dim cell As Range  ' G列の範囲を指定 Set rng = ThisWorkbook.Sheets("Sheet1").Range("G1:G100") For Each cell In rng If cell.Value = "あり" Then MsgBox "警告: G列に'あり'が見つかりました。", vbInformation Exit Sub End If Next cell ' MsgBox "G列に'あり'は見つかりませんでした。", vbInformation End Sub

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

関連するQ&A

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

    エクセルのマクロについて C列の最後の全角2文字が『林檎』の場合、G列のどこかに『林檎』の文言が入っています。 もし入っていない場合のみメッセージを入れる。 こんなマクロできますか?    C列       G列 5行目 ああああ林檎 いい林檎いいい ――――――――――――――――――    C列       G列 6行目 いいいい林檎 いいいいい蜜柑 ――――――――――――――――――    C列      G列 7行目 うううう林檎 林檎いいいいい ――――――――――――――――――    C列       G列 8行目 うううう蜜柑 林檎いいいいい ↑この場合6行目G列に『林檎』の文言が入っていないので『6行目』とメッセージ ※8行目はC列の最後に『林檎』の文言がないので特にメッセージはなし。 列(\"5:65536\")の範囲でお願いしますm(><)m

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

    エクセルのマクロについて C列の最後の全角2文字が『林檎』の場合、G列のどこかに『林檎』の文言が入っています。 もし入っていない場合のみメッセージを入れる。 こんなマクロできますか?    C列       G列 5行目 ああああ林檎 いい林檎いいい ――――――――――――――――――    C列       G列 6行目 いいいい林檎 いいいいい蜜柑 ――――――――――――――――――    C列      G列 7行目 うううう林檎 林檎いいいいい ――――――――――――――――――    C列       G列 8行目 うううう蜜柑 林檎いいいいい ↑この場合6行目G列に『林檎』の文言が入っていないので『6行目』とメッセージ ※8行目はC列の最後に『林檎』の文言がないので特にメッセージはなし。 列("5:65536")の範囲でお願いしますm(><)m

  • エクセルマクロの質問です。

    例えば、A.xlsというファイルに01.csv,02.csv,・・・,20.csvといういくつかのファイルからデータを取り出すのですが、A.xlsのシート1の1列目に01.csvの1列目を貼り付けて、01.csvの2列目はA.xlsのシート2の1列目に貼り付けるようにシートをずらして行って、02.csvの1列目はA.xlsのシート1の2列目、02.csvの2列目はA.xlsのシート2の2列目というようにしたいのですが、どのようなプログラムがよいのでしょうか? エクセルマクロ初心者なので説明が不十分かも知れませんがよろしくお願いします。

  • とほほのエクセルマクロ

    以下の文の[-1899]の部分を可変型にしたいのですが。 どなたかご存知有りませんか? ActiveCell.FormulaR1C1 = "=COUNTIF(R[-1899]C:R[-1]C,""いっしょだよ"")" ==================================== マクロの説明です。 ==================================== エクセルマクロでsheet1にデータを入力していって、 sheet1のD列内に同一のコードがないかをチェックするために sheet1のコピーを作成してD列でソートしてから D列の1行目=2行目ならK列に”いっしょだよ”という メッセージを出すようにIF文を書きこんでいきます。 最後にこの”いっしょだよ”というメッセージが何件あったかを見たいので、 一番下の行+1行目に ActiveCell.FormulaR1C1 = "=COUNTIF(R[-1899]C:R[-1]C,""いっしょだよ"")" という文を入れたのですがこれだと自分が居る一つ上のセルから 1899上までしか行かないのですが、毎回データを入力して行数は増えていってしまいます。 どのような、文にしたらよいのか教えてください。 お願いいたします。

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

    エクセルでマクロを組んでいますが、ひとつだけ再現できず困っています。 A1からE100までの表で、A列からD列までの数値をE列で○と×で判定します。 この時、E列が○の場合にA,B,D列のデータをクリアしたいのです。 マクロのコードがわかれば助かります。よろしくお願いします。

  • このようなエクセルマクロを組みたいのですが...

    下記のようなマクロを組みたいと思っていますが、 知見がほとんどないので教えていただきたいと思います。 "csv"というフォルダにランダムなファイル名でcsv形式のファイルが100以上保存されています。 目的は、 そのcsvファイル内の一部のデータをひとつのファイル(ファイル名を"まとめ"とします)に移して並べたいと思います。 <前提> "csv"フォルダと"まとめ"ファイルは既に開かれている状態とします。 "まとめ"ファイルを開いた状態で、マクロを走らせると、 (1)csvファイルが開く (2)セルA1とB1をコピー (3)"まとめ"ファイルのA1、A2へ貼り付け(行と列を変更) (4)csvファイルを閉じる (5)次のcsvファイルが開く (6)セルA1とB1をコピー (7)"まとめ"ファイルのB1、B2へ貼り付け(行と列を変更) (8)csvファイルを閉じる 以降、"csv"フォルダの中身をすべて処理できるまで繰り返し。 という風に考えていますが、 当方あまり知識が無くアレンジが難しいためできる限りシンプルにと考えています。 そのため、もしこうした方が...等あればアドバイスいただけるとありがたいです。 すみませんがよろしくお願いいたします。

  • エクセルマクロで並び替えを行いたい。

    エクセルマクロで以下の並び替えを行いたいのですが、可能でしょうか。 「I列~O列」データ「A列~G列」の下に並ぶようにし、 かつ、複数シートも同様に処理したいと思います。 【元データ】 「A列~G列」 「I列~O列」 ※行数はシートによる異なる。 ※シート数もファイルごとに異なる。 【並び替え後】 「A列~G列」 「I列~O列」 よろしくお願いします。

  • エクセルのマクロの操作を記録するについて教えて下さい。

    エクセルのマクロの操作を記録するについて教えて下さい。 マクロ・VBAを勉強しはじめた超初心者です。 毎日、CSVの新しいデータを取得します。 その中で、列の並び変えや文字の太さ、ここは¥マークをつけたい など編集したい事があるのですが、 それを毎日していると時間がかかってしまうので自動化したいので マクロというものを知りました。 実際に、新しいCSVファイルを開いて、 マクロの記憶→上記の編集操作→マクロ記憶終了→保存 とすると、行った動作ではなく、 今現に表示されているCSVの文字データも記憶されてしまいますよね?? 行った動作(列の並び変えや書式変更、関数入力)という行動”だけ”を 自動化するにはどうしたら良いのでしょうか? 毎日取得するCSVデータは 列の項目は一緒ですが、その中で数字や住所が違うデータです。 分かりにくい文章で申し訳ありませんが よろしくお願い致します。

  • Excel マクロについて

    Excelで作成したシートを次の手順で保存できるようなマクロを作成したいのですがどうしたらいいでしょうか?  1)あらかじめ所定のフォーマットを用意しユーザーが入力できるようにする。  2)ユーザがボタンを押すとそのシートの上2行(1行、2行)と左1列(A列)が削除され、    (タイトル行なのでCSVにする際に不要な為。)  3)「名前を付けて保存」のダイアログボックスが表示し  4)保存先のフォルダが「X:\DATA\」となるようにし  5)ファイル名がその日付(yyyymmdd.csv)、CSV形式 (例:20031125.csv)となるようにし、    (ユーザーにても変更の可能性もあるので固定にはしない)  6)ユーザーが保存先、ファイル名等を確認語保存する。  7)保存後は元のEXCELシート(CSV形式でない)で開いた状態で終了とする。 自分でも作成したのですが、本当にこれでいいのかも疑問でご意見を教えて下さい。 特に、7)のところがうまくいかず、6)での保存後どうしても開いているファイルの状態が CSV状態になります。 以上、ご存知の方教えて下さい。  

  • エクセル マクロ? 関数? データの抜き出しと

    エクセル2010を使っています。 画像のオレンジの部分の様なデータがあります。 A列とB列に重複したデータが複数有り、D列に重複なしの氏名(A列のデータの重複なし)を表記しました。 D列の上からの氏名のデータをA列から探して該当する氏名のB列のデータを、E列、F列、G列と右に表示したいと思います。 A列B列は現状で16000行ほど。 D列は重複は無く、900行ほどあります。 ですので出来るだけ負担の無い形で抜き出したいです。 詳しい方、よろしくお願い致します。