
No.3ベストアンサー
- 回答日時:
No.1です。
すでにNo.2さんが的確な回答をされていますので、余計なお世話かもしれませんが・・・
強制的に上書き保存させるだけです。
Private Sub Workbook_Open()
With Worksheets("Sheet1").Range("A1")
.Value = .Value + 1
End With
ThisWorkbook.Save
End Sub
こんな感じで m(_ _)m
No.4
- 回答日時:
こんにちは。
私も少し考えてみました。
ただし、
> セルa1に表示回数
これでは、Saved プロパティが変わってしまいますので、ステータスバーを使うことにしました。
最初の一回目だけは、1が立つけれども、それは表示には出ません。2度目からです。
ファイル・ベース名.ini ファイルに書き込まれます。もし、これが消されることが心配なら、別の場所の方がよいかもしれません。
'//ThisWorkbook モジュール
Private Declare Function WritePrivateProfileString Lib "kernel32.dll" Alias _
"WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal _
lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As _
Long
Private Declare Function GetPrivateProfileInt Lib "kernel32.dll" Alias _
"GetPrivateProfileIntA" (ByVal lpApplicationName As String, ByVal lpKeyName _
As String, ByVal nDefault As Long, ByVal lpFileName As String) As Long
Private Sub FirstIniWrite()
Dim sFN As String
Dim msg As Long
Dim Ret As Long
Dim fn As String
Const sName As String = "Count"
Const myKey As String = "Times"
Const vbMyError As Integer = 513
On Error GoTo ErrHandler
fn = ThisWorkbook.Name
fn = Left(fn, InStrRev(fn, ".") - 1)
sFN = Application.DefaultFilePath & "\" & fn & ".ini"
If Dir(sFN) <> "" Then
msg = iniRead(sFN)
msg = CLng(msg) + 1
Ret = WritePrivateProfileString(sName, myKey, CStr(msg), sFN)
Application.StatusBar = "times: " & CStr(msg)
Else
Ret = WritePrivateProfileString(sName, myKey, "1", sFN)
End If
If Ret = 0 Then
MsgBox "iniファイルの作成に失敗ししまた。", vbCritical
Err.Raise vbMyError
End If
Exit Sub
ErrHandler:
MsgBox Err.Description
End Sub
Private Function iniRead(ByVal sFN As String) As Long
Dim sName As String
Dim myKey As String
Dim deFault As Long
Dim Ret As Long
sName = "Count"
myKey = "Times"
deFault = 1
Ret = GetPrivateProfileInt(sName, myKey, deFault, sFN)
iniRead = Ret
End Function
Private Sub Workbook_Open()
Call FirstIniWrite
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Application.StatusBar = False 'シートに入力すれば、ステータスバーの回数は消えます。
End Sub
No.1
- 回答日時:
こんばんは!
>セルa1に表示回数
Sheet1のA1セルとします。
Private Sub Workbook_Open()
With Worksheets("Sheet1").Range("A1")
.Value = .Value + 1
End With
End Sub
で大丈夫だと思います。m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
あああ..ああい..ああう とい...
-
エクセルで選択したセルがディ...
-
VBAバーコード照合 バーコード...
-
エクセルVBAで、ユーザーボック...
-
Excel UserForm の表示位置
-
C# DataGridViewで複数選択した...
-
「段」と「行」の違いがよくわ...
-
Excelの行数、列数を増やしたい...
-
[Excel]ADODBでNull変換されて...
-
ワイルドカード「*」を使うとう...
-
マクロの「SaveAs」でエラーが...
-
エクセル 上下で列幅を変えるには
-
VBAマクロ実行時エラーの修正に...
-
Alt+Shift+↑を一括で行うには、...
-
VBA シートをコピーする際に Co...
-
複数の列の値を結合して別の列...
-
【エクセル】フリーワード検索...
-
エクセル マクロで数値が変っ...
-
複数のエクセルファイルの指定...
-
Worksheets メソッドは失敗しま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
あああ..ああい..ああう とい...
-
VBAにて『元に戻すボタン』を作...
-
select caseの入れ子
-
VBAバーコード照合 バーコード...
-
vbs 文字位置を中央に
-
エクセルで選択したセルがディ...
-
指数関数近似を行うプログラム...
-
エクセルで簡単なオートシェイ...
-
VBAについて
-
xlookup関数の引数を利用して検...
-
エクセルVBAのプログラム
-
スペース区切りのAND検索
-
VBA コード エラー対処
-
最大値が0b100である3bit同士の...
-
マクロにてセルに文字表示
-
targetでクリックしたら○
-
日付け関数について
-
プログラムの記述方法について
-
【マクロ】実行時エラー '424':...
-
「段」と「行」の違いがよくわ...
おすすめ情報
有難うございます。
しかし、問題がありました。
保存しないで閉じるとカウントが
されません。なにか、いい方法はないでしょぅか
Workbooks. Sheet name. Saveでやりましたがダメでした