• ベストアンサー

マクロ/VBAでできること?

エクセルは関数までしか使用したことがない初心者です。 以下のようなことをエクセルでやりたいのですが、それが可能か、可能であれば必要な知識はなにか、それを行うにあたって適した書籍があれば併せて教えていただきたいです。 ・シートに基本的な情報(会社名や住所など)を入れる。 ・基本シートに「報告書」や「稟議書」へのリンクボタンをつけて、  ワンクリックで基本情報が反映された報告書などのbookが立ち上が  る。 ・別シートにスケジュール管理表を作り、基本情報シートに日付と時間 をいれたらスケジュール管理表に反映される(セル色が変わる)。 よろしくお願いいたします。

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

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

ワンクリックで基本情報が反映された報告書などのbookが立ち上がる。 スケジュール管理表に反映される(セル色が変わる)。 いずれもエクセルVBAで可能です。 VBA入門書でもOKですが、以下のようなサイト沢山ありますので、参考にしてください。 http://www.asahi-net.or.jp/~ef2o-inue/menu/menu04.html 参考まで簡単なVBA作ってみました。実験してみてください。 エクセル新しいブックで、「表示」「ツールバー」「フォーム」 フォームの中のボタンをクリック、シート上にボタンを作成 マクロの登録 「新規作成」VBエディターが起動します。 以下の内容になるように、中4行をコピィしてみてください。 Sub ボタン1_Click() GYOU = Sheet2.Range("A65536").End(xlUp).Offset(1, 0).Row Sheet2.Cells(GYOU, 1).Value = Sheet1.Range("A1").Value Sheet2.Cells(GYOU, 2).Value = Sheet1.Range("A2").Value Sheet2.Cells(GYOU, 3).Value = Sheet1.Range("A3").Value End Sub Sheet1のA1,A2,A3に適当に文字でも入れてボタンを押して、Sheet2の内容を確認してみてください。

910910
質問者

お礼

サンプル、非常に分かりやすかったです。 お忙しい中ありがとうございました!! URLを参考に進めていきたいと思います。

その他の回答 (1)

  • 6dou_rinne
  • ベストアンサー率25% (1361/5264)
回答No.1

すべてできます。そんな難しい処理は必要ありませんから、VBAの知識があればできます。 まずはVBAの入門書で学習するべきでしょう。

910910
質問者

お礼

ありがとうございました。 入門書、購入してみます。

関連するQ&A

  • ExcelVBマクロ

    新年度Aというフォルダー内にあるbook2012.xlsを開き一部データー入力の上、表操作したものを 別名のファイルで同じフォルダー内に保存する方法を教えてください。 book2012.xlsには「報告」「管理」というシートが2つあります。 (1)「報告」シートを非表示にし、「管理」シート上のA1セル内容をファイル名にして保存。 (2)「報告」シートを再表示し、「報告」シート上のA10~A20セルの内容を一時削除、   「管理」シートを非表示にして「報告」シート上のA1セル内容をファイル名にして保存。 (3)「管理」シートを再表示し、「報告」シート上に先程、削除したA10~A20セルの内容を復元した 上でbook2012.xlsを上書きする。 ※(1)(2)で保存時、同名ファイルがある時は上書きする。

  • エクセルマクロで日付検索について

    エクセルのマクロで日付を検索するマクロについて質問です。 ブックAのシート1のA列に A1 2017/3/13 A2 2017/4/1 A3 2017/4/19 A4 2017/5/16 A5 2017/7/17 A6 2017/9/5 というような日付が入っています。 ブックBのシート1のA1セルに2017/6/3と入力してマクロを実行した際に その日付に一番近い一つ前の日付を探し、見つけた日付のB列のセルを ブックBのシート1のA2セルに表示したいです。 今回の例であれば2017/6/3に対してブックAのシート1のA列はA4セルが当てはまり その当てはまったA4セルの1つ横のB4セルの内容をブックBのシート1のA2セルに表示するということです。 よろしくお願いします。

  • エクセルVBAでのスケジュール作成

    いつも大変お世話になっております。 本日も質問させてください。 会社指定の異なる2つのブックのエクセル表に自分の部署の社員全員のスケジュールを入れなければいけません。 (1つは月間、もう1つは週間で、それぞれ各月、各週毎にシートがあります。) VBAのフォームを作成し、週間スケジュールは自動でセットできるようになりました。 ですが、月間のスケジュールがうまくいかなくて困っています。 (入力フォームは共通のものを使用します。) スケジュールの表はシートが月別になっていてA列に社員名、1行目に日付、2行目に曜日、3行目に祝日が表示されるようになっています。 4行目からが各社員のスケジュールですが、1人の1日分のスケジュール入力のセルは2列×3行=6セルです。 (わかりにくいので図で表現したかったのですが、ずれて表示されてしまって余計にわかりにくいのでやめてみました。ちなみに、1人目の1日目のスケジュールのセル範囲はB4:C6となります。) そして、各セルには入力する項目が決まっています。 (この項目についてはフォームで作成済みです。) セルが多いため、Rangeを使おうと思っても指定するのが困難です。 個人的にはRangeのセルの値を別シートに作成した表からindexで検索できたらなぁ。と思っています。 できるかどうかすらわかっていませんが。(汗) もちろん、もっと効率的な方法があればそちらを教えていただきたいです。 週間スケジュールのセルから入力値をもってくる事も考えたのですが、月間は1日から必ず始まっていますが、週間は月曜日からのため、月や週によって日付が異なることなどから、やはり私には難しいのです。 よろしくお願いします。

  • エクセル2003 マクロ シート名

    エクセル2003です。 1つのブックにシートが10シート有ります。 R2のセルに日付を入れると それぞれのシート名が日付 (例)"11月25日"になるようなマクロを作りたいのですが、 教えてください。 又は逆にシート名に"11月25日"とすると R2セルが"11月25日"となるマクロを教えてください。 日付はシート毎に違います。 すみませんがよろしくおねがいします。

  • エクセル2007です。セルの塗りつぶしを自動に実行するVBAについて、

    エクセル2007です。セルの塗りつぶしを自動に実行するVBAについて教えてください。システム日付でVBAを使用したいのですが横軸に日付(2010/1/1~2015/12/31)、縦軸に時間(0~24まで)があるシートです。日付と時間がマッチしたところのセルを緑色に塗りつぶしたいと思います(スケジュール表を作成中です)。VBA初心者ですが、記述等教えていただきたいと思います。よろしくお願いします。

  • ブックを開くマクロ

    データ管理というファイルの中にある データー(1)のファイルの中の データ表(1)というエクセルbookのあるマクロを実行すると 同じくデータ管理というファイルの中にある データー(2)のファイルの中の データ表(2)というbookを開き そのbookのsheet1のA1:B5をコピーして データ表(1)エクセルbookのsheet1のA1:B5に貼り付ける・・・ というVBAを組む事は出来ますでしょうか? 分かりにくくてすいません

  • 【VBA】マクロについて

    【VBA】マクロについて質問です。 マクロで複数のシートの特定のセル(A5(日付)、A7(社名)、B3(担当者)など)を別ブックのひとつのシートにまとめて、 日付 社名 担当者 シート1 A5 A7 B3 シート2 A5 A7 B3 シート3 A5 A7 B3 のように下へ下へ積み上げていくにはどうゆうマクロを組めばいいでしょうか。 同じ作業を複数のファイルで行わなければいけないため、マクロを組みたいのですが、よくわかりません>< ファイルによってシートの数が違うので、それにも対応すると有難いです。 どうぞよろしくお願いいたします。

  • エクセルについて

    エクセルについて質問があります。 シート1のカレンダーの表に、シート2-7のHのセルに日付を記入した際、シート2-7のDセルの内容を反映させたいのですがどの関数を使えば反映させることができるか教えてください。シート2-7の表にはセルを結合させた部分がいくつかあります。どうぞよろしくお願いします。

  • 【Excel VBA】別シートへの反映方法

    こんばんは。 現在月間&日ごとのスケジュール表をVBAで作成しています。 そこで質問です。 Sheet1のA列に日付、B列に予定、C列に人の名前 があります。 Sheet1のC列の人の名前を各日付ごとの シート(シート名は1日、2日、3日・・・)のセル「E5」へ 反映させたいのですが、どうしても分かりません。 分かり難い質問で、大変申し訳ありませんが、アドバイスよろしくお願いします。

  • エクセルマクロを教えてください

    エクセル2003を使用しています。ブックに1シートあります。シート名は「C3」セルに入力してある日付にしますが、シート上の表示形式は「平成20年1月」となっているところをシート名は「08-01」にします。その後シートを11枚コピーし、それぞれのシートの「C3」セルに年月を入力し、シート名を「08-02」「08-03」・・・「08-12」としたいのですが、うまくいきません。 マクロに詳しい方のご指導をお願いいたします。

専門家に質問してみよう