投稿日 | : 2003/07/07(Mon) 21:41 |
投稿者 | : tea |
Eメール | : |
URL | : |
タイトル | : Re^4: MSFlexGridについての質問です。 |
以下のようにコードを書き直して見ました。
結果は保存時にエラーは出なくなりましたが、
.csvファイルを再度開くとMSFlexGrid2(0)の内容は失われ
MSFlexGrid2(0),(1)共にMSFlexGrid2(1)が表示され、さら
にMSFlexGrid2(1)は同じ内容が2度表示されます。
どうか教えてください。
よろしくお願いします。
Private Sub sFileSave_Name()
'データの名前を付けて保存処理'
Dim lngCountl As Long 'ループのカウンタ'
Dim name As String '名前'
Dim Shot As String 'シュート回数'
Dim ThreePShot As String '3ポイントシュート成功回数'
Dim TwoPShot As String '2ポイントシュート成功回数'
Dim FreeThrow As String 'フリースロー成功回数'
Dim Soutokuten As String '総得点'
Dim Rebound As String 'リバウンド獲得回数'
Dim Assist As String 'アシスト成功回数'
Dim Steel As String 'スティール成功回数'
Dim BlockShot As String 'ブロックショット成功回数'
Dim Foul As String 'ファウル回数'
'ファイルナンバー変数を宣言します。'
Dim intFileNoA As Integer 'ファイルナンバーA'
Dim intFileNoB As Integer 'ファイルナンバーB'
Dim intFileNoC As Integer 'ファイルナンバーC'
'キャンセルボタンが押されたらエラーとして通知する'
CommonDialog1.CancelError = True
'エラーの場合の飛び先指定'
On Error GoTo exit_error
'ダイアログボックスの形を決める'
CommonDialog1.Filter = "シート (*.csv)|*.csv"
CommonDialog1.Flags = cdlOFNExplorer Or cdlOFNLongNames Or _
cdlOFNNoChangeDir Or cdlOFNOverwritePrompt
'「名前を付けて保存」ダイアログボックスを表示'
CommonDialog1.ShowSave
'ファイル名をグローバル変数にセット'
file_name = CommonDialog1.FileName
intFileNoA = FreeFile
Open file_name For Output As #intFileNoA
With MSFlexGrid2(0)
'一旦非表示にする'
.Visible = False
'現在の状態を再読み込み'
For lngCountl = 1 To .Rows - 1
.Row = lngCountl
.Col = 1
name = .Text
.Col = 2
Shot = .Text
.Col = 3
ThreePShot = .Text
.Col = 4
TwoPShot = .Text
.Col = 5
FreeThrow = .Text
.Col = 6
Soutokuten = .Text
.Col = 7
Rebound = .Text
.Col = 8
Assist = .Text
.Col = 9
Steel = .Text
.Col = 10
BlockShot = .Text
.Col = 11
Foul = .Text
Write #intFileNoA, name, Shot, ThreePShot, TwoPShot, FreeThrow, _
Soutokuten, Rebound, Assist, Steel, Foul
Next lngCountl
Close #intFileNoA
'カレントセルを反転表示に戻す'
.Visible = True
.Row = 1
.Col = 1
.TopRow = 1
.SetFocus
End With
intFileNoB = FreeFile
Open file_name For Output As #intFileNoB
With MSFlexGrid2(1)
'一旦非表示にする'
.Visible = False
'現在の状態を再読み込み'
For lngCountl = 1 To .Rows - 1
.Row = lngCountl
.Col = 1
name = .Text
.Col = 2
Shot = .Text
.Col = 3
ThreePShot = .Text
.Col = 4
TwoPShot = .Text
.Col = 5
FreeThrow = .Text
.Col = 6
Soutokuten = .Text
.Col = 7
Rebound = .Text
.Col = 8
Assist = .Text
.Col = 9
Steel = .Text
.Col = 10
BlockShot = .Text
.Col = 11
Foul = .Text
Write #intFileNoB, name, Shot, ThreePShot, TwoPShot, FreeThrow, _
Soutokuten, Rebound, Assist, Steel, Foul
Next lngCountl
Close #intFileNoB
intFileNoC = intFileNoA
intFileNoC = intFileNoB
Close #intFileNoC
'カレントセルを反転表示に戻す'
.Visible = True
.Row = 1
.Col = 1
.TopRow = 1
.SetFocus
End With
'ラベル:終了処理'
exit_syori:
'フォームに名前を付ける'
frmGameStats.Caption = file_name
Exit Sub
'エラー処理'
exit_error:
'メッセージボックスを表示'
MsgBox Err.Description
Resume exit_syori
End Sub