Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6321 / 13646 ツリー ←次へ | 前へ→

【45898】転記 かんち 07/1/17(水) 17:11 質問[未読]
【45899】Re:転記 りん 07/1/17(水) 17:28 発言[未読]
【45908】Re:転記 かんち 07/1/17(水) 18:50 質問[未読]
【45929】Re:転記 りん 07/1/18(木) 8:15 発言[未読]
【45943】Re:転記 Kein 07/1/18(木) 13:58 回答[未読]
【45944】Re:転記 Kein 07/1/18(木) 14:01 発言[未読]

【45898】転記
質問  かんち  - 07/1/17(水) 17:11 -

引用なし
パスワード
   下記の様な集計表を作っています。


【集計表.xls】
行    列                        
        1月    2月    3月    4月    5月    6月
12    りんご    100    350    350    350    350    350
14    みかん    150    150    150    150    150    150
15    ばなな    200    200    200    200    200    200
16    洋ナシ    250    250    250    250    250    250
18    パイン    300    300    300    300    300    300
20    マンゴ    350    350    350    350    350    350
34    パパイヤ    400    400    400    400    400    400
55    メロン    450    450    450    450    450    450
66    スイカ    500    500    500    500    500    500


【元ネタ.xls】(各月毎にファイルが別)
行    列                        
        1月    2月    3月    4月    5月    6月
2    りんご    100    350    350    350    350    350
3    みかん    150    150    150    150    150    150
4    ばなな    200    200    200    200    200    200
5    洋ナシ    250    250    250    250    250    250
6    パイン    300    300    300    300    300    300
7    マンゴ    350    350    350    350    350    350
8    パパイヤ    400    400    400    400    400    400
9    メロン    450    450    450    450    450    450
10    スイカ    500    500    500    500    500    500

現在は元ネタファイルを1月分〜6月分まで開いて集計表.xlsのシートに貼り付け
Indirect関数で値を参照させています。
この方法だと6回ファイルを開く必要があり、コピー→貼り付けを
繰り返す手間もあるので転記を簡単に出来る方法がないかと思っています。
よい知恵があれば、お知らせください。

【45899】Re:転記
発言  りん E-MAIL  - 07/1/17(水) 17:28 -

引用なし
パスワード
   かんち さん、こんにちわ。

>下記の様な集計表を作っています。
>【集計表.xls】
>行    列                        
>        1月    2月    3月    4月    5月    6月
>12    りんご    100    350    350    350    350    350
>14    みかん    150    150    150    150    150    150
>15    ばなな    200    200    200    200    200    200
>16    洋ナシ    250    250    250    250    250    250
>18    パイン    300    300    300    300    300    300
>20    マンゴ    350    350    350    350    350    350
>34    パパイヤ    400    400    400    400    400    400
>55    メロン    450    450    450    450    450    450
>66    スイカ    500    500    500    500    500    500

・月ごとのファイルの表の形式(集計表と同じに見える)
・集計表の行番号の法則性(行番号の飛び方に法則がないように見える)
・Indirect関数を使う理由(どんな数式?)
この3つがよくわからないのですが。

【45908】Re:転記
質問  かんち  - 07/1/17(水) 18:50 -

引用なし
パスワード
   1.転記する行が異なります。
2.この転記先集計表.xlsの行番号は固定です。
3.集計表.xlsの中に完成というシートと1月〜6月というシートをあらかじめ作ってあります。
そして元ネタ1月.xls1月〜元ネタ6月.xlsを開き、ペタペタと集計表.xlsの
各シートに貼り付けます。
完成シートには数式を入れています。

例)
=ROUND(INDIRECT(FO$221&"!"&(FO$222&FIXED($C59,0,TRUE)))/1000000,0)
★あらかじめ参照するシート名や行・列番号を入れています。
セルFO221にはシート名を入力
セルFO222には列番号を入力
セルC59には行番号を入力

【45929】Re:転記
発言  りん E-MAIL  - 07/1/18(木) 8:15 -

引用なし
パスワード
   かんち さん、おはようございます。
>そして元ネタ1月.xls1月〜元ネタ6月.xlsを開き、ペタペタと集計表.xlsの
>各シートに貼り付けます。
転記元と転記先と集計表は別物なのですね。

ツール→マクロ→新しいマクロの記録 を実行し、
各転記元ファイルの ブックを開く、コピペ、閉じる という一連の処理を記録し、画面のスクロールやセルの移動などの不要な部分を整理すれば、コピー元とコピー先が常に同じ場合は、次回からはその記録されたマクロを実行するだけで処理できるはずです。

【45943】Re:転記
回答  Kein  - 07/1/18(木) 13:58 -

引用なし
パスワード
   ま、値を引っ張るだけなら、リンクという方法もあります。
コードはこんな感じです。

Sub MyData_Link()
  Dim i As Integer, j As Integer
  Dim LkFm As String
  Dim RAry As Variant
 
  RAry = Array(12, 14, 15, 16, 18, 20, 34, 55, 66)
  For i = 1 To 6
   LkFm = "='" & ThisWorkbook.Path & _
   "\[元ネタ.xls]" & i & "月!'$B'
   For j = 2 to 10
     ThisWorkbook.Sheets(i & "月") _
     .Cells(RAry(j - 2), 2).Formula = LkFm & j
   Next j
   With ThisWorkbook.Sheets(i & "月").Range("B12:B66")
     .Value = .Value
   End With
  Next i
End Sub

【45944】Re:転記
発言  Kein  - 07/1/18(木) 14:01 -

引用なし
パスワード
   先のコードは、もちろん集計表.xlsの標準モジュールに入れて実行します。
なので リンク式を作っている LkFm = ・・・以外のところでは ThisWorkBook
への参照は不要です。

6321 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free