[[20070925162626]] 『別ファイルに表示させる』(初級者) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『別ファイルに表示させる』(初級者)

いつもお世話になります。
早速ですが実現させたい内容を具体的に記述します。

 book1に得意先別にファイルがあり、1個のファイルには月別のワークシートがあり、同じフォーマットのインボイスデータ-を保管しています。
 新しい月に作成する場合は、前月分をコピーし、必要事項再インプットし名前を変更し更新しています。
 別のファイルXには、月別のワークシートがあり、上記作成した各社のインボイスの主要項目を一覧表示させています。
 例えば9月度の各社別インボイスを作成したら自動的にファイルXの9月度集計表に表示させたい。最も簡単に実現できる方法を教えていただきたいのですが。

 具体例:(セル番号は仮定です)
 @book1の「A社10月度」のファイルを開き必要事項のインプットを終了しました。
 A上記@のセルA1の内容をファイルXのワークシート「10月度」のセルB2に全く同じ状態で表示させたい。(実際に転記する内容は5項目あります。)
 B続いてbook1の「B社10月度」のファイルを開き必要事項のインプットを終了しました。
 C上記BのセルA1の内容をファイルXのワークシート「10月度」のセルB3に全く同じ状態で表示させたい。
 このような作業を想定しています。
 ファイルXのワークシートの一覧は当然のごとく、会社別の一覧で、A列の番号により分類されています。
 以上ご教授宜しくお願いいたします。


 A社10月度 はブック名なのでしょうか?シート名なのでしょうか?
 Book1 がA社10月度とB社10月度の二つ存在する意味が分かりかねます。

 ブック名、シート名はよく分かっていませんが、
 何も考えず、書いてある通りの事だけを実行するには、具体例A、Cは
 A → [ファイルX.xls]10月度!B2=[Book1.xls]A社10月度!A1
 C → [ファイルX.xls]10月度!B3=[Book1.xls]B社10月度!A1
 となるでしょう。
 しかし、きっと求めている事と異なるのでしょうね!

 結局のところ、何をなさりたいのかが分かりません(^^ヾ
 表等を交えもう少し、具体的な説明が必要でしょう。

 (tomo)

TO:TOMOさん
 回答ありがとうございます。具体例を再度下記します。
 インボイスは下記のような様式で、会社別のファイルになっており、各ファイルは1月から12月までのワークシートを持つようにしています。
 (前月分をコピーし追加するように運用)
 下記インボイスを作成終了した段階で、自動的に下記の集計一覧表に転記させたい。
 A社が終了するとB社のインボイスを作成し、同様の処理をする。このようなことを繰り返したいのです。(12社有り)
 イメージとしては、インボイスのワークシートに集計一覧表の「月度欄」「NO欄」のインプット欄を設け、
 月度・NOをインプットすることで自動的に所定の月度集計一覧表のNO欄に所定内用を表示させたいと思っています。
 (既にインプットしたNOの重複使用の防止も必要)
 これらの内容を最も効率的に実現させたいのです。

 「インボイス様式の概要」
    A       B      C     D         E       F

 1  A社             発行日 2007/9/26	       集計一覧表NO 1
 2                                   月度 9
 3 		      Handbook No. C23047421239	
 4	
 5				
 6  Total	  Net	 Gross			
 7  CIF 	 Weight	 Weight	Volume	Cartons	Item
 8  (US$)	 (Kg)	(Kg)	(M3)	(PCS)
 9  22,976       812.00 	957.00 	1.64 	58 	1

 「集計一覧表」の概要
 これは一つのファイルで、月別のワークシートを保有しています。インボイスの月別の発行内容の一覧を表示します

 月度 9 のワークシート(下記はA社の内容が表示されている状態です)										
 1     A   B       C           D              E					
 2  NO 社名  DATE     handobookNO. Total 				
 3    1 A社  2007/9/26  C23047421239  22,976 
 4    2 
 5  3 
 6  4  

 このような記述で解かるでしょうか?
 別途回答いただいた内容についても確認したいと思います。


TO:TOTOさん

 [ファイルX.xls]10月度!B2=[Book1.xls]A社10月度!A1
 を使用してやってみました。

 この場合一覧表の各行は特定の社名(インボイス)しか対応できません。
 故に発行数が少ない場合は歯抜けのデータになり、編集が必要になります。
 (例:9月度N01−10の10社発行。10月度1,3,5,7,9の5社発行した場合、2,4,6,8,10行が歯抜けになります。)

 又、発行数が増加した場合は再度様式を準備する必要があります。
 インボイスに集計表の月度と、集計表の表示するNO(行)をインプットすれば、
 どの行にでも任意に表示できるようにはできないでしょうか。
 以上

どなたかご教授いただけないでしょうか。
 宜しくお願いいたします。

 >インボイスを作成終了した段階で、自動的に下記の集計一覧表に転記させたい。
 と
 >又、発行数が増加した場合は再度様式を準備する必要があります。
 >インボイスに集計表の月度と、集計表の表示するNO(行)をインプットすれば、
 >どの行にでも任意に表示できるようにはできないでしょうか。

 は、インボイスと集計一覧表とでデータの相互間を行なうと言う事でしょうか?
 それならばVBAでの処理になるかも?
 (じゅんじゅん)

 (初級者)さんのなさりたいことを実現しようとすると
 コードを書くスキルが必要になりますので
 最も簡単な方法でも、そう簡単にはいきません。

 例えば、
 1.「集計一覧表」にシートを一枚だけ用意し、そのシートにデータを蓄積する。
 2.「インボイス様式」に、集計一覧表に該当部分をコピペするだけで良いように
  データを引用した作業行を作る。
 3.データは「集計一覧表」の行の最後に追記するのみ。
   (「インボイス様式」から行を指定したり、
   何処の行にあるかを「インボイス様式」に反映させたりはしない。)
 4.転記を行う前に、「集計一覧表」を必ず開いておく。

 これらのことが受け入れられるのなら、マクロの記録で出来そうです。
 ちなみに、マクロの記録とは、↓の様な事です。
http://www.excel.studio-kazu.jp/lib/e4b/e4b.html

 (HANA)

 (じゅんじゅん)さん
 回答ありがとうございます。

 >インボイスと集計一覧表とでデータの相互間を行なうと言う事でしょうか?
 インボイス(複数のファイル)を作成した後、特定のデータを一覧表に転記するもので、一方通行です。
 転記した一覧表からインボイスにデータを送る必要はありません。

 (HANA)さん
 ご回答ありがとうございます。
 この内容でトライしたいと思います。
 小生のレベルで理解し難い内容を質問させてください。
 >1.「集計一覧表」にシートを一枚だけ用意し、そのシートにデータを蓄積する。
 データを蓄積するとは、インボイスで作成した作業行の内容を1つのインボイス終了後、都度集計表に設けたシートにコピペするということでしょうか。
 >3.データは「集計一覧表」の行の最後に追記するのみ。
 この意味がよくわかりません。教えてください。

 宜しくお願いいたします。


 >データを蓄積するとは、インボイスで作成した作業行の内容を1つのインボイス終了後、
 >都度集計表に設けたシートにコピペするということでしょうか。
 そう言うことですが
 この作業を記録を取って、ボタン一つで実行してしまおう
 と言うのが目的です。

 >>3.データは「集計一覧表」の行の最後に追記するのみ。
 >この意味がよくわかりません。教えてください。
 ご希望の事は
  「転記する行を指定し、その行に転記」
 ですが、これの意図するところは
 「インボイス様式」を見ただけで、「集計一覧表」の何処に情報が入っているのか知りたい
 と言う事かと思いまして・・・。

 記録のみでは出来ませんが、流れとして
  「インボイス様式」のデータをコピー →「集計一覧表」の最後の行に貼り付け
  → (この時点で、どの行に貼り付いたかは分かるので)→「インボイス様式」に戻って
  どの行に貼り付いたか 所定のセルに記入
 でしたら、そんなに壮大な事にはならずに済みそうです。
 が、私は「追記するところまでしか考えていません」と宣言をしたのです。(笑)

 まずは小さなサンプル(同ブック・シート間)の記録の取り方です。
 「様式」と言うシートから「一覧」と言うシートにデータを転記します。

 「様式」シートの1行目を作業行として使用します。
 御提示の1行目は、3行目から始まります。

 様式	[A]	[B]	[C]	[D]	[E]	[F]
[1]	A社	2007/9/26	C23047421239	22,976		
[2]						
[3]	A社	発行日	2007/9/26			
[4]	月度	9				
[5]	Handbook	No.	C23047421239			
[6]						
[7]						
[8]	Total	Net	Gross			
[9]	CIF	Weight	Weight	Volume	Cartons	Item
[10]	(US$)	(Kg)	(Kg)	(M3)	(PCS)	
[11]	22,976	812	957	1.64	58	1
 A1 =A3
 B1 =C3
 C1 =C5
 D1 =A11
 ここは「一覧」シートに貼り付けたい並びになるように引用してください。

 「一覧」シートは御提示の表から、レイアウトの変更はありません。
 一覧	[A]	[B]	[C]	[D]	[E]
[1]	NO	社名	DATE	handobookNO.	Total
[2]	1	A社	2007/9/26	C23047421239	22,976
[3]	2				
[4]	3				
[5]	4				

 記録は、「様式」シートが表示されている状態から始めます。
  1.記録開始
  2.A1:D1選択
  3.コピー
  4.「一覧」シート選択
  5.B1セル選択
  6.Ctrl + ↓(下矢印)
  7.相対参照ボタンを押す
  8.↓(下矢印 一つ下のセルに移動)
  9.そのまま貼り付け
 10.もう一度上から、値貼り付け
 11.記録終了

 ☆相対参照ボタン は、記録終了ボタン(■)の隣にあるボタンの事です。
 ☆値貼り付け は、右クリック→形式を選択して貼り付け→値 で行ってください。

 ★相対参照ボタンは、一度押すと もう一度押すまで解除されませんので
  次に記録をとる際はお気をつけ下さい。

 このマクロを実行すると、
 その時表示されているシートのA1:D1の値を
 「一覧」シートのB列の最終行に貼り付けます。

 御願いが二つあります。
  ●コメント記入の際は その都度ご署名を御願いします。
  ●半角片仮名の使用をお控え下さい。
 宜しく御願いします。

 (HANA)

 (HANA)さん

 長文のご回答大変感謝申し上げます。見ただけで私にもできそうです。
 本日トライいたします。結果また報告させていただきます。
 ありがとうございました。

 (初級者)


 いつの間にやら、レスが進行しているようで・・・ (^^ヾ
 暇をみて、ほ〜〜〜んの少しコードを考えていたのですが、まだまだ、謎がいっぱいあります。
 >発行数が増加
 >表示するNO(行)をインプットすれば、どの行にでも任意に表示  等々
 いちいち細かなやり取りを続けると長いレスになりそうなので、
 まずは、HANA さんご提示の自動マクロで頑張って下さい。
 VBAの勉強にもなると思います。
 つまずいたら、コードを提示の上、エラー行とその内容も提示していただくと、
 アドバイスが付き易くなりますよ!
 (tomo)

 私が提示した手順は、非常に不親切です。(笑)
 1.「一覧」シートに値を貼り付けた段階で終了します。
   おそらく実際にお使いになるには、「最初のブックに戻って終了」
   となっている方が良いと思います。
  2.上書き保存すらしていません。
   希望するなら記録手順に追加するだけですが、その他「コピーモードのまま」だとか
   「範囲を選択したまま」だとか いろいろ有りますので
   本番用に記録をとる際は、もう少し丁寧にするのが良いと思います。

 ブック間で記録をとって、それを問題なく実行出来るような物が出来れば
 そこから少しコードを変更して、「最初のブックに戻って終了」やその上で書いた
 「どの行に貼り付いたか 所定のセルに記入」したりする方法を考えて行きましょう。

 今回は、基本的に値の転記 で済みますので
 想定外の行動をとる人が、誰でも使って問題なく使える物
 と言うと、作るのは大変になりますが、(エラー処理が・・・)
 コードを作ったときや、その他それをするためのルールに則って行動をしたときに、
 希望する結果を得るコード と言うのはそんなに難しくなく作れると思いますよ。
 こちらでは、どんなルールが有るのか や、どんなルールに出来るのか は
 分かりませんが、(初級者)さんはそれをご存じなのですから。
 ちなみに、スキルの違いは そのルールをいかに減らせるか
 と言う所に現れてくると思います。

 (HANA)

 (HANA)さん
 上記内容トライしました。

 学習マクロの疑問点
  5.B1セル選択
  6.Ctrl + ↓(下矢印) →この意味とセルの動作(1個下のセルに移動する場合と、欄外に移動する場合有り。(パソコンの問題?))
  7.相対参照ボタンを押す
  8.↓(下矢印 一つ下のセルに移動)→B3セルに移動?若しくはB2セルに移動?

 学習マクロの結果は下記で、動作上の問題を下記します。一部実態に合わせてセル番号が異なりますのでその説明は→以降に記入しています。
 問題点・確認したい点
 1.1回目は集計表のC2:B2に記入されたが、C2にのみ異なる内容が転記され、他は空白。2回目実行すると正常に転記された。
 2.3回目以降は、C30:G30に転記される。転記内容は正常。
 3.1つのインボイスがの作業が終了し、次のインボイス(ファイル)を記入した場合、マクロを実行すると1つ目と同じところに転記される。この解決方法を教えてください。
 4.他のインボイスでマクロ実行すると元のインボイス(SU州.XLS)に戻るが、アクティブになる場所が異なる。これはなぜでしょうか?
 5.ブックに戻すべく"BOE(SU州).xls"→"INVOICE(ブック名)"にすると動作しません。実行時エラー`9`:インデックスが有効範囲にありません。
 ちなみにマクロの実行は、様式に釦を設け記入終了した時点で実行しています。

    Range("N15:R15").Select →様式の作業列(印刷外に設定)
    Selection.Copy
    Windows("出口報関情况一欄表.xls").Activate
    Range("C4:C5").Select →一覧表の社名欄(HANAさんのB1に相当。
    Selection.End(xlDown).Select
    ActiveCell.Offset(1, 0).Range("A1").Select
    ActiveSheet.Paste
    ActiveCell.Select
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    Windows("BOE(SU州).xls").Activate
    ActiveCell.Offset(-6, -1).Range("A1").Select
End Sub

 (初級者)


 はぁ・・・なんででしょうねぇ。

 「出口報関情况一欄表」と言うブックと
 「BOE(SU州)」と言うブックを作成し
 BOE(SU州)ブックのN15:R15に適当に数字を入力しますよね。
 載せてもらったマクロを実行すると、一覧表のC4以降の最終列に
 N15:R15の値がきちんと貼り付きますが・・・。

 まずは、私が呈示した方法でシートとデータを作り
 上手く行く物か、行かない物か試してみてください。

 ちなみに、
 >Ctrl + ↓(下矢印)
 この操作は、アクティブセルの列で 連続して入力がある最終行まで移動します。
 たとえば、入力がないように見えても 入力がある場合は、そこへ移動します。
   「入力が無い様に見えても入力がある場合」というのは例えば、
   IF関数で「""」が返されていた場合 等があります。
   値貼り付けをすると、「""」は見えませんが、実際は「""」と言うデータが入っています。(これは「N15:R15」しかコピーしていないので考えにくいですが。)
 また、続いて入力があっても 一つセルが空いていると、その上までの移動になります。

 新しいシートのA1から適当に行方向へデータを入力し
 「Ctrl + ↓」を実行してみてください。
 5行目までしか入力が無かった場合は5行目へ
 7行目まで入力が有った場合は7行目へ アクティブセルが移動します。
 A5迄入力し、A6をあけて、A7に入力をした場合は、A5へ移動します。

 > 7.相対参照ボタンを押す
 > 8.↓(下矢印 一つ下のセルに移動)
 これは、「アクティブセルから一行下へ移動する」と言う操作です。
 上の「Ctrl + ↓」を行った結果 アクティブセルがA5にあればA6に移動し
 A7にあればA8へ移動します。

 この2つの操作に疑問があれば ここだけを記録に取って
 A列のデータ入力範囲を変えて 色々実行してみてください。
 「連続して入力があるセルの一行下のセル」がアクティブになります。

 御質問に関しては、同じデータ(ブックとシート)をつかって、
 同じコードの実行結果ですかね?
 そうであれば、同じコードを実行する限り、同じ動きにならないとおかしいですが。
(もちろん、相対参照で記録した部分があるので、転記先は一行ずつずれていきます。)

 >Range("C4:C5").Select →一覧表の社名欄(HANAさんのB1に相当。
 ひとまず、セルを結合している場合は上手く動きませんので解除して
 もう一度記録を取り実行してみてください。
(なんだか、結合セルの問題な気がしてきましたが・・・。)

 (HANA)


(HANA)さん

 集計表の結合セルを解除し、("C4:C5")を("C5")にするだけで全て解決しました。ありがとうございました。
 >まずは、私が呈示した方法でシートとデータを作り
 >上手く行く物か、行かない物か試してみてください。
 私が回答に基づいて作成した上記内容は、基本的に忠実に提示いただいた内容で作成したつもりですgaが。

 5.ブックに戻すべく"BOE(SU州).xls"→"INVOICE(ブック名)"にすると動作しません。実行時エラー`9`:インデックスが有効範囲にありません。

 最後に戻るところをブック?(様式が入っているホルダー)が開いたところへ戻すことは可能でしょうか?様式の入ったホルダーの名前が「INVOICE」となっています。

 この内容で実用できそうですので、早速実用を開始したいと思います。大変ありがとうございました。

 (初級者)


 >基本的に忠実に提示いただいた内容で作成したつもりですが。
 結果としては
  私が呈示した方法では、セルの結合はしていないが
  (初級者)さんが作成したものでは、セルの結合をしていたため
  思い通りに動かなかった。
 と言うことですよね?
 まず最初に、私の呈示した方法をやって 動くことを確認して頂いていれば
 今回上手く行かなかったのは、「記録手順が違ったのではない」
 と言う事が言えると思います。
 また、「上手く動きません」と仰るときも
 「そう言えば、セルを結合したな・・・」
 なんて引っかかりも出てきたかもしれません。

 ・・・とまぁ、こんな事を書くためにレスをするのではなく・・・
 セルの結合を解除したことで、1〜4の問題は解決したのですかね?
 また、5の御質問に関して
 >最後に戻るところをブック?(様式が入っているホルダー)が開いたところへ
 >戻すことは可能でしょうか?
 これはどの様なことを仰っているのかよく分かりません。
 「転記を始めたブックに戻る」と言う事なら分かりますが、違うのですよね?
 「転記を始めたブックを閉じて、出口報関情况一欄表 を最小化する」と言う事ですかね?

 御提示して頂いた記録を見る限り、「BOE(SU州)」に戻って
 .Offset(-6, -1) となっていますが、これは
 ●ある特定のセルを選びたい と言う事ですか?それとも
 ●アクティブセルから、指定行列移動したセルを選びたい と言う事ですか?
 その前に、必ず同じ場所をアクティブにするので 結果としては
 常に同じセルが選択されて終了すると思いますが
 もし前者であれば、相対参照ボタンを押して、相対参照を解除してから
 特定のセルを選んでおくのが良いと思いますよ。
 後で見たときに、分かりやすいですから。

 (HANA)

 (HANA)さん
 エクセルでセル結合は往々にして問題を引き起こすことを改めて認識しました。ありがとうございました。
 最後に戻るセルは特に意味はありません。戻りたい場所は、各インボイス様式(ブック)を格納している
 ホルダー(名称:INVOICE)が開いて全てのブックが見える状態のところに戻りたいのですが。このような指定は可能でしょうか?
 本日から早速実用できそうですので、爽快な気分です。ありがとうございました。
 (初級者)


 相変わらず、どの状態で終わればよいのかよく分かっていませんが
 例えば、デスクトップに
 1.INVOICEと言うフォルダが開いている(且つ 最小化されていない)
 2.エクセルの2つのブックが開いている
 この状態で、2つのブックを最小化すれば
 1のフォルダが見えるようになりますが
 そう言うことでは駄目なのですかね?

 ・開いていないフォルダを開く
 ・特定のフォルダをアクティブにする
 等と言う方法が、有るのかもしれませんが 私には分かりません。

 以下、ブックを最小化して終了するための手順です。
 概要のみですので、その他の手順は、先の方法に倣って下さい。
 「BOE(SU州)」のセル情報をコピーする。
  ★このブックを最小化する。
 「出口報関情况一欄表」に貼り付ける。
  ★このブックを最小化する。
 <記録を終了するために>
  ★「BOE(SU州)」のブックを選択し、記録終了。

 出来たコードの内最後の「Windows("BOE(SU州).xls").Activate」
 を削除します。

 これで、二つのブックが最小化された状態で終わると思います。
 ちなみに、「Windows("BOE(SU州).xls").Activate」これは
 「このブックを選択する」と言う作業が記録された物です。
 このマクロは、いろいろなブックで使用すると思いますので
 できあがったコードを見た時に、「出口報関情况一欄表」以外の
 ブック名が存在するなら、コードを変更するのが良いと思います。

 (HANA)

 (HANA)さん

 最終報告します。下記のようにし、一覧表に転記した状態で終了としました。
 一番苦労したのは、C7が空白であると学習マクロもできないこと。仮に記入した状態でマクロができても、C7を消去した状態で実用すると動作しないことでした。C7にインプットした状態で隠し行にし、C8から実際のインプットをするようにしました。
 初級者はこのような些細なことにも苦労したというご報告です。
 早速実用を開始しました。 大変感謝申し上げます。

    ActiveCell.Offset(10, -2).Range("A1").Select
    Range("N15:R15").Select
    Selection.Copy
    Windows("出口報関情况一欄表.xls").Activate
    Range("C6").Select
    Selection.End(xlDown).Select
    ActiveCell.Offset(1, 0).Range("A1").Select
    ActiveSheet.Paste
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    ActiveCell.Select
 (初級者)

 C7は、どの様な状態であるのが理想なのですか?
 以下の行が結合されていない場合で
 【既に1行目が入力されているのなら】
 C6:C7は結合した状態でも、
 C8を選択しCtrl+↓ する事で最終行まで移動出来ると思いますよ?
 ・・・現在この状態なのですかね?

 結合の解除が可能なら
 「入力した文字色を背景色と同じにする」とか
 「スペースを入力」とかすれば
 見えないけどそのセルには入力がある 事になりますが。

 状況がよく分かりませんので、ご参考に。

 (HANA)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.