• ベストアンサー

エクセルVBAにてワード文章をコピー

下記の様なエクセルの管理表のA1セルをダブルクリックすると ファイル選択画面に移行し選択したワード文章の1行目から順に B1、C1、D1・・・へコピーさせたいと考えています。 A B C D・・・  1______ 2______ 3______ ・ 以降、A2、A3・・・と同じ事を繰り返し別のワードファイルを コピーしていきたいです。ワードは最大20行程度となります。 いつも質問ばかりですみませんが、どうぞ宜しくお願い致します。

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

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

>エクセルVBAにてワード WordVBAが先(主)に来るものだろう。 WordVBAは市販解説本も少なく、WEB記事も十分でなく 学習に苦労する。 回答をコピペして終りと考えるなら,心得違いと思う。 面倒でも、手作業で処理するほうがずっと早い。 ーー Word側のデータが、ワードで言う「表」の形式だけなら、話ははやいが。こちらのデータ例を挙げない質問者が多いが、常識を働かせて意図を推定できない。 ーー たまたま、WEB記事に、関連しそうなものを見つけたので 下記をやってみた(ただし途中まで)。 https://www.relief.jp/docs/word-vba-control-excel-sheets.html https://www.relief.jp/docs/word-vba-get-text-each-line.html ーー これをさらに質問者の言うケースに合せるコードを 組む力がないなら、あきらめること。 == 質問は、Wordの(文字)文書の1行、1行の全文を、 エクセルシートの横方向の1セルに、順次セットしたい という風に意味を採った。(何のためにこんなことをするのかという 疑問は消せないが) すると縦方向に、行を改めるのは、どういうタイミングなのか 判らない。質問に書いてなくて不完全だろう。 データの中身実例が書いてなくて、意図を推し量りにくいのだ。 根本的に小生が誤解しているのか、ともおもうが。 Wordで行というと、それなりの術語なのを、意識してないのではとも思う。 ーー テストするには、Wordの文書に、何か文字文章の記事を貼り付ける。 エクセルのブックで、白紙の「Book2.xlsx」という ブックを作って保存して閉じておく。 C:\Users\XXX\Documents\Book2.xlsxの部分をそれに 合わせて下記コードを修正すること。 WordのVBEの標準モジュールに Sub test03() Dim pg As Page Dim rc As Rectangle Dim ln As Line Set xl = CreateObject("excel.application") '--- 'Sub WordVBAからExcelシートを操作する() xl.Visible = True xl.Workbooks.Open ("C:\Users\XXX\Documents\Book2.xlsx") '--- i = 2: C = 1 With ActiveWindow .View.Type = wdPrintView For Each pg In .ActivePane.Pages For Each rc In pg.Rectangles For Each ln In rc.Lines If rc.RectangleType = wdTextRectangle Then ' MsgBox ln.Range.Text '--‐エクセルシートで、縦方向に、別行に、文書の各行部分の文字列を表示するなら 'xl.worksheets("Sheet1").Cells(i, "a") = ln.Range.Text 'i = i + 1 '----列方向のセルに順次表示してゆく場合 xl.worksheets("Sheet1").Cells(i, C) = ln.Range.Text C = C + 1 '--- End If Next ln Next rc Next pg End With Set xl = Nothing End Sub == Wordで言う「行」は、日本人は簡単によく使うが、あいまいなもので、(=フォントサイズの変更、1ページの文字数設定変更、少々の字句追加などで、変わるもので)、VBAでは、ActivePane.Pagesのオブジェクト中の話になるようだ。 こういうのもエクセルVBAなどの常識では、類推・推察では、分らないと思う。だから難しい。

twiceexid
質問者

お礼

ご親切にありがとうございます 参考にさせて頂き追ってお返事させて頂きます 宜しくお願い致します。

関連するQ&A

  • ExcelからWordへのコピーについて

    Excelに縦一列に並んでいる品番リストをワードにカンマをいれながら横に並べる効率の良いコピー&ペーストの方法はありますか?イメージとしては以下のような感じです: Excelの表としては、 A001 B001 C001 D001 A002 B002 C002 D002 となっているものを、 A001, B001, C001, D001, A002, B002, C002, D002, というようにワードにコピーしたいのですが数千品番もあるので効率の良い番号が知りたいです。 よろしくお願いします。

  • Excelでの文章をWordへコピー

    会社で文章を数人で分担して入力したのですが、 Wordで入力した人、Excelで入力した人とまちまちで、 Wordに統一することになりました。 (Word、Excelとも2000です。) Excelで入力した物をWordに入力し直したいのですが、 Excelでの文章をコピーしてWordに貼り付けると、セルも一緒に くっついて来てしまいます。 (印刷する分には大丈夫なのかもしれませんが) Excel同士なら、「形式を選択して貼付」で「値のみ」にすれば セルや表などは反映されず、文字の分だけで済みますが、 Wordへ貼付した物も単純に文字だけを反映させるには どうすればいいのでしょうか? Excelの文章をコピーしてWordに貼付した時、Excelのセルを 引っ張って来ないようにするにはどうすればいいでしょうか? それともセルを引っ張って来ていても無視して大丈夫なのでしょうか? 最終的にはWordで表形式(行幅は不定)にしたいのですが…。 (Excelで入力していた人は罫線は使用せず、単純にセルにへのベタ打ちでした)

  • エクセル VBA で 教えてください!

    初めて質問させていただきます 初心者で困っています どなたかご教授よろしくお願いします! A列 ____B列______C列 B_____________________ 123 D______________________ 1 D______________________ 2 B______________________456 D______________________ 1 D______________________ 2 D______________________ 3 B______________________789 D______________________ 1 自分はB列にいます(表現が正しいかもわかりませんが) 同じ行で A列の内容が Bだったら隣のCセルの 内容をBセル(自分のいるセル)にコピー Dだったら上の内容(Bの時コピーした内容)をコピーし          行を下へ繰り返し A列のデータが空白まで繰り返す そうして B列を 埋めたいのですが よろしくお願いしたします!       

  • エクセル VBA ダブルクリックコピー

    A B C a1 a 1 b 2 c 3 B列とC列にデータが入っております。 ※行数は変動します。 ①A2にはB2&C2と数式を入力 ②A2を選択して十をダブルクリックでコピー しB列の値が入ってる最後の行までコピー。 ③ A2を選択して、ctr + shift → ↓コピー これをVBAで作成出来ますでしょうか?

  • Wordの表(セルの結合あり。)に貼り付けると、左右凸凹に貼り付く

    質問自体は、実際に見れば簡単なことなんですが、 言葉で書くので煩わしくなってしまいます。 Wordで作っている文章の中に表があります。 ただし、その表は単純な表ではなくて、 セルの分割や結合が行われています。 表自体は長方形をしていますが、セルの結合によって、行によりセルの数が違います。 詳しく書くと、 表は4列で、 列をエクセルのように假に左からA、B、C、Dとすると、 D列はどの行も結合されていません。 1行目は、A1・B1・C1が結合されている状態。 2行目と3行目は、A2とA3が結合されていて、 B2とC2、B3とC3が結合されている。 4・5・6行目は、A4・A5・A6が結合されていて、 B4・C4が結合、B5・B6が結合。 7行目は、(1行目と同じく)A7・B7・C7が結合。 (多分、表を作るときは分割も使ったと思いますが、 説明が面倒になるので、分割という言葉は使いませんでした。) さて、結合がされていないD列に、 エクセルのある列のデータを貼り付けたいと思います。 貼り付けたいデータをコピーして、 上記のWordの表のD列を選んで貼り付けます。 すると、意図に反して、うまくD列に貼り付きません。 どの行でも、必ず、左から2つめのセルに貼り付いてしまいます。 上記のようにセルの結合が行われているために、 左右に凸凹に貼り付いてしまいます。 例えば、 3列になっている2行目や3行目は、結合されている (左から)2つめのセル(B2・C2、B3・C3)に、 4列になっている5行目や6行目は2つめのセル(B列)に貼り付いてしまいます。 このように、行のセルの数にしたがって凸凹に貼りつくのではなく、 行のセルの数にかかわらず縦一直線に貼り付けたいのですが、 どうすればよいでしょうか。 Wordは2000

  • 【VBA】フォルダ内の複数Excelのセルをコピー

    お世話になります。 初級者ですが、Excel 2002のVBAについてご質問をさせて頂きます。 【概要】  あるフォルダ内にある複数のExcelファイルの、特定のセルを  1つのExcelファイルに集約します。 【詳細】  1.あるフォルダ内に複数のExcelファイルがあります。Excelファイルの数は、その日によって   ことなります。  2.選択画面から、この複数のExcelファイルを選択し、選択したExcelファイルの   それぞれの「A1セル」「B1セル」「C1セル」を、「1つのExcelファイル」に張り付けます。  3.「貼り付け」→「次の列へ移動」→「貼り付け」→「次の列へ移動」というサイクルを、   選択したExcelファイルの数だけ繰り返します。  4.集約したExcelファイルのイメージは以下のとおりです。        A列 B列 C列 D列 E列 F列 G列 H列  。。。。   1行目 A1 A1 A1 A1 A1 A1 A1 A1 。。。。   2行目 B1 B1 B1 B1 B1 B1 B1 B1 。。。。   3行目 C1 C1 C1 C1 C1 C1 C1 C1 。。。。 教えて!gooの回答で、「複数のシートを、1つのExcelファイルに集約する」ものがあったので、 それを参考にしようとしましたが、僕の実力ではできませんでした。 ご助言を頂けると非常に助かります。よろしくお願いします。

  • エクセル2007VBAで足し算がしたいです。

    エクセルで下記のような表を作成し、2行目の両端の2つのセルの数字を選択してA1に合計を求めたいのですが選択するセルを変える場合があるので困っています。 例1) ------------------------------------     A   B   C   D   E   F 1    x 2       10  20  30 3 ------------------------------------ 例2) ------------------------------------     A   B   C   D   E   F 1    x 2           20   30   40 3 ------------------------------------ 例1の場合は10+30でA1セルに40と出るように、 例2の場合は20+40でA1セルに60と出るようにするにはどうすればよいでしょうか? 色々試してみたのですがうまくいかず手詰まりになってしまいました。。。 ご存知の方いましたらご教示ください。よろしくお願いします。

  • エクセルの書式のコピー

    エクセルで送迎表を作成しています 1行目に 1Aから1Dまでのセルを結合し送迎表と記入 2行目から 2Aに“氏名” 2Bに“迎えの時間” 2Cに“ドライバー名 2D”に“送りの時間” といった見出しを HG創英角ポップ体 サイズ11で入力 3行目から10行くらいまで 氏名 時間などを記入した表です そのフォントは HGP明朝E サイズ14  時間を記入する欄は HSPゴシック サイズ14になっています これを 名前や時間のフォントをまとめて変更したいのです  ホームリボン内にある 書式のコピー 貼り付けを使ってやっているのですが このやり方で あっているのでしょうか? やり方は まずその書式にしたいセルを選択(例えば2Aのセル )→書式のコピーを押下 次に その書式にしたいセル(2Bから10B)を ドラッグで選択 この時 ドライバー名(2C~10C)もCTRLとともにドラッグ その後再度 書式のコピーを押下 何も変更がされません ちなみにドラッグが1列のみだと 書式が変更されます また この場合 A列全部を選択して 書式の貼り付けを行うこともできるのでしょうか? 1列目は セルの 結合をしていますが…… もともとの表の作成者が 見出しや時間などのフォントをバラバラに して作成したのですが 印刷してみると 文字が小さかったり ばらばらで 見にくいので 多数のセルのフォント(サイズも含め)を 変更したいのですが わたしのやり方は間違っているのでしょうか?間違っているようでしたら ご指摘お願い いたします またもっとよい方法などあれば 助言をお願いいたします 分かりづらい説明で申し訳ありません。状況が 伝わるとよいのですが…… OSはVISTA  OFFICE2007です 宜しくお願い致します

  • EXCELでの範囲コピー

    お世話になります。 エクセルのセルに以下のような文字が入っていたとします。 A B C D E 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 3 3 CTRLを押して、1行目と3行目を選択してコピーをして、 別なシートに貼り付けると、前までは1行目と3行目だけが 貼り付けられたのですが、最近同じ作業をすると1行目と3行目の間の文字も すべてコピーされて貼り付けられてしまいます。 どうやれば、1行目と3行目だけをコピーできるでしょうか? よろしくお願いします。

  • Wordの文章をExcelへ

    Word、Excelとも2003を使っています。 Wordで作成された文章をExcelに1行づつ入れたいのです。 例えば、Wordで、 あいうえお(改行) かきくけこ(改行) と2行あるとします。この2行分を選択(改行まで)して、ExcelのセルA1とA2にそれぞれ一度に入るようにしたいのです。普通に入れると当然A1のセルに2行分入ってしまいます。 今は1行づつコピペしていますが、とても時間が掛かるので作業がはかどりません。 わかる方教えてください。よろしくお願いいたします。

専門家に質問してみよう