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

回答編集履歴

1

返信に対する追記

2017/01/21 08:23

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -4,7 +4,7 @@
4
4
  あと、Worksheets("節点値").Activate でシートを指定するのではなく、直接Worksheetオブジェクトを参照するほうがいいでしょう。
5
5
 
6
6
  上記の点を考慮して、自分なりに、コードを書き直してみました。
7
- ```VBA
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
  ```