質問編集履歴

5

コードを質問文に記載

2022/07/29 04:53

投稿

PIERROT
PIERROT

スコア0

test CHANGED
File without changes
test CHANGED
@@ -52,3 +52,71 @@
52
52
  可能であれば、VBAマクロのコード内容をご確認いただき誤っている箇所がありましたらご教示いただけますでしょうか。
53
53
  お手数をお掛けしますが、何卒宜しくお願い致します。
54
54
 
55
+ >can110様、その他有識者様
56
+ textファイルは指定のディレクトリに作成できたのですが、中身が記載されておりませんでした。
57
+ もし、何か原因等わかる場合、ご教示いただけますでしょうか。
58
+ 尚、エクセル側の記載については大元の依頼文を編集しましたのでご確認いただければ幸いです。
59
+
60
+ --------------
61
+ Enum col '列番号を定義
62
+ HOST名 = 1
63
+ IPアドレス = 2
64
+ ポート番号 = 3
65
+ ユーザー名 = 4
66
+ パスワード = 5
67
+ End Enum
68
+
69
+ Sub main()
70
+
71
+ Dim ws As Worksheet
72
+ Set ws = ThisWorkbook.Sheets("sheet1")
73
+
74
+ Dim fileSysObj
75
+ 'ファイルシステムオブジェクトの生成
76
+ Set fileSysObj = CreateObject("Scripting.FileSystemObject")
77
+
78
+ Dim textFileObj
79
+ 'テキストファイルオブジェクトの生成
80
+ Set textFileObj = fileSysObj.CreateTextFile("C:\Users\XXXXXi\Desktop\test\test.txt", True)
81
+
82
+ Dim r As Long, lastRow As Long
83
+ lastRow = ws.Cells(1, 1).End(xlDown).Row
84
+
85
+ For r = 2 To lastRow
86
+
87
+ 'テキストオブジェクト作成
88
+ Set fs = CreateObject("Scripting.FileSystemObject")
89
+
90
+ 'テキスト本文の文字列を作成
91
+ Dim textBody As String
92
+ textBody = CreateTextBody(ws, r)
93
+
94
+ Next r
95
+
96
+ End Sub
97
+
98
+ ' 機能:Excelシート上の指定行番号のテキスト本文を作成する
99
+ Function CreateTextBody(ws As Worksheet, r As Long) As String
100
+
101
+ Dim Hostname As String, IPaddress As String, Port As String, Username As String, Password As String
102
+ Hostname = ws.Cells(r, col.HOST名).Value
103
+ IPaddress = ws.Cells(r, col.IPアドレス).Value
104
+ Port = ws.Cells(r, col.ポート番号).Value
105
+ Username = ws.Cells(r, col.ユーザー名).Value
106
+ Password = ws.Cells(r, col.パスワード).Value
107
+
108
+ Dim body As String 'テキスト本文
109
+ body = Replace(body, "(HOST名)", Hostname)
110
+ body = Replace(body, "(IPアドレス)", IPaddress)
111
+ body = Replace(body, "(ポート番号)", Port)
112
+ body = Replace(body, "(ユーザー名)", Username)
113
+ body = Replace(body, "(パスワード)", Password)
114
+
115
+ CreateTextBody = body
116
+
117
+ End Function
118
+ Sub ttl作成()
119
+
120
+ End Sub
121
+ --------------
122
+

4

依頼文の修正

2022/07/29 01:30

投稿

PIERROT
PIERROT

スコア0

test CHANGED
File without changes
test CHANGED
@@ -40,13 +40,15 @@
40
40
  waitregex '^HOST名.*#'
41
41
  sendln "コマンド4"
42
42
 
43
- test.xlsxのSheet1>
43
+ <Sheet1>
44
- ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-07-28/74a0c6ef-a125-4ce6-899b-bb0a4891b93c.jpeg)
44
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-07-29/cce8ca1c-ff31-4369-b15c-fdb2dd79b73c.jpeg)
45
45
 
46
- test.xlsxのSheet2>※コマンドについてはsheet2のデータ参照するようにしたい
46
+ VBAマクロを実行した結果、HOST1~10に対する『HOST名_IPアドレス.ttl』が作成実現したいです。
47
- ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-07-28/ddcbe11d-1823-45b1-8741-042151ef7894.jpeg)
48
47
 
48
+ コメントをくださったcan110様から以下のURLを参考に作成可能というお話をいただきコードを作成しています。
49
+ 参考URL:https://moripro.net/vba-outlook-createmail/
50
+
49
- VBAマクロを実行た結果、HOST1~10に対する『HOST名_IPアドレ.ttl』が作成される想定です。
51
+ もっとも、現状とてはテキトファイル指定のフォルダに作成はできるものの、中身が記載されていない状態です。
50
- 可能であれば、VBAマクロのコード内容をご確認いただけますでしょうか。
52
+ 可能であれば、VBAマクロのコード内容をご確認いただき誤っている箇所がありましたらご教示いただけますでしょうか。
51
53
  お手数をお掛けしますが、何卒宜しくお願い致します。
52
54
 

3

依頼文の編集

2022/07/29 00:57

投稿

PIERROT
PIERROT

スコア0

test CHANGED
File without changes
test CHANGED
@@ -47,7 +47,6 @@
47
47
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-07-28/ddcbe11d-1823-45b1-8741-042151ef7894.jpeg)
48
48
 
49
49
  VBAマクロを実行した結果、HOST1~10に対する『HOST名_IPアドレス.ttl』が作成される想定です。
50
- 可能であれば、VBAマクロのコード内容を作成していただけますでしょうか。
50
+ 可能であれば、VBAマクロのコード内容をご確認いただけますでしょうか。
51
- 中身を拝見させていただければ自分で調べて内容は理解できると思っています。
52
51
  お手数をお掛けしますが、何卒宜しくお願い致します。
53
52
 

2

pythonでの実行からVBAマクロによる実行に変更

2022/07/28 07:09

投稿

PIERROT
PIERROT

スコア0

test CHANGED
@@ -1 +1 @@
1
- エクセル内のIPアドレスやポート、ホスト名、コマンドをpythonを用いて、teratermマクロの内容に沿って出力し、 ログ収集用のteratermマクロを作成する方法
1
+ エクセル内のIPアドレスやポート、ホスト名、コマンドをVBAマクロを用いて、teratermマクロの内容に沿って出力し、 ログ収集用のteratermマクロを作成する方法
test CHANGED
File without changes

1

Pythonでの実行からVBAマクロでの実行に変更

2022/07/28 06:52

投稿

PIERROT
PIERROT

スコア0

test CHANGED
File without changes
test CHANGED
@@ -1,10 +1,10 @@
1
1
  ### 前提
2
2
  経験の浅いネットワークエンジニアです。
3
3
 
4
- エクセル内のIPアドレスやポート、ホスト名、コマンドをpythonを用いて、teratermマクロの形式に沿って出力し、
4
+ エクセル内のIPアドレスやポート、ホスト名、コマンドをVBAマクロを用いて、teratermマクロの形式に沿って出力し、
5
5
  ログ収集用のteratermマクロを作成したいです。
6
6
 
7
- Pythonを用いて以下のteratermマクロのフォーマットにエクセル内の各データを変数として出力し、
7
+ VBAマクロを用いて以下のteratermマクロのフォーマットにエクセル内の各データを変数として出力し、
8
8
  teratermマクロのファイルを『HOST名_IPアドレス.ttl』のような形で必要分作成したい。
9
9
 
10
10
  <変数(エクセルから引っ張りたいデータ)>
@@ -46,8 +46,8 @@
46
46
  <test.xlsxのSheet2>※コマンドについてはsheet2のデータを参照するようにしたい
47
47
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-07-28/ddcbe11d-1823-45b1-8741-042151ef7894.jpeg)
48
48
 
49
- pythonを実行した結果、HOST1~10に対する『HOST名_IPアドレス.ttl』が作成される想定です。
49
+ VBAマクロを実行した結果、HOST1~10に対する『HOST名_IPアドレス.ttl』が作成される想定です。
50
- 可能であれば、Pythonのコード内容を作成していただけますでしょうか。
50
+ 可能であれば、VBAマクロのコード内容を作成していただけますでしょうか。
51
51
  中身を拝見させていただければ自分で調べて内容は理解できると思っています。
52
52
  お手数をお掛けしますが、何卒宜しくお願い致します。
53
53