先日、マクロの件で質問した者です。
http://oshiete1.goo.ne.jp/qa4473686.html
良回答のlulさんのコードを参考にしています。
質問1
下記のコードではV列にhtmlが表示されるようになっています。
(エクセルにはAからTまでデータが入っています)
今回はセルV列にhtmlを表示するのではなくエクセルシートが置いてあるフォルダに各htmlを出力したいのですがどこをどのように変更すればいいのでしょうか?
(ちなみに、C列にあるものをファイル名とします)
質問2
また、フォルダ名を指定してそのフォルダに出力する場合も教えてください。
よろしくお願いします。
Sub htmlを作成()
Const LFeed As String = vbCrLf
Dim st As String
Dim sht As Worksheet, i As Long, obj
Set sht = ActiveSheet '//現在のシートを設定
Dim MaxRow As Long
MaxRow = Range("A65536").End(xlUp).Row
For i = 1 To MaxRow
If Cells(i, 1) <> "" Then
Set Grammar = Nothing
'HTML1行ずつ記載
st = ""
st = st & "<html lang='ja'>" & LFeed
st = st & "<head>" & LFeed
st = st & "</head>" & LFeed
st = st & "<body>" & LFeed
途中省略
st = st & "</body>" & LFeed
st = st & "</html>" & LFeed
st = Replace(st, "'", Chr(34), 1, -1, 1)
sht.Cells(i, 22).Value = Mid(st, 1, Len(st) - 1) '//結果を V列に入れる(他の場合はそのように変更する)
End If
Next i
End Sub
No.6ベストアンサー
- 回答日時:
>回答番号:No.5 この回答への補足
プロシージャの中にプロシージャを入れることはできません。
Sub htmlを作成() '---プロシージャの開始
・
・
End Sub '---プロシージャの終了
sirakuさんのオリジナルコードでは、下記の部分でセルに書き込んでいます。
sht.Cells(i, 22).Value = Mid(st, 1, Len(st) - 1)
そこを、htmlファイルに出力するようにすれば良いのです。
f5d6c3d3さんのコードで、htmlファイルに出力するのが下記部分です。
Open ThisWorkbook.Path & "\ " & Range("B" & i).Value For Output As #1
Print #1, Range("A" & i).Value
Close #1
ThisWorkbook.Path
で、作業中の(このマクロを保存している)ファイルのパスを使っています。
Range("B" & i).Value
がファイル名です。
Range("B" & i)が記述されているセルです。
実際にファイル名が記述されている、セルに合うように、書き換える必要があります。
Print #1, Range("A" & i).Value
で、Range("A" & i).Valueを書き込んでいます。
Range("A" & i).Value
を、html文に置き換えればよいことになります。
xls88さん
ご回答ありがとうございます。
やっと出来ました!
本当にありがとうございました!
Sub htmlを作成()
Const LFeed As String = vbCrLf
Dim st As String
Dim sht As Worksheet, i As Long, obj
Set sht = ActiveSheet '//現在のシートを設定
Dim MaxRow As Long
MaxRow = Range("A65536").End(xlUp).Row
For i = 1 To MaxRow
If Cells(i, 1) <> "" Then
Set Grammar = Nothing
'HTML1行ずつ記載
st = ""
st = st & "<html lang='ja'>" & LFeed
st = st & "<head>" & LFeed
st = st & "</head>" & LFeed
st = st & "<body>" & LFeed
途中省略
st = st & "</body>" & LFeed
st = st & "</html>" & LFeed
st = Replace(st, "'", Chr(34), 1, -1, 1)
Open ThisWorkbook.Path & "\ " & Range("C" & i).Value For Output As #1
Print #1, Range("V" & i).Value
Close #1
End If
Next i
End Sub
No.5
- 回答日時:
>回答番号:No.4 この回答への補足
>いろいろと試しているのですがどうしても失敗します。
ということで済まさずに、
どこまで出来ているのか、どこで躓いているのか教えてください。
トライ中のコードを提示されるのが一番アドバイスし易いです。
エラーになるなら、エラー発生行、エラー内容も教えてください。
この回答への補足
マクロが分からないでどこを直せばいいかわかりませんのでとりあえず指摘があった場所
sht.Cells(i, 22).Value = Mid(st, 1, Len(st) - 1) '//結果を V列に入れる(他の場合はそのように変更する)
これを削除して
f5d6c3d3さん の
Private Sub CommandButton1_Click()
Dim i As Integer
For i = 1 To 10
Open ThisWorkbook.Path & "\ " & Range("B" & i).Value For Output As #1
Print #1, Range("A" & i).Value
Close #1
Next i
End Sub
をとりあえず挿入してみました。
そしてマクロ実行
コンパイルエラー
End Subが必要です。
とでます。
他にもいろいろとやみくもにやってみましたがマクロが分かっていない為、どうすればいいかお手上げ状態です。
No.4
- 回答日時:
進んでいますか?
>質問1
htmlをV列に書き出している部分
sht.Cells(i, 22).Value = Mid(st, 1, Len(st) - 1)
を、f5d6c3d3さんのコードに置き換えれば希望が叶うと思います。
No.3
- 回答日時:
回答番号:No.2で紹介した
エクセル マクロ(VBA?)で、htmlファイルをまとめて作成したい。
http://detail.chiebukuro.yahoo.co.jp/qa/question …
上記のベストアンサー、f5d6c3d3さんの回答をお借りすればできるように思います。
頑張ってみてください。
No.2
- 回答日時:
>回答番号:No.1 この回答への補足
Web検索でヒットしました。
ピッタリではないかも知れませんが、こういうことでしょうか?
エクセル マクロ(VBA?)で、htmlファイルをまとめて作成したい。
http://detail.chiebukuro.yahoo.co.jp/qa/question …
この回答への補足
だいたいそのような感じです。
マクロを1回実行して、エクセルファイルが入っているフォルダに複数のhtmlを作成したいと言う意味です。
No.1
- 回答日時:
フォルダに出力しても受け取ってもらえません。
フォルダにあるファイル(Excelブック)ということですね。
出力先ブックがExcelで開かれているなら簡単です。
現状のコードでブック名とシート名を指定してやれば良いです。
Excelブックを開く操作を「マクロの記録」すれば参考コードが得られます。
この回答への補足
補足
上記のコードを実行すると
セルV2~
v1 各項目
v2(html~/htmlのデータ)
v3(html~/htmlのデータ)
v4(html~/htmlのデータ)
v5(html~/htmlのデータ)
各セルには別々のhtmlが入ります。
今回は、セルの中にhtmlを入れるのではなく、各htmlのファイルを出力すると言う意味です。
仮にエクセルファイルが【テスト】というフォルダ名に入っていれば、その中に各htmlファイルを作成すると言うことです。
セルC列にはファイル名が入っているのでその名前でhtmlを作成したいのです。
説明不足で申し訳ありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelの警告について
-
エクセルの数式バーのフォント...
-
Excelの区切り文字について質問...
-
8:40までの出勤は全て8:30に...
-
【Excel VBA】 テキストファイ...
-
excelVBAについて。
-
Excelで<a>,<b>の入ったセルをc...
-
EXCELの散布図で日付が1900年に...
-
【再投稿】レイアウトが異なる...
-
【Excel】日付に連動してプルダ...
-
エクセルでファイルの最終更新...
-
大容量があつかえるソフトを探...
-
エクセル VBA 参照設定とイ...
-
Excelの計算で差分を求める場合...
-
Excel 標準フォントについて教...
-
Excelについて教えてください ...
-
Excel 小さくなったスクロール...
-
excelファイルの内容検索
-
年間の医療費のデータがあり、...
-
エクセルの計算式について(COU...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PDFファイルをリンクするには?
-
HPトップページが表示されま...
-
HPビルダーでの別窓表示・・・
-
<!--nobanner--> かindex.xhtm...
-
「ASP を使用して、書式付きデ...
-
アドレスバーへの直接入力を禁...
-
無料ホームページの簡単な作り方
-
Excelを読み込んでhtmlのテーブ...
-
管理者ページで設定した値を、...
-
htmlで改行タグを入れていない...
-
アクセスログの「HEAD」と...
-
隠しページの探し方
-
数値Lについて
-
http://www.joho-hi.ed.jp/inde...
-
ドラッグすると見える文字
-
ヤフオクの出品説明文をカラー...
-
メールの文字が大きく印刷され...
-
パソコンのメモ帳のことで質問
-
大きくなった文字を元に戻すには?
-
グラデーションの仕方
おすすめ情報