• ベストアンサー

差込印刷の逆?をしたい

差込印刷は実際に使ったことはありませんが、このサイトや他の差込印刷に関するサイトを見ておおよその要領、イメージは解ったつもりです。 通常の差込印刷は、 Wordに雛形を作成→Excelでデータベースを作成しておく→Wordに差込フィールドを挿入 、という流れですが、今回はそうではなく、 Wordに雛形を作成→Excelに空のデータベース(と呼んでいいのかどうか??)を作成→Wordの雛形に差込フィールド(と呼んでいいのかどうか??)を作成→Wordの差込フィールドにデータを入力する→Excelの空データベースの最新行にそのデータが自動入力される→Wordの雛形の差込フィールドに新たにデータを入力する→Excelの空データベースの最新行にそのデータが自動入力される 、というイメージです。 ひょっとしたらWordではなくExcelのみで行うのか、あるいはAccessを使用するのか?? 具体的な手順を御教示いただけると尚嬉しいです。 よろしくお願い致します。

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

  • ベストアンサー
noname#187541
noname#187541
回答No.4

ANo.1です。 データフォームで同時に表示できるフィールドは32までです。 BMまでだと65なので「フィールドが多すぎます」になります。 その方式で行いたいのであればVBAを使うことになるかと思います。 ただ、使ったことがないようですので Excelでお仕事! http://www.asahi-net.or.jp/~ef2o-inue/top01.html# このようなサイトや本などで勉強してください。 方法にこだわらなければ、ANo.2さんが言われているような方法でシートに入力するのがいいでしょう。

Youyou
質問者

お礼

ありがとうございます。 ご紹介のサイト、過去に見たことがあるようなサイトですが、改めて見ましたら、これがあれば教則本なんか要らないですね。

その他の回答 (4)

回答No.5

#2です。 マクロは標準モジュールにコピペして下さい。No.3で書いたVBAもそのままでは使えないと思います。シート名やデータの入力場所によって書き換えが必要です。よくわからなければ、無理にVBAに頼るよりも、おそらく最初に回答した方法でデータ入力する方がいいと思いますよ。

Youyou
質問者

お礼

ありがとうございます。 後学のためにも一度トライしてみます。 それで無理なら仰せの通り、ベタでやることにします。

回答No.3

#2です。 「範囲をあらかじめ反転させておく」というのは表現がまずかったですかね。範囲をマウスで(orシフトを押しながら)指定するという意味です。 Sheet1にデータを書き込むとします。VBAのフォームの代わりにSheet2のB2~B65(A1~A65は項目名を書いておく)に縦に入力しておくというのはどうでしょうか?Sheet1の1行目に項目名があるとすると2行目以降の書き込まれていきます。2行目が書き込まれている場合は3行目に書き込むようになっています。 Sub DataInput() Dim MyData(65) Sheets("Sheet1").Select Range("b65536").End(xlUp).Select j = ActiveCell.Row For i = 1 To 65   MyData(i) = Sheets("Sheet2").Cells(i, 2)   コンマを外すと新たにデータ入力しやすいようにデータを消去します   'Sheets("Sheet2").Cells(i, 2).ClearContents   Cells(j + 1, i) = MyData(i) Next End Sub

Youyou
質問者

補足

ありがとうございます。 >Sheet1にデータを書き込むとします。VBAのフォームの代わりに >Sheet2のB2~B65(A1~A65は項目名を書いておく)に縦に入力してお >くというのはどうでしょうか?Sheet1の1行目に項目名があるとす >ると2行目以降の書き込まれていきます。2行目が書き込まれてい >る場合は3行目に書き込むようになっています。 これはよく判らないんですが、Sheet2のB2~B65に「Sub DataInput() ~End Sub」を入力するんでしょうか? とんちんかんな質問かもしれませんが、よろしくお願いいたします。

回答No.2

VBAを使ってフォームを作成するのも一つですが、VBAは難しいかもしれませんね。データ量にもよりますが、試行錯誤しながらフォームを作っている暇があれば、データ入力をする方が早く終わるかもしれませんしね。 私ならウィンドウズの固定とセル移動を右にしてデータを打ち込んでいくと思います。入力範囲をあらかじめ反転させておけば、最終列にデータを打ち込んだ後は次行の最前列に来ます。データの入力規則を設定しておけば、誤入力はかなり防げます。試してみてください。

Youyou
質問者

補足

ありがとうございます。 VBAが使えたら一番理想的なものが出来るはずなのですが、難しいですか? http://excelvba.pc-users.net/ このようなサイトを見て、やりかけたことはあるのですが、必要に迫られていなかったため、中途半端に終わってしまいました。 >私ならウィンドウズの固定とセル移動を右にしてデータを打ち込んでいくと思います。入力範囲をあらかじめ反転させておけば、最終列に >データを打ち込んだ後は次行の最前列に来ます。 この入力範囲をあらかじめ反転させておく、というのはよく意味が判らないのですが・・・?

noname#187541
noname#187541
回答No.1

こんばんは。 たぶんおやりになりたいことは、入力項目が並んでいる表がありそれに入力するとデータベースに入力したデータが蓄積される、ということだと思います。 通常このようなことは個人的に作るのであれば、AccessやExcelを使います。 Wordでは難しいです。(Wordだけでは無理) 流れとしては、入力項目が並んでいる表とは「フォーム」と呼ばれるものです。項目名と入力用のボックスなどを組み合わせて作ります。 Excelであれば、機能としてデータフォームというのがあります。 このフォームに入力されたデータをあらかじめ作成しておいてデータを蓄積する領域に入れます。Excelだと「シート」、Accessだと「テーブル」と呼ばれる領域になります。 Excelを使うのが無難のような気がしますね。 エクセル入門使い方データベースをカンタン入力する http://dreamy.boy.jp/kihon9.htm もう少し本格的なものを作るのであれば、VBAというプログラム言語を使ってフォームを自作するところか始めることになります。

Youyou
質問者

補足

ありがとうございます。 やりたいことは仰せのとおりです。 ご教示の「データフォーム」機能ですが、列の数がA~BMまであり(全て必須ではないのである程度省略は出来ますが、焼け石に水かも...?)、「データフォームに設定されているフィールドが多すぎます」となってしまいます。 で、試しに列の数をA~K位に絞ってやれば正常に操作できました。 どうすればいいでしょうか? ご教示よろしくお願いいたします。

関連するQ&A

専門家に質問してみよう