先日、マクロの件で質問した者です。
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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) countifsについての質問 3 2023/03/08 13:45
- Visual Basic(VBA) VBAで時間(00:00形式)を積算(足し算)したい 1 2022/11/15 17:04
- Visual Basic(VBA) select caseの入れ子 3 2023/03/08 18:48
- Visual Basic(VBA) ワークシートチェンジで曜日を表示する方法 1 2023/03/04 21:51
- Visual Basic(VBA) ワークブック内すべて検索 2 2022/12/20 20:13
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Visual Basic(VBA) VBA 請求書自動作成 3 2022/04/24 01:58
- Visual Basic(VBA) Worksheet_Change 4 2023/03/12 21:54
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
リンク先のページ内容への表示方法
-
HPビルダーでの別窓表示・・・
-
ホームページの簡単な作り方、...
-
<!--nobanner--> かindex.xhtm...
-
Windows標準のソフトでhtmlのフ...
-
htaccess によるアクセス制限 ...
-
無料ホームページの簡単な作り方
-
文字化けを直したいのですが・・・
-
トップページの入れ替えを教え...
-
ビルダーでアップロードが出来...
-
HP見れない方がいます。
-
隠しページについて
-
dreamweaver 相対リンクに / が...
-
ページの位置を指定するタグ
-
初心者です。変な質問でごめん...
-
拡張子の変え方
-
ホームページビルダーで作った...
-
HP作成していますがリンクでき...
-
ヤフオクの出品説明文をカラー...
-
メモ帳をブラウザで表示するには
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アドレスバーへの直接入力を禁...
-
macでhtmlのタグを打って、開い...
-
ヘッダーを共通化した場合のSEO...
-
PDFファイルをリンクするには?
-
htmlのランダム表示について
-
Excelを読み込んでhtmlのテーブ...
-
コメントタグ <!-- #BeginLibra...
-
HTMLタグでタブ型ナビゲーショ...
-
無料ホームページの簡単な作り方
-
Windows標準のソフトでhtmlのフ...
-
【excel】excelで作成したhtml...
-
ホームページについて 最近私は...
-
htmlで改行タグを入れていない...
-
アクセスログの「HEAD」と...
-
隠しページの探し方
-
大きくなった文字を元に戻すには?
-
ドラッグすると見える文字
-
FFFTPで「コマンドが受け付けら...
-
ドメインを入力した際に「index...
-
エクセルから作ったホームペー...
おすすめ情報