teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

追記

2021/01/26 06:23

投稿

退会済みユーザー
answer CHANGED
@@ -10,7 +10,7 @@
10
10
  Open strFNAME For Output As #1 'ファイル番号1で新規作成
11
11
  ```
12
12
  ファイルの作成部分はこのコードになります。
13
- VBAはopenの宣言と共に自動的にファイルが作成されます。(少しラグがあります)
13
+ VBAはopenの宣言と共にファイルが存在しなければ自動的にファイルが作成されます。(少しラグがありますし同名ファイルが存在すれば動作は変わります
14
14
  F8でコードを1行ずつ進めていけばこのタイミングでファイルが生成されているのは確認できます。
15
15
 
16
16
  質問では1セルごとに作成したいとのことなのですが命名規則などが分からないのでforループで作成します。

2

誤りの修正

2021/01/26 06:23

投稿

退会済みユーザー
answer CHANGED
@@ -3,16 +3,17 @@
3
3
  まず下記サイトのサンプルコードを前提として解説します。
4
4
  [Excel VBA テキストファイルで.htmlの雛型を作成する](http://www.ken3.org/vba/backno/vba165.html)
5
5
  ```VBA
6
- Dim csvFile As String
6
+ Dim strFNAME As String 'ファイル名格納用
7
- csvFile = ActiveWorkbook.Path & "\data.csv"
8
7
 
8
+ 'ブックと同じ位置にtest165.htmlを作成する
9
+ strFNAME = ThisWorkbook.Path & "\test165.html" 'ファイル名の作成
9
- Open csvFile For Output As #1
10
+ Open strFNAME For Output As #1 'ファイル番号1で新規作成
10
11
  ```
11
12
  ファイルの作成部分はこのコードになります。
12
13
  VBAはopenの宣言と共に自動的にファイルが作成されます。(少しラグがあります)
13
14
  F8でコードを1行ずつ進めていけばこのタイミングでファイルが生成されているのは確認できます。
14
15
 
15
- 質問では1セルごとに作成したいとのことなのでforループで作成します。
16
+ 質問では1セルごとに作成したいとのことなのですが命名規則などが分からないのでforループで作成します。
16
17
 
17
18
  ```VBA
18
19
  Sub test001()
@@ -39,5 +40,4 @@
39
40
  最終行の取得は
40
41
  [最終行の取得](https://excel-ubara.com/excelvba1/EXCELVBA318.html)
41
42
  をみてください。
42
- これで想定通りの動きになりますか?
43
+ これで想定通りの動きになりますか?
43
- 命名規則の記載がないため今回はループ変数を流用しました。

1

追記

2021/01/26 06:21

投稿

退会済みユーザー
answer CHANGED
@@ -1,1 +1,43 @@
1
- 出来るか出来ないかでいえば出来ますね
1
+ ~~出来るか出来ないかでいえば出来ますね。~~
2
+ 質問文が修正されたので追記。
3
+ まず下記サイトのサンプルコードを前提として解説します。
4
+ [Excel VBA テキストファイルで.htmlの雛型を作成する](http://www.ken3.org/vba/backno/vba165.html)
5
+ ```VBA
6
+ Dim csvFile As String
7
+ csvFile = ActiveWorkbook.Path & "\data.csv"
8
+
9
+ Open csvFile For Output As #1
10
+ ```
11
+ ファイルの作成部分はこのコードになります。
12
+ VBAはopenの宣言と共に自動的にファイルが作成されます。(少しラグがあります)
13
+ F8でコードを1行ずつ進めていけばこのタイミングでファイルが生成されているのは確認できます。
14
+
15
+ 質問では1セルごとに作成したいとのことなのでforループで作成します。
16
+
17
+ ```VBA
18
+ Sub test001()
19
+
20
+ Dim strFNAME As String 'ファイル名格納用
21
+
22
+ For i = 1 To 10
23
+
24
+ 'ブックと同じ位置に変数名iの.htmlを作成する
25
+ strFNAME = ThisWorkbook.Path & "\" & i & ".html" 'ファイル名の作成
26
+ Open strFNAME For Output As #1 'ファイル番号1で新規作成
27
+
28
+ 'データ書き込み、
29
+ Print #1, ActiveSheet.Cells(i, 3).Value
30
+
31
+ Close #1 '開いたら閉じようね
32
+
33
+ Next
34
+ End Sub
35
+ ```
36
+ このコードであればactivesheetのC列を上から10セル分データを書き出します。
37
+ また、変数でセル位置も指定しているので中身のデータも個別になっています。
38
+ C列に1~10までの数値を入れれば確認できるでしょう。
39
+ 最終行の取得は
40
+ [最終行の取得](https://excel-ubara.com/excelvba1/EXCELVBA318.html)
41
+ をみてください。
42
+ これで想定通りの動きになりますか?
43
+ 命名規則の記載がないため今回はループ変数を流用しました。