会社リストからHTMLファイルを作成しています。
1つの地域で1つのファイルにしています。
地域によっては会社数が多くなってきたので、
20社ごとにファイルを別にして出力したいと考えております。
tokyo
tokyo2
tokyo3
tokyo4
・
・
・
G列のファイル名を20社ごとに変換するには
以下のソースをどのように改良すれば良いのか、ご教授願います。
Sub HTMLファイル出力()
Dim myPath As String
Dim i As Long
myPath = Environ("USERPROFILE") & "\Desktop\Hoge\"
Range("A:G").Sort Key1:=Range("G2"), Header:=xlYes, MatchCase:=False, _
Orientation:=xlTopToBottom
For i = 2 To Range("G1").End(xlDown).Row
If Range("G" & i).Text <> Range("G" & i - 1).Text Then
Open myPath & Range("G" & i).Text & ".html" For Output As #1
Print #1, "<!DOCTYPE html>" & vbNewLine _
& "<html lang=""en"">" & vbNewLine _
& "<body>" & vbNewLine _
& "<div class=""span3"" id=""sidebar"">" & vbNewLine
End If
Print #1, "<div class=""widget"">" & vbNewLine _
& "<h4 class=""widgetTitle"">" & Range("A" & i).Text & "</h4>" & vbNewLine _
& "<ul><li>" & Range("B" & i).Text & "</li>" & vbNewLine _
& "<li>" & Range("C" & i).Text & "</li>" & vbNewLine _
& "<li>" & Range("D" & i).Text & "</li>" & vbNewLine _
& "<li>" & Range("E" & i).Text & "</li></ul></div>" & vbNewLine
If Range("G" & i).Text <> Range("G" & i + 1).Text Then
Print #1, "</div>" & vbNewLine & "</body>" & vbNewLine & "</html>"
Close #1
End If
Next
End Sub
No.1ベストアンサー
- 回答日時:
現在のコードだと列Gの値で1社ずつの別ファイルで出力される。
これを20社で1ファイルとしたい。
で合ってます?
> If Range("G" & i).Text <> Range("G" & i - 1).Text Then
と
> If Range("G" & i).Text <> Range("G" & i + 1).Text Then
の行で会社が変ったことを判断しています。
なのでここに手を加える。
ここでカウンタを数え、20以内ならファイルオープン・クローズ操作しない。
20の倍数(カウンタ Mod20 =0)ならファイルオープン・クローズする。
ファイル名は”tokyo” & trim(カウンタを20で割った商(整数)+1)
クローズ時にはカウンタをリセットする。
Forループ終了時にカウンタの20の剰余を判断し、0でなければクローズ操作する。
(不要なのは会社数が20の倍数の時にループ内でクローズしてる場合)
回答ありがとうございます。
当方、まったくの初心者なのです。
*カウンタを数え、20以内なら・・
*ファイルオープン・クローズ操作しない・・
*クローズ時にはカウンタをリセット・・
*Forループ終了時にカウンタの20の剰余を判断し・・
何をどうすればよいのか分からない状態です。
お手上げ状態です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) マクロでテキストファイルを読み込んだ際の最終セルにデータと改行が含まれる問題の改善方法 2 2022/03/25 16:50
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Visual Basic(VBA) InputBoxでキャンセルボタンを押したらファイル自体を閉じたい 3 2022/07/23 17:52
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語初心者の質問失礼します。
-
csvファイルを開かずに文字を検...
-
ファイル名の先頭にアンダース...
-
SGファイルって何ですか?
-
CSVファイルへの保存の際、デー...
-
「VBScript」ADODB.Streamにお...
-
マウスポインタの変更
-
分割コンパイルの#defineについて
-
バッチで118項目のCSVを処理し...
-
[VBScript]ファイルの入出力を...
-
VB6でのファイル作成方法
-
VBに、Cのincludeのようなもの...
-
大きいサイズのテキストファイ...
-
fopenできる上限の変更
-
同じ名前のファイルを作った場...
-
■ 移植性のないポインタ変換に...
-
プログラムで文字をBMPファイル...
-
C言語のfopenについて教えてく...
-
CSVファイル
-
Javascript で INI の読み書き
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語初心者の質問失礼します。
-
csvファイルを開かずに文字を検...
-
ファイル名の先頭にアンダース...
-
CSVファイルへの保存の際、デー...
-
ファイルを記録してあるセクタ...
-
テキストファイルの最終行を削...
-
SGファイルって何ですか?
-
ドラッグアンドドロップでファ...
-
分割コンパイルの#defineについて
-
VBに、Cのincludeのようなもの...
-
fopenできる上限の変更
-
グローバル変数のよくない使い...
-
ファイルの結合
-
大きいサイズのテキストファイ...
-
iniファイルに追記がしたいです。
-
バッチで118項目のCSVを処理し...
-
ハッシュの計算時間について
-
C言語のfopenについて教えてく...
-
Javascript で INI の読み書き
-
Excelマクロでの再読込み方法
おすすめ情報