http://hatena88.web.fc2.com/hatena/newpage2.shtml
長めマクロなので、最初に正解された方に200ポイント、2位以降の方に50ポイント差し上げます。
なお、上記のページで更にいくつかの質問があります。これらに答えてもらうことと、下記のページで回答者4の方がされているような解説を入れてもらうことも有効回答の条件とさせていただきますのでよろしくお願いします。
http://q.hatena.ne.jp/1158311664
以下のマクロを標準モジュールにコピペでできると思います。
ただ、連続的に行うとTXTの内容に挿入されていくので一度作ったファイルは移動するか名前を変更しないとおかしなことになります。
Option Explicit '配列宣言
Dim Y 'セルY軸座標
Dim Text1, Text2, Text3 '合成する文字列
Dim Tmp 'メモ帳起動用
Sub TEST()
'セルの座標
Y = 2
'計算の都度、メモ帳をアクティブにして書き出すのは時間がかかるため
'はてな.txtに書き出し、後で変換する
'ファイル「はてな.txt」を書き込みできる状態に
Open "D:\はてな.txt" For Append Access Read Write As #1
Do '1列目のデータがなくなるまでループ
'書き出す文字列作成
'1列目
Text1 = Cells(1, 1).Text & Cells(Y, 1).Text
'2列目
Text2 = Cells(1, 2).Text & Cells(Y, 2).Text
'5列目
Text3 = Cells(1, 5).Text & Cells(Y, 5).Text
'?列に変更するときは"Cells(1, X)"のXを任意の列番号に代えてください(2つとも)
'ファイル「はてな.txt」に書込み
Print #1, "XXX"
Print #1, "YYY"
Print #1, Text1
Print #1, Text2
Print #1, Text3
Print #1, "ZZZ"
Print #1, "========"
Print #1,
Print #1, "--------"
'処理を次の行へ
Y = Y + 1
Loop Until Cells(X, Y) = ""
'ファイル「はてな.txt」を書込みできる状態から開放
Close #1
'メモ帳を開いて「はてな.txt」を読み込む
'メモ帳をアクティブ
Tmp = Shell("notepad.exe", 1)
'「はてな.txt」を読込み
SendKeys "%FO", True
SendKeys "D:\はてな.txt", True
SendKeys "{ENTER}", True
'名前を代えて保存で名前・文字コード変更
SendKeys "%FA", True '%:「Alt」キー相当 ファイル-名前を付けて保存
SendKeys "%E", True '文字コード選択
SendKeys "{DOWN}{DOWN}{DOWN}", True 'UTF-8を選択 {DOWN}:「↓」キー
'文字コードは選択式ですので{DOWN}の回数でUTF-8にあわせてください。
'当方の文字コードは
'ANSI
'Unicode
'Unicode Big endian
'UTF-8
'となっているため標準「ANSI」から{DOWN}3回となってます
SendKeys "%S", True '保存
SendKeys "Y", True '上書き確認
SendKeys "%FX", True 'メモ帳終了
End Sub
参考
※Sendkeyについて過去にはてなであった質問
コメント(7件)
Loop Until Cells(X, Y) = ""
↓
Loop Until Cells(Y, X) = ""
にしないと必ず5回で終わってしまいます。すいません。
(言い訳:サンプルが5×5だったので気付きませんでした。)
質問終了まで「この質問・回答へのコメントを書く」がクローズになっていたので、
修正だけ乗っけて10Point使わせるのももったいないと思ったのでまってました・・・
それと修正をしたこのマクロでご希望にあうものだったのでしょうか?
無駄に手間隙かけて回答するのもアレですので^^;
どうだったんでしょうね。
お返事遅れて失礼しました。
ちゃんとコメント書いておいたのですが、
操作ミスでもあったのか、表示されていませんでした。
今、自分で確認して驚いているところです。
回答に対するコメントには下記のような質問をしていました。
『僕のパソコンの環境下で、当該マクロを実行すると、
Loop Until Cells(X, Y) = ""のXの場所で
「コンパイルエラー 変数が定義されていません」という
エラーが表示されます。
まだ初心者なので、知ってて当然と言うことまで、
ご指導板だければ幸いです。』
このエラーは新たにいただいたとおり、
XとYを入れ替えてもやっぱり出てしまいます。
llusall 様
上記にも書きましたとおり、
回答に対してお返事したつもりでしたが、
原因不明(おそらく私の操作ミス)で表示されていませんでした。
お騒がせしました。
(最初のコメントで直してくださいと書いた同じ所です。)
Loop Until Cells(Y, X) = ""
↓
Loop Until Cells(Y, 1) = ""
エラーが出てしまうのは私のミスでした、中途半端なものをアップしてしまい余計な手間を取らせて申し訳ありません。
制作上の癖でセルの座標を操作するのにX・Yを当初設定していたのですが、
注釈等を付け体裁を整えているときに今回のマクロではX軸を操作する様な処理はなかったので余分な変数を削除し損ねたものです。
ちなみに「コンパイルエラー 変数が定義されていません」と表示されてしまうのは、マクロの一番行頭にあるコマンドのおかげで、宣言してない変数がマクロ内にあったとき、マクロ実行時にエクセルがチェックして表示します。
Option Explicit
モジュール内のすべての変数に対して、明示的な宣言を強制します。
このコマンドを使う意図は、もっと複雑な変数を多く使うようなときにスペルミスなど不具合を発見するのに有効なためです。
再度のご回答及び丁寧なご指導ありがとうございました。
お約束の通り残りの140ポイントという形で差し上げます。
今後ともよろしくお願いします。
140ポイント追加して、お約束の200ポイントを差し上げます。
支払っておきましたので、お時間のあるときにでもご確認ください。
またのご回答をお待ちしています。
一週間近く家を空けていたので本日確認いたしました。
色々と誤記・ミスがあったためポイントは期待してなかったので
とても嬉しいです。