- ベストアンサー
こんなことマクロで出来ますか
普段は簡単なマクロしか使ったことありませんが以下のようなことって出来るのでしょうか? まず、 2つのファイルがあります。<A・B> <A>は入力用として(データ)や(雛型)で入力した情報が<B>に閲覧用としてリンクされています。 <A>の(データ)に開催会場のデータ(札幌、東京、大阪、福岡)を入力すると <B>に列ごとにリンクされます。 <B>:A1 札幌 B1 東京 C1 大阪 D1 福岡 マクロボタンをクリックすると <A>の(雛型)を新しいブックにコピーして各開催会場ごとのファイル名がつきます。<C>:札幌~<F>:福岡 <C>:札幌で入力したデータが<B>のA列へ <D>:東京のデータは<B>のB列へ : : それぞれ会場ごとのファイルが<B>の列ごとにリンクします。 このようにセルに入力したものがファイル名となって新しいブックを作り、そのデータを別のファイルの列ごとにリンクする…なんてことは出来ますか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
マクロで可能な範囲だと思います。 色々な方法が考えられますが、以下にちょっとしたヒントをかいておきます。 ※開催地のシート名をつけて別途保存する手順としては、 以下のとおり。状況に合わせて、ファイル名に保存するパス込みで記述しておくといいですね。また、新規雛形のシートをコピーしたときのシート名にも注意です。シート名を開催地の文字列に変更する際に、元のシート名を変数なりに取得してシート名変更対象を間違えないようにすることも必要です。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/
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
もう#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アクセスなどからの類推です。記録単位は列方向に流さないで、行方向に流すのが主流のように思いますが?
補足
週末にかかってしまい返事が遅くなりました。すみません。(自宅には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)
できるできないで言えば、「できる」だと思います。 この手のものは、「マクロの記録を開始して、一通りの作業を行なう。記録したマクロをVBEditorで開いて、余分なコードの削除、決め打ちになっている部分を変数で汎用化、といったブラシアップを行う」というアプローチで、それなりのものが出来ます。 もちろん、VBAについての知識が要求されますので、どうしても手が出ないであれば、分かる友人に頼んで作ってもらうのが、手っ取り早いでしょう。 晩飯1回分くらいかな。
お礼
ありがとうございます。 やはりVBAですか… マクロは使うようになって日は浅いので、まだVBAが把握できてないんです。 なんとな~くはわかるんですが、難しいです。。。 周りには、マクロを使っている友人がいないのでもう少し自分で頑張ってみます。
お礼
ありがとうございます。 む、むずかしそうですね。 VBAが把握できていないので困難になりそうです。 でも出来ないことじゃなさそうなので頑張ってみます。 参考URLをみて週末によ~く勉強してみます。