テキストボックスのみでつくられたエクセルの表データをテキストとして列ごとに保存したいのですが、やり方がわからないのでセルを一つ一つコピペしていますが、膨大な量なのでとても時間がかかってしまいます。どなたか良い知恵がありましたら教えてください!

OSはXP オフィス2003とMacOSX/9.2にそれぞれオフィスXと98があります。よろしくおねがいいたします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/05/03 22:47:53
  • 終了:--

回答(10件)

id:taknt No.1

きゃづみぃ回答回数13539ベストアンサー獲得回数11982005/05/03 23:21:29

ポイント13pt

マクロでやっていくしかないでしょうね。


マクロでやる場合、セルに貼り付ける時は、クリップボードを経由させ 一括で 貼り付けると 若干 速いようです。

id:raramie

回答ありがとうございます。

もし御存じであればマクロのやりかたを教えていただけると幸いです。

2005/05/04 00:28:07
id:kirikoro No.2

kirikoro回答回数14ベストアンサー獲得回数02005/05/04 00:45:51

ポイント13pt

http://srd.yahoo.co.jp/PAGE=D/LOC=S/R=8/*-http://www.sk2.aitai.ne.jp/~happy/:detail]

テキストボックスというのは図形描写で書かれたものでしょうか?それともただセルに入力されたテキストを列毎に保存したいのでしょうか?

前者ならVBAを勉強してマクロを作るしかないと思います。

後者なら、保存したい列以外をいったん削除して「名前を付けて保存」で「ファイの種類」でテキスト形式を選びます。

id:raramie

ご回答ありがとうございます。

図形描写で書かれたテキストボックスがセルの一つ一つに入っていて、そのテキストをセルに入れたいのですが、マクロをいじってみてもよくわからなくて。。。時間がないので困っております泣

2005/05/04 01:03:39
id:taknt No.3

きゃづみぃ回答回数13539ベストアンサー獲得回数11982005/05/04 07:08:41

ポイント13pt

http://www.hatena.ne.jp/1115128073#

人力検索はてな - テキストボックスのみでつくられたエクセルの表データをテキストとして列ごとに保存したいのですが、やり方がわからないのでセルを一つ一つコピペしていますが、膨大な量な..

For a = 1 To 2

ActiveSheet.Shapes(a).Select

b = Selection.Characters.Text

Range(”A” & a) = b

Next a


とりあえず こんな感じで マクロでできます。

あとは、環境に応じていろいろいじくってみてください。


クリップボード経由ではないので 若干 遅いですけど・・・。

クリップボード経由は ちょっと面倒なんです。

id:raramie

ありがとうございます。

が、しかし。。。

>_< 出来ませんでした。。

あまりマクロは詳しくないので勉強してみますがなんせ時間がなくて困っています。

2005/05/05 01:39:11
id:akibare No.4

akibare回答回数157ベストアンサー獲得回数52005/05/04 10:41:38

ポイント13pt

テキストボックスの位置によってセルを決定(BottomRightCellプロパティ)、などのロジックを入れるとより洗練されますが、とりあえずどうぞ:


Dim ws As Worksheet

Dim c As Shapes

Dim s As Shape


Set ws = ActiveSheet

Set c = ws.Shapes

For i = 1 To c.Count

c.Item(i).Select

ws.Cells(i, 1) = Selection.Characters.Text

Next

id:raramie

ありがとうございます。しかし、

プロシージャの外では無効です。というエラーがでて実行できませんでした。

色々と勉強したいのですが、

今はとにかく時間がないので困っています。ありがとうございました。

2005/05/05 01:49:09
id:teruteru14 No.5

teruteru14回答回数13ベストアンサー獲得回数02005/05/04 10:42:22

ポイント13pt

http://www.excel.studio-kazu.jp/

エクセル(Excel)の学校

お急ぎのようなので専門的なところで聞いた方が早いと思います。

エクセルでわからない事があるときは、いつもここを利用しています。多くの人にまめに見られているようです。

http://excelfactory.net/excelboard/

ExcelQ&A掲示板(エクセル質問掲示板)

http://homepage1.nifty.com/kenzo30/bbs/situmon.htm

エクセル質問掲示板利用案内

id:raramie

ありがとうございます!早速聞いてみたいと思います。

2005/05/05 01:49:51
id:raizou_2003 No.6

raizou_2003回答回数7ベストアンサー獲得回数02005/05/04 11:29:04

ポイント13pt

エクセルメニューにあるマクロの自動記録で

作りたいマクロの雛型が作成できますので

そこから編集すると楽ですよ

id:raramie

試してみたのですが、テキストボックスの数と配置が複雑&膨大で私のレベルでは上手くいきませんでした。ご回答いただきありがとうございました。

2005/05/05 01:51:29
id:mansak1 No.7

mansak1回答回数136ベストアンサー獲得回数02005/05/04 11:44:39

ポイント13pt

[Web ページとして保存]でそのHTMLのソースを編集、あるいはブラウザで表示された画面をコピー、であとはデータをエディタかExcelで成形すればなんとかなりませんか?

id:raramie

ご回答ありがとうございます。

web頁で保存を実行すると、フォントフェイスのみが保存され、肝心のテキスト内容が保存されませんでした。ご回答いただきありがとうございました。

2005/05/05 02:01:19
id:antennauser No.8

antennauser回答回数48ベストアンサー獲得回数02005/05/04 13:30:08

ポイント13pt

VBAが使えるならココとか参考になりそうですがどうでしょうか?

こちらもトライしてみます。出来たらまた回答します。

id:raramie

ありがとうございます。VBAはあまりいじったことがないので自信がありませんが、ためしてみたいと思います。ありがとうございます。

2005/05/05 02:16:42
id:akibare No.9

akibare回答回数157ベストアンサー獲得回数52005/05/05 16:05:28

ポイント13pt

回答者4です。念のため補足すると:

(1) 問題のExcelを開きます

(2) Alt+F11でVBA画面を開きます

(3) 左上のプロジェクトビューで右クリックして[挿入 - モジュール]でモジュールを追加します

(4) 追加されたモジュールをダブルクリックして

(5) sub hoge()とタイプして[Enter]

(6) sub hoge()とend subの間に回答4のスクリプトをコピペしてください

(7) sub hoge()とend subの間にカーソルを置いて、F5で実行します

id:raramie

親切にありがとうございます。

別のスクリプトで実行したらある適度できるようになりました!

2005/05/05 21:42:26
id:kirikoro No.10

kirikoro回答回数14ベストアンサー獲得回数02005/05/05 16:50:54

ポイント13pt

http://www.hatena.ne.jp/1115128073

人力検索はてな - テキストボックスのみでつくられたエクセルの表データをテキストとして列ごとに保存したいのですが、やり方がわからないのでセルを一つ一つコピペしていますが、膨大な量な..

4の回答で出来ませんか?


1.エクセルで「ツール」→「マクロ」→「VisualBasicEditor」を選ぶ。

2.VisualBasicEditorで「挿入」→「標準モジュール」

3.以下のように一行目にSub test()と最後の行にEnd Subを入れる。

4.エクセルで「ツール」→「マクロ」で「マクロ名」がtestとなっていると思うので、実行ボタンを押す。

5.テキストボックスのあるセルにコピーされるので、テキストボックスを削除するなり、セルを列ごとコピーするなりしてください。


尚、テキストボックスの右下隅が位置するセルにコピーされるので、テキストボックスが少しずれていて、一つのセルにテキストボックスが重複していると上書きされるので、実行する前に列の幅と行の高さを広げておく方が良いかもしれません。


Sub test()

Dim ws As Worksheet

Dim c As Shapes

Dim s As Shape

Set ws = ActiveSheet

Set c = ws.Shapes

For i = 1 To c.Count

c.Item(i).Select

Range(Selection.BottomRightCell.Address) = Selection.Characters.Text

Next

End Sub

id:raramie

ご丁寧なご回答ありがとうございます。

一つのセルにたくさんのテキストボックスがしかも重なっているので、上記の者では出来ませんでした。でもとても参考になりました。ありがとうございます!

2005/05/05 21:46:07

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません