• ベストアンサー

【VBA】マクロの書き方がわからない

sanakazuの回答

  • ベストアンサー
  • sanakazu
  • ベストアンサー率18% (43/230)
回答No.1

If InStr(1, ActiveCell.Value, "'") = 1 Then cell_data = Replace(Replace(ActiveCell.Value, "'", ""), ".", "/") End If Selection.NumberFormatLocal = "yyyy""年""m""月""d""日"";@" 簡単にですが・・・。

sineminna
質問者

お礼

Great!! できました!! 感謝感謝。(m_m)

関連するQ&A

  • EXCEL VBA マクロ 日付

    こんばんわ。 EXCEL VBA マクロ の日付について質問があります。 セル"A1"で"年"(例:2008)、セル"B1"で"月"(例:5)を指定します。 C1からC500くらいまで(毎日増えていきます)日付が入っています。 A1、B1で指定した年月と同じC列の日付を 10桁スラッシュ区切りの形式(例:2008/05/15)で 右隣のセル(D列)にコピーしたいんです。 困ったことにC列は形式が決まっているわけではありません。 たとえば、2008年5月15日の場合、 ・20080515・2008年5月15日・2008.05.15・2008.5.15 ・2008/05/15・2008/5/15・08/05/15・2008-5-15 その他、いろいろ考えられます。 これをマクロでやるにはどうすればいいでしょうか。 毎月一回実行します。 日付の形式をチェックするところで やり方がわからなくて困っています。 よろしくお願いします。

  • VBAの書き方

    只今VBAで、あるセルで文字を検索して、その文字があるときに、違うセルに文字を出すマクロを作っています。 例えば、エクセルのI列に記入されている文章に"VBA"という文字が入っているとき、M列に"YES"という文字を出したいです。 どのようなマクロの式を書けばこのような操作が出来るのでしょうか。 FINDやInStr関数を使えばよいのかと思いますが… どなたかお分かりのかたは、教えて頂ければと思います。 よろしくお願い致します<m(__)m>

  • エクセルのマクロで検索

    教えてください。 エクセルにいろいろなセルに文字列が並んでいます。 フォームを作成し、テキストに文字列1、文字列2を指定します。 そこからある文字列1を検索し、もし見つかればその見つかった文字列1の右のセルに指定した文字列2を挿入したいのです。右のセルに文字列3がすでにある場合はその文字列3の下のセルに文字列2を挿入します。 もしみつからなければ、Aの一番下のセルに文字列2を挿入します。 といったプログラムをコーディングしたいのですが、マクロに関しては初心者です。VBは少しなら分かります。 できれば分かりやすく教えて頂けないでしょうか。 よろしくお願いします。

  • マクロで作ってほしいのです。

    ある行のセルの決まった文字を検索し他の行のセルに別の文字を入力するマクロを作ってほしいのです。下の例で言えばA列にある"大根"(A5,A7)をさがしD5,D7に"特売日"と入力するマクロを作ってほしいのです。よろしくお願いいたします。

  • いつもありがとうございます。エクセル2003でVBAのマクロを組もうと

    いつもありがとうございます。エクセル2003でVBAのマクロを組もうとしてしています。 今日の日付と入金予定日を参照して期限オーバーしている行を収集しようとしています。 Sheet1     A    B    C     D   (列) 1   売上日  顧客名  商品名  入金予定日 2 平成22年1月4日 A商店  ○○  平成22年2月10日 3 平成22年1月4日 B商店 ○○ 平成22年2月15日 ・ ・ ・ ・ Sheet2 任意のセル(D3)に =NOW()で表示させています。 オートフィルターで今日の日付を入力し収集すれば、いいところですがVBAでオートフィルターをコントロールをしたいと考えております。よろしくお願いします

  • エクセル マクロ VBA

    エクセルのマクロについて質問です。 『集計』というブックの『集計開始』というシートに     A列    B列     C列 1行目 見出し  見出し   見出し      (商品名)  (支店)  (個数)         2行目 コメント  空白     空白   3行目 空白   空白     空白 4行目 商品名  支店     個数  5行目 空白   空白     空白 6行目 空白   空白   コメント1 7行目 空白   空白     空白 8行目 空白   空白   コメント2 9行目以降    上記のデータ(見出しを除く)の繰り返し というデータが入っています。 B列の中に『AAA』という文字が含まれていたら、そのセルを空白に置換し、 含まれていなかったら、そこで処理がとまったりエラーが出たりしないで次のステッップへ進み、 C列の中に『B』という文字が含まれていたら、そのセルを空白に置換し、 含まれていなかったら、そこで処理がとまったりエラーが出たりしないで次のステッップへ進み、 (今は、手作業で編集→置換→検索する文字列の中に『B*』と入力し、 置換後の文字列を空白にしてすべて置換ということをやっています。)                            ABC列(データーの入っている行まで)の空白を含む行を一括削除し、 以下のような形にしたいのです。     A列    B列     C列 1行目 見出し  見出し   見出し      (商品名)  (支店)  (個数)         2行目 商品名  支店     個数  3行目 商品名  支店     個数          ・         ・ このようにするマクロ文はどのようになりますでしょうか?

  • Excel2003を使っていてマクロ(VBA)

    現在Excel2003を使っています。 説明が苦手なのでどう言えば伝えられるか分からないのですが。 ちょっとした自作カードを作っていて、(図参照)C7セル内に打ち込まれた文字列をクリップボードにコピーし、一番右端○の画像ファイル内にテキストボックスを作成させた黄色枠内に、 先程クリップボードでコピーした内容をテキストボックスをアクティブにし、文字列として貼り付けるとゆうマクロを作成しています。 ------------------- Sub を() ' ' を Macro ' マクロ記録日 : 2015/2/27 ユーザー名 : Owner ' ' Range("C7").Select ActiveCell.FormulaR1C1 = "C7" ActiveSheet.Shapes("Rectangle 27").Select Selection.Characters.Text = "C7" With Selection.Characters(Start:=1, Length:=2).Font .Name = "MS Pゴシック" .FontStyle = "標準" .Size = 11 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With Range("D6").Select --------------------------- とゆうプログラムとなっており、この場合だとSelection.Characters.Text = "C7" の""間のC7と文字列が入ります。ここを""にすると空白ですし、 そこでIF関数を用いて ""の場合は何もしない ""に何か入力(C7セル内に入力)されたときのみ、C7セルない文字列をクリップボードにコピーしその内容を右端の画像内テキストボックスに貼り付けるとゆうふうなプログラムを作成するには、参考としてどのように書いたらよろしいのでしょうか? クレクレ内容みたいで申し訳なく思いますが何とぞ教えていただけませんでしょうか。

  • VBA マクロ セルと同じファイル名を選びたい

    Excelでマクロを組んでいます。 以下のような場合にどのように組めばいいのか、悩んでいます。 是非、ヒントを下さい。 Excelファイル「book1」でマクロを組んでいるとします。 1)book1のセルA1に入力されている文字列と同じファイル名のbookを選択できないか 2)セルA1から順にA2、A3、A4と文字列の入力がないセルまで自動的にセル番地を横へおくり、1)の操作を繰り返すことができないか ちなみに検索対象となるbookはすべて同じフォルダの中に格納されています。 よろしくお願いします。

  • エクセル VBA

    エクセルVBAで以下のようなデータがあります。 D列の文字列と右隣のE列の文字列の2つが入っているものをA列から探し、見つかったセルの上にセルを追加し、E列の右隣のF列に入っている文字列を代入したいです。 どのようなプログラムになりますか?

  • エクセルデータ整理をVBAで行いたい

    シート1(表1)                シート2(表2)  A列 B列 C列 D列            A列 B列 C列 D列 1名前 開始日 内容 終了日      1名前 開始日 内容 終了日  2鈴木 21年1月1日 AAA ○○○    2鈴木 ○○○ ○○○ 21年11月1日  3高橋 21年1月8日 BBB ○○○    3山田 ○○○ ○○○ 21年11月1日  4鈴木 21年1月20日 AAA ○○○   4高橋 ○○○ ○○○ 21年11月10日 5鈴木 21年2月10日 BBB ○○○   5高橋 ○○○ ○○○ 22年9月30日 6山田 21年2月13日 AAA ○○○ 7佐藤 21年3月3日 CCC ○○○ 8高橋 21年11月24日 CCC ○○○ 9高橋 21年11月24日 AAA ○○○ 上記の表について下記の表になるように求めたいのですが、シート1のデータ数は約17万行、シート2のデータ数は約6万行になります。 他の方の質問を参考に関数で求めようとしましたが、処理が非常に重く、入力した関数も成功しませんでした。 「VBAを使って作業をする」という結論に達しましたが、プログラムを組む知識がなく時間もないため皆さんの力をお借りしたいです。 条件 表2のB~C列は表1を参照し、表1のD列は表2を参照する B列は、求めるセルのA列(名前)が一致する行を対象として、複数の行が該当する場合はその中でも終了日に最も近い開始日を求める もし同じ数値があった場合は先に検索で該当した方の値を参照し、求めているセルの文字を赤字へ変更する(下記の表ではシート2のB5が赤字で表示される) また、開始日<終了日である C列はB列で該当した開始日のある行のC列の値を求める D列は各行のA~C列の値が一致した行のD列の値を求める シート1(表1)                   シート2(表2)  A列 B列 C列 D列                A列 B列 C列 D列 1名前 開始日 内容 終了日          1名前 開始日 内容 終了日 2鈴木 21年1月1日 AAA ○○○       2鈴木 21年2月10日 BBB 21年11月1日  3高橋 21年1月8日 BBB 21年11月10日  3山田 21年2月13日 AAA 21年11月1日  4鈴木 21年1月20日 AAA ○○○      4高橋 21年1月8日 BBB 21年11月10日 5鈴木 21年2月10日 BBB 21年11月1日  5高橋 21年11月24日 CCC 22年9月30日 6山田 21年2月13日 AAA 21年11月1日 7佐藤 21年3月3日 CCC ○○○ 8高橋 21年11月24日 CCC 22年9月30日 9高橋 21年11月24日 AAA ○○○ 説明がへたくそで申し訳ないですが、よろしくお願いします。