• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルからメモ帳へ貼り付け、個別保存)

エクセルからメモ帳へのデータ貼り付けと保存方法について

このQ&Aのポイント
  • エクセルの特定の列にある各行のセルの内容をコピーし、メモ帳に貼り付けて.html形式で保存する方法を教えてください。
  • エクセルの一つのセル内データをメモ帳に貼り付け、番号を振って.html形式で保存する方法を教えてください。
  • エクセルからメモ帳へのデータ貼り付けと保存を自動化する方法を教えてください。

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

  • ベストアンサー
  • nonamochi
  • ベストアンサー率62% (228/365)
回答No.7

いずれかのフォルダに解凍したものを実行してますか? 以下でプログラムの流れがわかります。 1. sample.xlsmを開く 2. Alt+F11キーをおす。プログラムが表示される 3. F8キーを押す。プログラムの初めの行が黄色く反転する この状態でF8キーをさらに押して行くと、黄色の帯が各行を進んで行きます。これがプログラムの実行状態を表示しています。 For No = StartData To EndData FileName = Cells(No, NoRetsu) & ".html" Open FileName For Output As #FileNumber Print #FileNumber, Cells(No, htmlRetsu).Value Close #FileNumber Next No F8キーを何度かおしてForループの中に入ります。 No, StartData, EndData, NoRetsu, htmlRetsu, FileNameの上にマウスの矢印を重ねると、その時の値が表示されますので、まずそれを確認してください。 No.は現在の番号 NoRetsuは4(連番が入っている列番号) htmlRetsuは25(htmlコードが入っている列番号) StartDataは「開始」の下に入力されている数値+4 EndDataは「終了」の下に入力されている数値+4 FileNameはNo.の値+".html" になります Forループは指定した範囲の数だけ繰り返し回ります。 なお、これはVBAプログラムであってマクロでは無いので、マクロ欄は空白になっているので正常です。 私はエクセル2007で作成しましたが、2010との間で違いがあるかもしれません。 2010で開いた状態で一度上書き保存して、再度試して見るのもいいかもしれません。

goo41141141
質問者

お礼

ご返信ありがとうございます。 一度開いたエクセルファイルをマクロ有効ワークシートで名前を付けて保存し、再び開いた後でコード出力ボタンを押すと各NoがふられたHTMLファイルを同フォルダに生成することができました。 お手間をお掛けして申し訳ございませんでした。 ひとまず私がやりたかったことが実現できました。 本当にありがとうございます。 ちなみにこのファイルをコピーして「1」と名前をつけて同じものを作成し、そちらで実行をしたのですが、Noも何も書かれていないHTMLファイルが一つのみ生成されました。 これはエクセルのファイル名が関係しているのでしょうか?

その他の回答 (6)

  • nonamochi
  • ベストアンサー率62% (228/365)
回答No.6

おはようございます ボタンを押しても見た目は何も起こりません。 エクセルファイルを保存したフォルダの中に、htmlファイルが生成されてませんか? 注意点としては エクセルファイルは解凍した上でどこかのフォルダに保存し、その後開いてください エクセルを起動した際にはマクロの実行を有効にしてください。 これでも駄目な場合、エクセルのバージョンを教えてください。 今回はサンプルプログラムをお見せするのが目的であるため、プログラムそのものを別のエクセルファイルにコピーして実行して頂くのでも、またプログラムの流れを見て頂くだけでも全く問題ありません。 わからない事があれば何でも遠慮無くおっしゃってください。

goo41141141
質問者

補足

ご連絡ありがとうございます。 おっしゃる通りにマクロの実行を有効にし、出力ボタンを押してもエクセルファイルがあるフォルダの中に何も生成されません。 エクセルオプションからセキュリティセンター>マクロの設定>すべてのマクロを有効にするを選択して再度試みましたが、やはり何も反応がありませんでした。 エクセルファイルの上部表示タブ、「マクロ」からマクロの表示を選択し確認しましたが、マクロ名が何も入っていません。 これは何か反応がないことと関係があるのでしょうか? なおエクセルのバージョンは以下の通りです。 Microsoft office home and business 2010 バージョン 14.0.7128.5000(32ビット) よろしくお願いたします。

  • nonamochi
  • ベストアンサー率62% (228/365)
回答No.5

こんにちは サンプル的なプログラムを作成しました。 柔軟性は考慮してません。 goo41141141さんがVBAに対しどの程度理解していらっしゃるかわかりませんので、サンプルのエクセルブックを私のホームページに載せました。そこからダウンロードして実行してみてください。 現在はエクセルブックと同じフォルダにファイルを出力する様にしています。 http://sakebear.ddo.jp/bbs/ このページから、質問箱用資料ダウンロードを選択し、 エクセルVBA=>データをファイル出力 からダウンロードしてください。 エクセルファイルを開き、「コード出力」ボタンを押すとファイルに書き出します。 プログラムはAlt+F11キーで見る事が出来ます。 またサンプルデータは33件分入れておきましたが、何件であってもプログラムを変更する事無く対応できるはずです。 プログラムは今晩ダウンロード出来る様にしておきます。

goo41141141
質問者

補足

ファイルありがとうございます。 只今ダウンロードしてファイルを開き、「コード出力」ボタンを押したのですが、全く何も反応がありません。 何か手順が間違っているのでしょうか? エクセルファイル内はプログラムを含めて特に何も触れていません。 素人の質問で申し訳ありません。

  • nonamochi
  • ベストアンサー率62% (228/365)
回答No.4

もちろん、出力する行の範囲はプログラム次第でどの様にでも設定できます。 ただ懸念があるとすると、htmlコードの文字数がかなりあると言う事ですね。 では取り敢えずサンプルを作ってみます。 申し訳ありませんが、明日までお待ちください。

goo41141141
質問者

補足

ご回答ありがとうございます。 はい、htmlコードの文字数はかなりあります。 お手数おかけして申し訳ございませんが、よろしくお願いいたします。

  • nonamochi
  • ベストアンサー率62% (228/365)
回答No.3

こんばんは 確認します。 1. D列に1から1000までの連番が記入されている。 2. Y列にはhtmlコードがD列の番号に対応して記述されている 3. D列の番号をファイル名として、それに対応するhtmlコードをファイルに出力する 4. 従って、D列が1,000まであれば出力されるファイル数も1,000になる こんな感じでしょうか? 概略としては、D列に記述された番号分だけループを回し、各ループ毎にY列のコードを出力すればいいです。 ファイル名はループの回数またはD列の番号を基準に作成します。 質問の内容が「可能かどうか」と言う事ですので、私の理解で正しいとすれば回答は「可能です」になります。 実際のプログラムを見たいのであれば言ってください。 サンプルプログラムを作ってみます。

goo41141141
質問者

補足

ご回答ありがとうございます。 おっしゃる通りです。 なお、sanpleエクセルファイル内はD列にNoとして1~1000までの数字がふってありますが、途中から出力したい(例えば200~など)ときがあります。 そのような場合も可能なのかご教授いただけると助かります。 サンプルプログラムを作っていただければ幸いです。 よろしくお願いいたします。

  • nonamochi
  • ベストアンサー率62% (228/365)
回答No.2

こんにちは VBAと言うのは、マクロみたいなものですが、さらに細かい動きを制御できます。エクセルの中で作成します。 エクセルの開発リボンから入っていきます。 例えばこんな感じのものをエクセルに埋め込みます(まったくの例です)。 Public Sub getKyohonName() Dim HeaderTitle As String Dim Gyo, Retsu, No As Integer Worksheets(BasicInfo).Activate Gyo = Worksheets(BasicInfo).Cells.Find(HeaderTitle).Row + 1 Retsu = Worksheets(BasicInfo).Cells.Find(HeaderTitle).Column No = 1 Do While Cells(Gyo, Retsu).Value <> "" Kyohon(No) = Cells(Gyo, Retsu).Value No = No + 1 Gyo = Gyo + 1 Loop End Sub 難しそうに見えますが、やりたいと考えている内容から判断するとさほど難しい処理では無いと思います。 html形式と言う事ですが、いわゆるテキストファイルですよね? セルのデータがどの様なものかわかりませんが、メモ帳などを使わずにエクセルから直接出力させてもいいはずです。 もっと具体的に話して頂ければ、詳細についてお教えできます。 わからない事は何でも聞いて大丈夫です。

goo41141141
質問者

補足

ご回答ありがとうございます。 それでは、実際に使用しているエクセルファイルで補足させていただきますが、 (1)エクセルファイル「sample」のD列にNoが1から順番に、Y列にDescriptionとして以下のようなhtmlコードがあり、No列に1~1,000、Description列にNoと連動してそれぞれ異なったhtmlコードが入っています。 <p style="color: rgb(0, 0, 0); font-family: Verdana, Geneva, 'DejaVu Sans', sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><br></p><div align="center"><img src="http://i.imgur.com/1vbFcaR.jpg" width="300"><br><p style="color: rgb(0, 0, 0); font-family: Verdana, Geneva, 'DejaVu Sans', sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span style="font-size: larger;"><font face="Arial"><span style="font-size: larger;"><span style="font-size: larger;"><span style="color: rgb(127, 127, 127); font-family: 'Lucida Grande', 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', Meiryo, メイリオ, 'MS Pゴシック', sans-serif, Osaka; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: -webkit-center; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); display: inline !important; float: none;">&bull;</span></span></span></font>Description</span><span style="color: rgb(127, 127, 127); font-family: 'Lucida Grande', 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', Meiryo, メイリオ, 'MS Pゴシック', sans-serif, Osaka; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: -webkit-center; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); display: inline !important; float: none;"></span></p><p style="color: rgb(0, 0, 0); font-family: Verdana, Geneva, 'DejaVu Sans', sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span style="font-size: larger;"> (2)この各セルにあるhtmlコードを抜き出して「保存」フォルダに個別にhtml形式でNoをふって保存していく というVBAを作成したいと思っています。 htmlコードはテキストファイルですが、これらの作業をワンクリックでできるようなVBAを作成することは可能でしょうか? よろしくお願いいたします。

  • nonamochi
  • ベストアンサー率62% (228/365)
回答No.1

おはようございます 単なるコマンドの羅列では出来ない処理ですね。 VBAによるプログラム化が必要です。 単純にデータを書き出すだけならメモ帳を使う必要は無いと思いますが、いかがですか?

goo41141141
質問者

補足

こんにちは。ご回答ありがとうございます。 VBAによるプラグラム化とは具体的にどのようにすればいいのでしょうか? htmlコードで記載されているセル内に入っているデータをメモ帳に転記してhtml形式で保存、それを開いてWeb上の画面を確認したいのですが、メモ帳が不要というのはどういうことでしょうか? 質問ばかりで申し訳ございません…。 よろしくお願いいたします。