• ベストアンサー

こんなことマクロで出来ますか

普段は簡単なマクロしか使ったことありませんが以下のようなことって出来るのでしょうか? まず、 2つのファイルがあります。<A・B> <A>は入力用として(データ)や(雛型)で入力した情報が<B>に閲覧用としてリンクされています。 <A>の(データ)に開催会場のデータ(札幌、東京、大阪、福岡)を入力すると <B>に列ごとにリンクされます。 <B>:A1 札幌 B1 東京 C1 大阪 D1 福岡 マクロボタンをクリックすると <A>の(雛型)を新しいブックにコピーして各開催会場ごとのファイル名がつきます。<C>:札幌~<F>:福岡 <C>:札幌で入力したデータが<B>のA列へ <D>:東京のデータは<B>のB列へ   :   : それぞれ会場ごとのファイルが<B>の列ごとにリンクします。 このようにセルに入力したものがファイル名となって新しいブックを作り、そのデータを別のファイルの列ごとにリンクする…なんてことは出来ますか?

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

  • ベストアンサー
  • sacoman
  • ベストアンサー率56% (33/58)
回答No.2

マクロで可能な範囲だと思います。 色々な方法が考えられますが、以下にちょっとしたヒントをかいておきます。 ※開催地のシート名をつけて別途保存する手順としては、 以下のとおり。状況に合わせて、ファイル名に保存するパス込みで記述しておくといいですね。また、新規雛形のシートをコピーしたときのシート名にも注意です。シート名を開催地の文字列に変更する際に、元のシート名を変数なりに取得してシート名変更対象を間違えないようにすることも必要です。Activesheetオブジェクトをうまく使うのがいいかもしれません。 (1)変数(ここではkaisai)を設定して変数に、 開催地の文字列をセットし、シート名対象のシート名に kaisaiにセットされた値をセットする。   Dim kaisai As String kaisai = Range("開催地入力セル番地").Value Sheets("変更対象シート名").Name = kaisai (2)開催地名に変更したシートを新規ブックとして移動し、 ファイル名(変数kaisaiの値)をつけて保存。   Sheets(kaisai).Move   ActiveWorkbook.SaveAs Filename:="kaisai" & ".xls" ※それぞれ保存したブックにリンクを張る方法は、変数kaisaiに開催地の文字列がセットされている値を再利用し、リンクを張りたいセルにちょくせつ参照式を入力するマクロを作ってやればいいと思います。以下のような感じでしょうか・・・。    Range("参照色入力セル").Value="[" & kaisai & "]" & kaisai & "'リンク先セル番地" あとは、ファイルを上書き保存し、ファイルを閉じるコードを記述してOK。 細かいVBAに関することは参考URLで質問しても詳しく答えてもらえると思いますよ。OFFICEユーザーにはお勧めのサイトです。

参考URL:
http://www.moug.net/
dennde
質問者

お礼

ありがとうございます。 む、むずかしそうですね。 VBAが把握できていないので困難になりそうです。 でも出来ないことじゃなさそうなので頑張ってみます。 参考URLをみて週末によ~く勉強してみます。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

もう#2sakomanさんの答えが出ているようで、その後から言うのもおかしいと考える方及びdenndeさんにはすみません。読む方が判り易いようにと思いますので下記u-yの疑問をよろしく。 ブックA-データ入力項目部+雛型部(多分入力項目部と      ほぼ同じ。+コマンドボタン      入力する場所は、会場別にセルが別ですか?      (u)。      会場が別でも多分同じセルに同じ項目は入力する      のですよね?(v)各行に項目見だしがあり、      対応する入力行(セル)があるような。 ブックB-会場別情報の集約版ですか?(w)      会場別情報が列ごとに記録されているのですね。      A列-札幌、B列-東京、・・・      C以下のブックのほかにBがある理由が伝わらない。 ブックC、D以後      Cは札幌、Dは東京、Eは大阪、Fは福岡ですね?      札幌で次回開催はないのですか。ありそう。あればそのときは      ブックGに記録するのですか。(x)      ブックC,D、E、Fの項目内容は基本的にAの雛     型をコピーしたものですか。?(y) 私見ではデータベースをBとE以下ブックに分けるのでなく、 データ記録は1ブックのあるシートに決め、「1催し」1行毎に記録して、見たいときに決まったフォームや専用シートに引っ張ってきて表示する方式が多い(簡単になる)のでは。SQLが使えるデータベース記録方式やMSアクセスなどからの類推です。記録単位は列方向に流さないで、行方向に流すのが主流のように思いますが?

dennde
質問者

補足

週末にかかってしまい返事が遅くなりました。すみません。(自宅にはPCがないもので…) まず質問に対してですが ブックA-データ入力項目部+雛型部(多分入力項目部と ほぼ同じ。+コマンドボタン 入力する場所は、会場別にセルが別ですか? (u)。 ―そうです。日にちと会場一覧のようなものを入力するとブックBの会場別情報に列ごとに会場名がはいるようにリンクされています。       会場が別でも多分同じセルに同じ項目は入力する のですよね?(v) 各行に項目見だしがあり、対応する入力行(セル)があるような。 ―ブックAの雛型を使用しますので会場ごとの入力は全て同じセルに数値のみになります。 ブックB-会場別情報の集約版ですか?(w) 会場別情報が列ごとに記録されているのですね。 A列-札幌、B列-東京、・・・ C以下のブックのほかにBがある理由が伝わらない。 ―全体の売上を1枚で見たいので各ブック(C以下)の各商品の合計を1枚にした集約版ということです。 ブックC、D以後 Cは札幌、Dは東京、Eは大阪、Fは福岡ですね? 札幌で次回開催はないのですか。ありそう。あればそのときは ブックGに記録するのですか。(x) ―説明が全然足りませんでしたね。例えばコンサートツアーがあったとして、ツアーで販売しているグッズ等の売上管理をしたいのです。 ですからツアー全体の日程予定が開催ということになり日付で1列としたものです。 次回札幌があったとしても別の日ですので他の列に入力されるようになっています。 ブックC,D、E、Fの項目内容は基本的にAの雛型をコピーしたものですか。?(y) ―そうです。雛型なので丸っきりのコピーです。 雛型には出品する一覧があり何個売れたか数値のみ入力するようになっています。 他に足りなくなった商品の発注や営業に配布したりする持出管理などの情報がすべて数値のみ入力すればブックBに在庫や売上の合計されたものが会場ごとにわかる一覧というものを作りたいのです。 一回のツアーつき、20~30くらいで、商品数も150~200ほどの種類があります。 ツアーごとに開催地や商品も違い、ブックAのデータ入力で開催予定の情報やツアーで出品する商品のリストを入力すると、雛型に出品される商品が行に出され、マクロを押すと会場分だけのシートが作成されブックBの列ごとにデータが反映されるか?ということです。 見る側は先にブックBをみて会場ごとの詳細を見たい人がC以下の会場ブックを見るという形になります。

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

できるできないで言えば、「できる」だと思います。 この手のものは、「マクロの記録を開始して、一通りの作業を行なう。記録したマクロをVBEditorで開いて、余分なコードの削除、決め打ちになっている部分を変数で汎用化、といったブラシアップを行う」というアプローチで、それなりのものが出来ます。 もちろん、VBAについての知識が要求されますので、どうしても手が出ないであれば、分かる友人に頼んで作ってもらうのが、手っ取り早いでしょう。 晩飯1回分くらいかな。

dennde
質問者

お礼

ありがとうございます。 やはりVBAですか… マクロは使うようになって日は浅いので、まだVBAが把握できてないんです。 なんとな~くはわかるんですが、難しいです。。。 周りには、マクロを使っている友人がいないのでもう少し自分で頑張ってみます。

関連するQ&A

  • マクロについて

    エクセルのマクロについて質問です。 シート1にデータが入っており A列に入っているデータを営業所ごとにまとめて抽出し 雛形シートをコーピーしてデータを貼り付け、シート名をA列の営業所名にしたいのですが 可能でしょうか? 例えば  A列       B列  C列   東京営業所  30個  500円  大阪営業所  10個  200円  東京営業所  5個   100円 ↓↓↓  A列       B列  C列   東京営業所  30個  500円  東京営業所  5個   100円   シート名 東京営業所 ---------------------------------------  A列       B列  C列   大阪営業所  10個  200円   シート名 大阪営業所 毎回手作業で、どなたか教えていただけますと助かります。

  • エクセルでブックの分割をするマクロ?

    シート2枚を持つ大きなブックがあります。 1枚目2枚目とも、A列には国名、B列に地名、C列目以降に各種データ(1枚目と2枚目は別のデータ)があります。 全部で国名は約60、地名は1000程度です。 たとえば A列 B列 C列 D列 日本 東京 1111 1234 日本 札幌 2222 2345 日本 函館 1515 0055 韓国 ソウル 0000 0000 韓国 プサン 3322 2323 のような感じです。 これを国別に別々のブック(それぞれ2枚のシートがある)に切り分けるマクロを教えてください。よろしくお願いします。

  • マクロ・VBAを使って同じファイル内にある・・・

    同じファイル内にある複数のExcelブックに 一挙に同一作業を行うことは可能でしょうか。 たとえば、今マイドキュメントの「売上」という ファイルに神奈川売上、東京売上、埼玉売上・・・というブックがあるとします。全てのファイルのC列にA*Bという計算式をテーブルの一番下の行まで入力したいとします。こういったことは、可能なのでしょうか?

  • エクセルのマクロについて質問です

    下記方法(条件)でリンク(ハイパーリンクとは違う)の再設定を行いたいと思います。 1.開いているファイルが別の開いていないファイルとリンクをしている。 2.リンクしているファイルは別の2つ以上のファイルが存在する。 3.2つ以上のリンクしているファイルを新しい別のファイルとリンクしたい。 4.Aブック(開いているファイル) 5.B~Dブック(リンクしているファイル) 6.1~3ブック(新しくリンクをしたいファイル) 7.Bブック→1ブック Cブック→2ブック Dブック→3ブック といった具合でリンクの再設定をマクロで行いたいのですがどなたか教えてください。

  • Excelマクロ。複数ファイルから特定セルの抽出

    Excel2003を使用しています。 あらかじめ特定のセルにデータを入力してそのデータを元に計算。 それらのBookは日付ごとに1つのBookとなっています。 今、各Book(ファイル?)から計算されたセルのデータを抽出し、 新しいBookにそれらのデータを順に並べたい。 具体的には A列:Book名(日付) B列:各々のBookの特定のセル C列:以下、同様 ・ ・ ということを考えています。 いろいろ調べてみると、マクロないしVBAを用いるとよさそうだ、 ということは分かったのですが、知識が乏しく難航しています。 なにか参考になるページないし、やり方とうアドバイスいただけますでしょうか。

  • エクセルのマクロでセルの内容によって行を挿入

    エクセルのマクロでこんなことは出来るのでしょうか。   A    B 1 東京  1 2 大阪  3 3 札幌  2 4 福岡  1 5 横浜  2 上記のような表をマクロの処理で下記のように書き換えることは出来るでしょうか。   A    B 1 東京  1 2 大阪  1 3 大阪  1 4 大阪  1 5 札幌  1 6 札幌  1 7 福岡  1 8 横浜  1 9 横浜  1 B列に入ってる数字の分だけ行を作りたいのです。 (B列の数字マイナス1行を挿入する形になります) 書き換えがややこしければ、別の場所に作り直してもかまわないので お願いします。

  • エクセルのマクロ

    早速ですが (1)顧客一覧(ブック)があり (2)顧客データ(ブック)が各々あります。 (1)顧客一覧から各顧客データにハイパーリンクをして開けるようにしているのですがこれを 検索欄を作り数字を入れたらリンク先に飛ぶようにしたいのですがどうすればいいのか教えてください。 (出来れば式の意味を教えてもらえると助かります) コード 顧客名 100  A 101  B 102  C 検索欄を作り(たとえばA1セル)100と入力すると Aのブックを開く。 こんな感じです。

  • エクセルのマクロが7回目でエラーになる。シートコピーでエラー発生。

    エクセルマクロで【ファイルA】に【マクロ表示】を作成。 内容:【ファイルA】は4シート(シート名:【チャート】【ひな型】【データ】【メニュー】)。 (1)【メニュー】にあるリストから「地域A」を選択 (2)他のブックを開き「地域A」のデータをコピー、【データ】に貼り付け。20のブックからデータを貼り付ける。 (3)【チャート】【ひな型】には、グラフがある。 元のデータは【データ】にあるので、「地域A」のデータがコピーされた時点でグラフは出来る。 (4)【チャート】、【ひな型】をコピーする。 (5)【データ】で作表し、【ひな型(2)】【チャート(2)】に貼り付ける。 (6)【チャート(2)】、【ひな型(2)】を新しいブックに移動。 新しい名前【Book1】で保存。リンクを切り上書きする。 (7)【マクロ表示】は終了し、【メニュー】に戻る。 画面は【Book1】【ひな型(2)】で終わる。 (8)【Book1】を閉じる。 【ファイルA】【メニュー】から「地域B」を選択。【マクロ表示】を実行。 以上の手順で、【ファイルA】を閉じることなく、「地域A」「地域B」・・と選択して、【マクロ表示】を実行していくと、 7回目で(4)でエラーになってしまう。 Worksheets("ひな型").copy before:=worksheets(1)の行で。 エラーメッセージは「実行時エラー1004 WorksheetクラスのCopyメソッドが失敗」。 【ファイルA】のシートを右クリックでを見てみると、 「シートの移動またはコピー」の「移動先ブック名」が(新しいブック)、挿入先が空になっています。 通常、「移動先ブック名」は現在のブック名【ファイルA】、 挿入先【メニュー】【データ】【ひな型】【チャート】であると思うのですが。 シートのコピー回数に制限でもあるのでしょうか? マクロで回避が出来る方法があればお教え下さい。 次のリストを選択前に毎回【ファイルA】を閉じる以外無いのでしょうか? よろしく御指導下さい。

  • excel2000マクロ抽出方法

    2つのファイルがあります。ブック名A.XLS シート名 WORK              ブック名b.XLS シート名 SORT              ブック名A.XLS シート名 WORKに下記のデータが入っています。 AD 1300G A227550 000PA505(C列2行目) 200112(F列)200201(G列)200202(H列)200203(I列)200204(J列)200205(K列)→1行目固定データ AD 1300G A227550 000PA533(C列3行目)   ブック名b.XLS シート名 SORTに下記のデータが入っています。 AD 1300G A227550 000PA505(A列2行目)200112(E列)200201(F列)200202(G列)200203(H列)200204(I列)200205(J列) →1行目E列~J列のデータは都度変わっている AD 1300G A227550 000PA533(A列3行目)    データ抽出条件  ブック名A.XLS シート名 WORKの F列~K列の1行目の列データとブック名b.XLS シート名 SORTの  E列~J列の1行目の列データが同じで、ブック名A.XLS シート名 WORKのC列の2行目以降のコードと  ブック名b.XLS シート名 SORTのA列の2行目以降のコードが同じだったら  ブック名b.XLS シート名 WORKの E列~J列の同じ行にデータを入れる。違うときは、  ブック名b.XLS シート名 WORKのデータはそのままにする。 上記の条件を満たしたマクロの記述の仕方を教えてください。 以上よろしくお願いします。

  • Excel:以下のようなことを実現できますか?(入力規制関係)

    以下のようなことをしたいと思っています。 できる限り、もとあるデータを使って、シンプルにできる方法を探しています。 【Sheet1】 A列、B列、C列 北海道、登別、001 北海道、札幌、002 北海道、函館、004 東京、港区、101 東京、品川区、103 東京、練馬区、105 東京、足立区、110 東京、新宿区、102 大阪、大阪市、310 大阪、泉市、315 大阪、梅田、311 【Sheet2】 A列、B列、C列 北海道▽、札幌▽、002 →Sheet2では入力規制で、A列で「北海道」を選ぶと、B列では「登別」、「札幌」、「函館」のみがリストに表示されるようにしたい。また、B列を選ぶと、C列にはB列で選んだ都市の番号(Sheet1のC列の番号)が自動で表示させたい。 データの数は、1000以上あります。 このようなことはできますか? 宜しくお願いします。

専門家に質問してみよう