回答編集履歴
1
返信に対する追記
answer
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
あと、Worksheets("節点値").Activate でシートを指定するのではなく、直接Worksheetオブジェクトを参照するほうがいいでしょう。
|
5
5
|
|
6
6
|
上記の点を考慮して、自分なりに、コードを書き直してみました。
|
7
|
-
```
|
7
|
+
```VB
|
8
8
|
Public Sub 結果作成1()
|
9
9
|
Dim outStr As String
|
10
10
|
Dim C As Long, R As Long
|
@@ -13,7 +13,7 @@
|
|
13
13
|
With ThisWorkbook.Worksheets("節点値")
|
14
14
|
For C = 2 To .Range("XFD2").End(xlToLeft).Column '時刻歴繰り返し 'B列から開始
|
15
15
|
For R = 2 To .Range("b1048576").End(xlUp).Row '節点数繰り返し '2行目から開始
|
16
|
-
outStr = outStr & Cells(R, C) & vbCrLf
|
16
|
+
outStr = outStr & .Cells(R, C) & vbCrLf
|
17
17
|
Next
|
18
18
|
outStr = outStr & "-1, 0.," & vbCrLf '列ごとの終了フラグ記入
|
19
19
|
Next
|
@@ -38,4 +38,48 @@
|
|
38
38
|
Set FSO = Nothing
|
39
39
|
|
40
40
|
End Sub
|
41
|
+
```
|
42
|
+
|
43
|
+
返信に対する追記
|
44
|
+
---
|
45
|
+
|
46
|
+
> 書き込みを行う前にいくらか他のセルに打ち込んだ文字列を
|
47
|
+
> Print 構文を使い事前に書きこませたいです。その場合にはどのようにすれば良いでしょうか?
|
48
|
+
|
49
|
+
Print は、
|
50
|
+
Open 出力ファイル For Output As #IntFlNo
|
51
|
+
で開いたファイルに1行ずつ書き込んでいくものです。
|
52
|
+
Open メソッドと Print メソッドはセットになります。
|
53
|
+
ですので、今回の回答のコードでは Print は使いません。
|
54
|
+
|
55
|
+
```VB
|
56
|
+
With FSO.CreateTextFile(OutFile)
|
57
|
+
.Write outStr
|
58
|
+
.Close
|
59
|
+
End With
|
60
|
+
```
|
61
|
+
|
62
|
+
は、変数outStr に格納されている文字列を一気にファイルに書き出すものです。
|
63
|
+
|
64
|
+
これを理解しておいてください。
|
65
|
+
|
66
|
+
> などのようにメモ書きをヘッダーとして書きこんでおきたいという事です。
|
67
|
+
|
68
|
+
変数 outStr に事前に希望の文字列を代入しておくだけです。
|
69
|
+
|
70
|
+
「メモ書き」がどこにあるのか不明ですが、
|
71
|
+
「メモ書き」というシートのA1セルにあるなら、
|
72
|
+
|
73
|
+
|
74
|
+
```VB
|
75
|
+
Public Sub 結果作成1()
|
76
|
+
Dim outStr As String
|
77
|
+
Dim C As Long, R As Long
|
78
|
+
|
79
|
+
outStr = ThisWorkbook.Worksheets("メモ書き").Cells(1, 1) 'これを挿入
|
80
|
+
|
81
|
+
'出力文字列生成
|
82
|
+
With ThisWorkbook.Worksheets("節点値")
|
83
|
+
|
84
|
+
'以下略
|
41
85
|
```
|