Excel VBA質問箱 IV

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

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


5018 / 13644 ツリー ←次へ | 前へ→

【53051】エクセルデータをワードで表示するマクロ kan 07/12/12(水) 22:29 質問[未読]
【53063】Re:エクセルデータをワードで表示するマクロ Jaka 07/12/13(木) 12:05 発言[未読]
【53067】Re:エクセルデータをワードで表示するマクロ ちくたく 07/12/13(木) 15:55 回答[未読]

【53051】エクセルデータをワードで表示するマクロ
質問  kan  - 07/12/12(水) 22:29 -

引用なし
パスワード
   こんばんば。
煮詰まっているので投稿させていただきました。

下記のような表があります。

氏名    年齢  電話番号
佐藤美和子 28   011−111−1111
武本健二  56   090−999−9999

A列には氏名、B列には年齢、C列には電話番号、
実際にはM列まで800件ほどの個人情報が入っています。

これらをワードで表示させるマクロを考えています。
ただ、個人個人で表を分けたいのです。

ワードでは・・・

1ページ目
氏名    佐藤美和子
年齢    28
電話番号  011−111-1111

2ページ目 
氏名    武本健二
年齢    56 
電話番号  090-9999−9999

さらに行と列が入れ替わった状態の表で表示したいのです。


エクセルのデータをコピーして
開いたワードファイルに貼り付けるという方法は見つけられたものの、
行と列を入れ替えることや個人個人のデータにすることができません。

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

【53063】Re:エクセルデータをワードで表示するマ...
発言  Jaka  - 07/12/13(木) 12:05 -

引用なし
パスワード
   1ページ目とか2ページ目とかは解りません。
とりあえず、メモ帳に出力してみました。
・String * 5
だと、半角スペースになるので、位置がうまく合いません。
適当に修正してください。

Sub monmon()
Dim Wrt() As String
Dim Ht1 As String * 5, Ht2 As String * 5, Ht3 As String * 5
Dim St1 As String * 10
Dim St2 As String * 5
Dim St3 As String * 15
LSet Ht1 = Range("A1").Value
LSet Ht2 = Range("B1").Value
LSet Ht3 = Range("C1").Value

EndR = Range("A65536").End(xlUp).Row
'ReDim Wrt(1 To EndR)

FNo = FreeFile
ファイル名 = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\○○.txt"
Open ファイル名 For Output As #FNo
For i = 2 To EndR
  LSet St1 = Cells(i, 1).Value
  Print #FNo, Ht1 & St1
  LSet St2 = Cells(i, 2).Value
  Print #FNo, Ht2 & St2
  LSet St3 = Cells(i, 3).Value
  Print #FNo, Ht3 & St3
Next
Close #FNo
End Sub

【53067】Re:エクセルデータをワードで表示するマ...
回答  ちくたく E-MAIL  - 07/12/13(木) 15:55 -

引用なし
パスワード
   kanさん
こんにちは。

行と列の入れ替えは、データ全部を一度配列に取り込んで、Transposeなり、
新しい、シートをつくってそこに転記なりすればよいと思います。
ワードに貼るのはわかっているということですが、
一応、下にかいときますね。

10回の繰り返しにしてますが、このコードですと、
先に10ページ用意しとく必要があります。

Sub ワードに貼り付け()
  Dim i As Integer
  Dim exF As String, wdF As String
  Dim cpR As String
  
  For i = 1 To 10
    
    exF = "test.xls"  'エクセルファイルの名前
    wdF = "test.doc"  'ワードファイルの名前
    cpR = "A" & i & ":C" & i  'コピーする箇所

    Workbooks(exF).Activate 'まず、エクセルからコピー
    Range(cpR).Copy
    
    Documents(wdF).Activate 'ワードにペースト
    Word.Selection.Paste
    
    Word.Selection.GoToNext wdGoToPage 'ちょっと強引に次のページに移動。
  Next i
End Sub

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