• ベストアンサー

Excel VBA&マクロについて

現在エクセルで個人の毎日の状態チェックを表にして作成しています。 しかし、月初めに次の月の準備として、年・月・曜日・をコピーしては書き換えといった具合に行わなくてはいけません。 状態チェックは50人以上しなくていけず、コピー&書き換えではやはり時間がかかってしまいます。 そこで、VBA&マクロを使用し、メッセージウインドウに年・月・曜日・の入力アイアログボックスを組み込み、そこを入力することで 全部チェック表の年・月・曜日の書き換えが行えるようにできないでしょうか?

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

マクロを使わなくても次のようにすればよいでしょう。 例えばSheet1について一つのフォーマットを作成して、その後にシート見出しのSheet1を右クリックして「シートに移動またはコピー」から「コピーを作成する」にチェックをしてOKすればたくさんのコピーを作成できますので、それらを上手に利用すればよいでしょう。 ところでSheet1でのフォーマットの作成ですが、例えば次のようにします。 A1セルには2009/8/1と入力して、右クリックし「セルの書式設定」で「表示形式」のタブから「日付」の2001年3月を選択してOKします。 これで2009年8月と表示されますね。2009年9月にする場合には2009/9/1とA1セルに入力すればよいでしょう。また、B1セルにはチェック表とすれば2009年8月チェック表のように表示できますね。 ところで、それから8月の日付や曜日を表示させるには例えば次のようにします。 A3セルに日付、B3セルに曜日と入力します。 A4セルには次の式を入力します。 =IF(MONTH(DATE(YEAR(A$1),MONTH(A$1),ROW(A1)))=MONTH(A$1),DATE(YEAR(A$1),MONTH(A$1),ROW(A1)),"") B4セルには次の式を入力します。 =IF(A4="","",TEXT(A4,"aaa")) A4セルとB4セルを選択して34行まで下方にオートフィルドラッグします。 これによってA4セルからA34セルまでを選択してセルの表示形式を日付で3月14日とすることで、8月1日から8月31日が表示されます。単に1日から31日と表示させたい場合には表示形式の「ユーザー定義」でd"日"と入力すればよいでしょう。なお、曜日はB列に表示されます。 A1へ2009/9/1と入力すればA1セルには2009年9月と表示されその月の日付と曜日が自動的に表示されます。 要はA1セルへの入力をするだけで表が出来上がります。このようにして作ったSheet1を次々にコピーして使うことで目的は達成できることでしょう。 ぜひご検討ください。

その他の回答 (1)

回答No.2

全て同じフォーマットであるなら対象のシートを全て選択して修正したいところを串刺しで修正ではだめですか?

関連するQ&A

  • エクセル表にマクロで・・・

    エクセルの表で日にち又は月を入れると自動的に曜日が入力されるマクロを設定したいのですが、可能ですか?マクロ初心者ですが宜しくお願いします。

  • エクセルのマクロってどういうときに使うのですか?

    VBAでプログラムを組むのとマクロを記録するでマクロを作るのは同じですか? VBAでプログラムを0から組むには知識が沢山必要だが、 マクロを記録からだと割合簡単に出来る気もします。 自分は、事務補助の仕事を以前していたのですが、簡単なアルバイトの管理表や 日程表、ガソリン料金の計算表などを入力していただけなのでマクロは使って いなかったのですが、マクロを使えばこういう場合も時間と労力を節約できたのでしょうか? マクロというのはどのようにつかうのでしょうか? 教えてくださいよろしくお願いします。

  • 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初心者です。組んで欲しいマクロがあります。 Sheet 1に13桁を入力するセル sheet 2に検索したいデータ 手順としては、 Sheet 1のセルにデータを入力 →13桁以上でマクロが開始(されるように設定します) →Sheet 1のセルと同じ数列をSheet 2の列Aから検索 →該当のセルを含む行をSheet 3にコピー →Sheet 1の入力セルの少し下にもコピー (確認用) というのを一回一回ずつやりたいです。 できれば作業中マウスやキーボードを触りたくないので、そのために、マクロの終わわりには入力セル内の消去、マクロの始まりには確認用でコピーした行の削除もつけて下さい。 検索するSheet 2には同じデータが含まれているので、出来ればひとつずつSheet 3にコピーしたいので組み込んで頂けると幸いです。 よろしくお願いいたします。

  • 関数 VBA マクロ?

    おせわになります。 よくエクセルで見積書を作成してるんですが、 単価表の本からそのつど値段を拾って定価、原価、労務費を 入力しています。そのたび大変な時間を費やしてしまいます。 積算のソフトを買えばそれまでなのですが・・・・。 そこで、自分でエクセルを使って 一覧表から品名をクリックすると自動で見積書が 出来るようなものをつくりたいと考えています。 関数を使えばよいのでしょうが、なかなかよい参考書が 見つかりません。 それに、VBA、マクロっていう機能もどんなものなんでしょうか? よい参考書、VBA、マクロについて よろしくお願いします。

  • EXCELのVBAでシートコピーをしたとき元のマクロを削除するには?

    VBAのマクロでシートのコピーをしたいのですが、元のシートにはVBAのコードが含まれています。コピーするのはデータだけのコピーが必要で、マクロ自体は必要ないのですが、それを削除するコードはどのように書いたらいいのでしょうか? どうしてもコピーしたファイルを開くと「マクロが含まれています」という確認メッセージが出てしまうのですが、それもなくしたいのです。 シートにフォームのボタンが配置されている場合も同様に、そのボタン自体をなくした状態でコピーを行いたいのですが・・・。プログラムで行うのは不可能なのでしょうか?

  • Excelで、既に作成してある月別Sheetを呼び出すマクロを作りたい

    Excelで、既に作成してある月別Sheetを呼び出すマクロを作りたいのですが教えて下さい。 2ヶ月に1回のゴルフ会の成績表を作成するのに、 1月成績、1月転記、3月成績、3月転記というように12のSheetが作ってあります。 当該月分の入力準備表を(Sheet 7月成績)に2ヶ月前の(Sheet 5月転記)のSheetを丸ごとマクロでコピーをしたいのです。  この7月と入力したら、(7月成績)のSheetを呼び出し、コピー元のSheet(5月転記)をマクロに記入出来るように設定したいのです。 例えば、   1(月)と入力したら、    11月転記Sheetから自動コピーの指定        3(月)と入力したら、     1月転記Sheetから自動コピーの指定        7(月)と入力したら、     5月転記Sheetから自動コピーの指定     年間6回の作業となります。 初心者の私が、自動記録でマクロを記入したところ、下記のようになり、同じ作業をするのに各月ごとのマクロ6本を作る必要があり、不便なので何とか1つのマクロで処理が出来ればと思い、その方法を教えて頂ければ幸いです。    Sub Macro1() ' 入力準備表作成 ' Macro1 Macro ' ' Keyboard Shortcut: Ctrl+a ' Sheets("5月転記").Select  ← 7月と入力した場合、自動的に5月転記となるように  Cells.Select Selection.Copy Sheets("7月成績").Select Cells.Select ActiveSheet.Paste Range("E5:F5").Select Range(Selection, Selection.End(xlDown)).Select Application.CutCopyMode = False   ・・・・・・

  • EXCELマクロでの曜日の表示

    はじめまして。 EXCELマクロで曜日を表示させたいのですが、方法がわかりません。 A1セルに年、A2セルに月、A3~AE3に日付(1~31) が入力されている状態で、A4~AE4に曜日(日・月・・・土)を表示 させたいのですが、どのようにすればよいでしょうか? あまり文章を書くのが得意ではないので、わかりにくいかもしれませんが、宜しく御願いします

  • エクセルVBA(マクロ)の書き方で・・・

    VBA初心者です。よろしくお願いします。 エクセルマクロで、次のような関数を入力して、 =IF(月!$D4=稼動シート!$B$2,月!B4,"◆") 自動記録をさせると コードは、次のような「絶対参照セル」(←表現あっていますか?)の表示になります。 『Range("C4").Select ActiveCell.FormulaR1C1 = "=IF(月!RC4=稼動シート!R2C2,月!RC[-1],""◆"")"』 わたしのスキルでは、この記述コードを参考に別のコードを書こうにも理解と応用が効きません。 そこで、VBAコードにも 『Range("C4").Select  =IF(月!$D4=稼動シート!$B$2,月!B4,"◆")』 と単純に書いてはいけないのでしょうか?また、どうすれば実際のシートで入力した関数と同じような表現でVBAにもかけるのでしょうか? ご指導お願いいたします。

  • Excel VBA の保存について教えてください

    VBAを始めたばかりです 会社で皆が使う入力表に、入力したものを.csvで他のファイルに書き出すなどのVBAで作ったマクロがあります。今保存先が、VBAを使ったときの保存先になっているのでこれを、個人用ブックに保存してアイコンを作って、ネットワークで誰がどのパソコンから開いても、マクロが実行できるようにしたいと思います。 保存先の変更方法を教えてください。 マクロの記憶をしたときのように、VBEも保存先を選べないのでしょうか? よくわからなくてすみません、よろしくご指導ください。

専門家に質問してみよう