図16:発注情報.txtに書き込みたい個所を選択する |
![]() |
Sub AppendHattyu()
myFRow = Selection(1).Row
myLRow = Selection(Selection.Count).Row
' 選択範囲のうち「先頭のセル」の行番号と
'「最後のセル」の行番号を取得し、
' 書き出すデータの範囲を決定する
Dim myItem(1 To 6)
Sub AppendHattyu()
myFRow = Selection(1).Row
myLRow = Selection(Selection.Count).Row
' 選択範囲のうち「先頭のセル」の行番号と、
' 「最後のセル」の行番号を取得し、書出すデータの範囲を決定する
Dim myItem(1 To 6)
' 日付・担当者・顧客名・商品・数量・NO.の6つの情報を
' 格納するために配列形式の変数を宣言する
Open "¥¥Jimu¥発注¥発注情報.txt" _
For Append Lock Read Write As #1
' テキストファイルをAppend(追加モード)で開き、
' 同時に他のユーザーがテキストファイルを開けないようにロック
For i = myFRow To myLRow
' 選択範囲の行に対して処理を行なう
If Cells(i, 1) = "" Then
' 選択したデータがすでに書き込まれていないかのチェック
For j = 2 To 7
myItem(j) = Cells(i, j)
Next
' 選択範囲行の2列目〜7列目のデータを配列に格納する
Write #1, Format(myItem(1), "m月d日"), _
myItem(2), myItem(3), myItem(4), _
myItem(5), myItem(6)
' 配列に格納したデータを順番に追加する
Cells(i, 1) = "済"
' データのある行の1列目に書き込み完了のマークを入れる
End If
Next
Close #1
' テキストファイルの編集を終了する
Exit Sub
End Sub
特定のテキストファイルなどに追加してデータを書き込むには、Openステートメントでファイルを指定した後、「Append」モード(追加モード)の指定を行ないます。その後、「Selectionプロパティ」を使用して「現在の選択範囲」に含まれる行をチェックし、該当行の項目を「発注情報.txt」に追加してゆきます。最後に「Closeステートメント」を使用してテキストファイルの編集を終了します。実行前と実行後の「発注情報.txt」の情報を見比べると、選択範囲のデータが追加されているのが確認できます(図17)。また、今回はサンプルコードということで省略してありますが、同時に2人以上のユーザーが「発注情報.txt」をOpenする場合、2人目以降はOpenすることができずエラーとなってしまうので、エラー用の処理も追加してあげると、より洗練されたアプリケーションが作成できるでしょう。
図17:選択範囲のデータが発注情報.txtに追加される |
![]() |
また、ユーザーフォームを作成する際にも、データ入力の際にはユーザーフォームは現在選択しているセルや範囲などのアクティブな行に対してデータの書き込みや追加などの処理を行なう、というような、統一された操作の方向づけを行なってあげると、ユーザーにとってはより使いやすいアプリケーションとなるでしょう。