
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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
- Excel(エクセル) エクセルで、 A1セルに「A」という値、 B1セルに「B」という値が入っています。 どちらも表示形式 5 2023/02/22 23:05
- Excel(エクセル) 表計算ソフトcalcにおいて、1時間10分を1.1と表記する方法とそれらを集計する方法は? 4 2022/04/06 16:54
- Excel(エクセル) エクセルのことで教えてください。 A1セルに、 別シートのA1セルが1のときは「A」、2のときは「B 4 2023/02/24 23:08
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) エクセルで日付に続けて連番を表示したい 6 2022/05/25 23:33
- Excel(エクセル) エクセルの関数式を教えてください。 2 2022/11/29 21:09
- Excel(エクセル) ある範囲のセルに何を入力すると、別のセルに○を表示させる 3 2022/04/05 15:51
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/11 14:50
- Visual Basic(VBA) 昨日、質問した件『VBA にて、条件付き書式で背景色を設定しているセルの範囲で、背景色付きのセルをカ 4 2022/04/07 14:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ある一定時間の最高値と最小値...
-
VBAの変数をエクセルで表示
-
targetでクリックしたら○
-
日付け関数について
-
マクロにてセルに文字表示
-
エクセルで簡単なオートシェイ...
-
VBAマクロにての絶対値
-
特定の文字がある行以外を削除...
-
複数のエクセルファイルとシー...
-
vba 2つの条件が一致したら...
-
Excel UserForm の表示位置
-
VBA シートをコピーする際に Co...
-
任意のセルでマクロを実行させたい
-
VBAでの SendKeysの変数指定方法
-
エクセルのマクロ
-
「段」と「行」の違いがよくわ...
-
結合されたセルを列方向に検索...
-
ExcelVBAでテキストルーレット...
-
Changeイベントでの複数セルの...
-
別ブックをダイアログボックス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
あああ..ああい..ああう とい...
-
VBAバーコード照合 バーコード...
-
VBAにて『元に戻すボタン』を作...
-
vbs 文字位置を中央に
-
select caseの入れ子
-
エクセルで選択したセルがディ...
-
配列を含んだ構造体への値設定...
-
エクセルを開いたらカウントし...
-
vb 配列の再検索について
-
すべての組合せをシートに出力...
-
ASPでバイナリ(ビッグエンディ...
-
「段」と「行」の違いがよくわ...
-
VBA シートをコピーする際に Co...
-
エクセルで離れた列を選択して...
-
VBAマクロ実行時エラーの修正に...
-
Excelで、あるセルの値に応じて...
-
別ブックをダイアログボックス...
-
Worksheets メソッドは失敗しま...
-
【Excel関数】UNIQUE関数で"0"...
-
マクロの「SaveAs」でエラーが...
おすすめ情報
有難うございます。
しかし、問題がありました。
保存しないで閉じるとカウントが
されません。なにか、いい方法はないでしょぅか
Workbooks. Sheet name. Saveでやりましたがダメでした