Excel2003を使用しております。
とあるExcelファイルを開くと、フォームを開く設定にして有ります。
朝の8時にフォームの終了ボタンの処理を自動で行いたいので、コードを追加しました
Private Sub Workbook_Open()
Worksheets("シート1").Activate
Range("A1").Select
frmテスト.Show vbModeless
Application.OnTime TimeValue("08:00:00"), "cmd終了" '←追加したコード
End Sub
frmテストのフォームにあるコードはこんな感じです
Private Sub cmd終了_Click()
コードたくさん~
End Sub
朝の8時にfrmテストのフォームにある、終了ボタンのコードを実行させたいのですが、8時になるとエラーが出ます。
マクロ "C\Documents and Setting\ユーザー名\デスクトップ\ファイル名.xls'!cmd終了'が見付かりません。
と、表示されます。
宣言の仕方が悪いのでしょうか?
Excel2003を使用しております。
とあるExcelファイルを開くと、フォームを開く設定にして有ります。
朝の8時にフォームの終了ボタンの処理を自動で行いたいので、コードを追加しました
Private Sub Workbook_Open()
Worksheets("シート1").Activate
Range("A1").Select
frmテスト.Show vbModeless
Application.OnTime TimeValue("08:00:00"), "cmd終了" '←追加したコード
End Sub
frmテストのフォームにあるコードはこんな感じです
Private Sub cmd終了_Click()
コードたくさん~
End Sub
朝の8時にfrmテストのフォームにある、終了ボタンのコードを実行させたいのですが、8時になるとエラーが出ます。
マクロ "C\Documents and Setting\ユーザー名\デスクトップ\ファイル名.xls'!cmd終了'が見付かりません。
と、表示されます。
宣言の仕方が悪いのでしょうか?
テキストボックス内に×の文字列があれば、エンターキーを押すたびに×の前にカーソルが行きます。
最後の×の後ろにもカーソルが行くようにしたいのですがご教授くださいませ。
If .Value Like "*×*×*" Then
s = .SelStart
ss = InStr(s + 2, .Value, "×")
If ss >= s + 2 Then
.SelStart = ss - 1
KeyCode = 0
End If
ElseIf .Value Like "*×*×*×*×" Then
s = .SelStart
ss = InStr(s + 2, .Value, "×")
If ss >= s + 2 Then
.SelStart = ss - 1
KeyCode = 0
End If
早速ですがExcelVBAについて質問です。
年齢がN列にあるとき、M列に年代を入れたいと思います。(例:19才なら10代、30才なら30代)
以下のように作成しましたが、すべてに20と入ったり正常に動作しないときがあります。
Excelは2003で作成していますが、いずれ2007でも使いたいです。
もっと正確に実行できるコードを教えてください。
ワークシート関数での解決は望んでいません。データ数も多く他の作業もマクロで処理するのでマクロを希望しています。よろしくお願いします。
--------------------------
Sub ByAge()
Range("N1").Value = "年代別"
Dim i As Long, N As Integer
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(i, 13).Value >= 60 And Cells(i, 13).Value < 70 Then
Cells(i, 14).Value = 60
ElseIf Cells(i, 13).Value >= 50 And Cells(i, 13).Value < 60 Then
Cells(i, 14).Value = 50
ElseIf Cells(i, 13).Value >= 50 And Cells(i, 13).Value < 60 Then
Cells(i, 14).Value = 40
ElseIf Cells(i, 13).Value >= 30 And Cells(i, 13).Value < 40 Then
Cells(i, 14).Value = 30
ElseIf Cells(i, 13).Value >= 20 And Cells(i, 13).Value < 30 Then
Cells(i, 14).Value = 20
End If
Next i
MsgBox "完了!"
End Sub
--------------------------
テキストボックス内に×の文字列があれば、エンターキーを押すたびに×の前にカーソルが行きます。
最後の×の後ろにもカーソルが行くようにしたいのですがご教授くださいませ。
If .Value Like "*×*×*" Then
s = .SelStart
ss = InStr(s + 2, .Value, "×")
If ss >= s + 2 Then
.SelStart = ss - 1
KeyCode = 0
End If
ElseIf .Value Like "*×*×*×*×" Then
s = .SelStart
ss = InStr(s + 2, .Value, "×")
If ss >= s + 2 Then
.SelStart = ss - 1
KeyCode = 0
End If
早速ですがExcelVBAについて質問です。
年齢がN列にあるとき、M列に年代を入れたいと思います。(例:19才なら10代、30才なら30代)
以下のように作成しましたが、すべてに20と入ったり正常に動作しないときがあります。
Excelは2003で作成していますが、いずれ2007でも使いたいです。
もっと正確に実行できるコードを教えてください。
ワークシート関数での解決は望んでいません。データ数も多く他の作業もマクロで処理するのでマクロを希望しています。よろしくお願いします。
--------------------------
Sub ByAge()
Range("N1").Value = "年代別"
Dim i As Long, N As Integer
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(i, 13).Value >= 60 And Cells(i, 13).Value < 70 Then
Cells(i, 14).Value = 60
ElseIf Cells(i, 13).Value >= 50 And Cells(i, 13).Value < 60 Then
Cells(i, 14).Value = 50
ElseIf Cells(i, 13).Value >= 50 And Cells(i, 13).Value < 60 Then
Cells(i, 14).Value = 40
ElseIf Cells(i, 13).Value >= 30 And Cells(i, 13).Value < 40 Then
Cells(i, 14).Value = 30
ElseIf Cells(i, 13).Value >= 20 And Cells(i, 13).Value < 30 Then
Cells(i, 14).Value = 20
End If
Next i
MsgBox "完了!"
End Sub
--------------------------
こちらの識者の方々にはいつもお世話になっています。
VBAの質問です。
環境は下記になります。
OS=windowsXP SP3
Office=Excel2003(11.8347.8403) SP3
A列に"aa"の文字列が含まれる場合、その行を非表示にして、印刷する。
"aa"の文字列が無かった場合は印刷しない。
というコードを書きたいのですが、分からず困っています。
Dim EndRow As Long
Dim i As Long
EndRow = cells(Rows.Count, 1).End(xlup).Row
For i = 1 To EndRow
If Cells(i, 1) = "aa" Then Rows(i).EntireRow.Hidden = 1
Next
で一行ずつ調べていって非表示にすることはできましたが、その後がわかりません。
上記のような場合、どのようなコードが適していますでしょうか。
なお、上記For Next文は必ず使いたいというわけではありません。
質問に不備不足等ございましたらご指摘ください。
ご面倒お掛けしますがよろしくお願いします。
こちらの識者の方々にはいつもお世話になっています。
VBAの質問です。
環境は下記になります。
OS=windowsXP SP3
Office=Excel2003(11.8347.8403) SP3
A列に"aa"の文字列が含まれる場合、その行を非表示にして、印刷する。
"aa"の文字列が無かった場合は印刷しない。
というコードを書きたいのですが、分からず困っています。
Dim EndRow As Long
Dim i As Long
EndRow = cells(Rows.Count, 1).End(xlup).Row
For i = 1 To EndRow
If Cells(i, 1) = "aa" Then Rows(i).EntireRow.Hidden = 1
Next
で一行ずつ調べていって非表示にすることはできましたが、その後がわかりません。
上記のような場合、どのようなコードが適していますでしょうか。
なお、上記For Next文は必ず使いたいというわけではありません。
質問に不備不足等ございましたらご指摘ください。
ご面倒お掛けしますがよろしくお願いします。
こちらの識者の方々にはいつもお世話になっています。
VBAの質問です。
環境は下記になります。
OS=windowsXP SP3
Office=Excel2003(11.8347.8403) SP3
A列に"aa"の文字列が含まれる場合、その行を非表示にして、印刷する。
"aa"の文字列が無かった場合は印刷しない。
というコードを書きたいのですが、分からず困っています。
Dim EndRow As Long
Dim i As Long
EndRow = cells(Rows.Count, 1).End(xlup).Row
For i = 1 To EndRow
If Cells(i, 1) = "aa" Then Rows(i).EntireRow.Hidden = 1
Next
で一行ずつ調べていって非表示にすることはできましたが、その後がわかりません。
上記のような場合、どのようなコードが適していますでしょうか。
なお、上記For Next文は必ず使いたいというわけではありません。
質問に不備不足等ございましたらご指摘ください。
ご面倒お掛けしますがよろしくお願いします。
標準モジュールに書いた、Sub Auto_Open()なら、ボタンにAuto_Openを登録するなどで、ブックの起動時以外でも呼び出せますが、ThisWorkbookに書いた、Private Sub Workbook_Open()は、ボタンにWorkbook_Openを登録しても作動しません。
どのようにすればよいのでしょうか?
標準モジュールに書いた、Sub Auto_Open()なら、ボタンにAuto_Openを登録するなどで、ブックの起動時以外でも呼び出せますが、ThisWorkbookに書いた、Private Sub Workbook_Open()は、ボタンにWorkbook_Openを登録しても作動しません。
どのようにすればよいのでしょうか?
テキストボックス内に×の文字列があれば、エンターキーを押すたびに×の前にカーソルが行きます。
最後の×の後ろにもカーソルが行くようにしたいのですがご教授くださいませ。
If .Value Like "*×*×*" Then
s = .SelStart
ss = InStr(s + 2, .Value, "×")
If ss >= s + 2 Then
.SelStart = ss - 1
KeyCode = 0
End If
ElseIf .Value Like "*×*×*×*×" Then
s = .SelStart
ss = InStr(s + 2, .Value, "×")
If ss >= s + 2 Then
.SelStart = ss - 1
KeyCode = 0
End If