Sheet上にボタンを作成
ボタンを押すと保存するようにしています!
以前ここでSheet2枚をコピー出来るような
記述教えてもらったのですが・・
1枚ならどう変化して良いか・・
記述を書きましたが
何処が違うか教えて下さい!
Private Sub CommandButton1_Click()
Dim FileName As String
Dim FileExt As String
Dim BkName As String
Dim OldWkbook As Workbook
Dim NewWkbook As Workbook
Const StName1 As String = "ko"
'
Application.DisplayAlerts = False
Set OldWkbook = ActiveWorkbook
'
'ファイル名を取得
BkName = OldWkbook.Sheets(StName1).Range("A1").Value
FileName = BkName & Format(Now, "yyyy-mm") & ".XLS"
'
FileName = InputBox(FileName & "と言う名前で保存します" & vbCr & "よろしければこのままOKをクリックしてください", "保存ファイル名の確認", FileName)
If FileName = "" Then
Exit Sub
Else
If Right(FileName, 4) <> ".XLS" Then
MsgBox "ファイル名が異常です。"
Exit Sub
End If
End If
'
OldWkbook.Sheets(Array(StName1)).Copy
Set NewWkbook = ActiveWorkbook
For wIx = 1 To NewWkbook.Sheets(1).Shapes.Count
NewWkbook.Sheets(1).Shapes(wIx).Delete
Next
NewWkbook.Sheets(1).Name = StName1
'
FileName = "D:\保存\計画\" & FileName
'
If Dir(FileName) <> "" Then
'##ファイルが既に存在する
If MsgBox("既に指定のファイルが存在します。 置き換えますか?", vbOKCancel, "置き換えの確認") = vbCancel Then
NewWkbook.Close savechanges:=False
'##保存せずに終了
Exit Sub
End If
'##指定ファイル置き換え保存
NewWkbook.SaveAs FileName:=FileName
Else
'##ファイルを新規保存
NewWkbook.SaveAs FileName:=FileName
End If
'
NewWkbook.Close savechanges:=False
Application.DisplayAlerts = True
End Sub
教えて下さい!
エクセル2000です。
シート内のすべてのコメントを削除しようと以下のコードを走らせたところ、何番目かでエラーが起き、とまってしまいます。
シート保護は解除してあります。
コメントはすべて同じような書式なのでなぜ途中で止まるのかわかりません。ご教示いただければ幸いです。
Sub TEST()
With ActiveSheet
For i = 1 To .Comments.Count
MsgBox i
.Comments(i).Delete'ここでエラー
Next i
End With
End Sub
過去の質問も参照しましたが
当てはまる物が無くて質問しました!
シート上にボタンを作成して
クリックするとそのシートのみ
指定するファイルにコピーさせたいです!
下記の部分で何処を変化させればよいのでしょうか?
(1)~(2)の部分で困っています。
Private Sub CommandButton1_Click()
Dim FileName As String
Dim FileExt As String
’(1)の質問!○=の部分をSheets(セルのA1の値をファイル名に入れたいです)
FileName = "○"& Format(Now, "yyyy-mm") & ".XLS"
'====
FileName = InputBox(FileName & "と言う名前で保存します" & vbCr & "よろしければこのままOKをクリックしてください", "保存ファイル名の確認", FileName)
If FileName = "" Then
Exit Sub
Else
If Right(FileName, 4) <> ".XLS" Then
MsgBox "ファイル名が異常です。"
Exit Sub
End If
End If
'====
FileName = "D:\保存\ケア\計画\" & FileName
If Dir(FileName) <> "" Then
'##ファイルが既に存在する
If MsgBox("既に指定のファイルが存在します。 上書きしますか?", vbOKCancel, "上書きの確認") = vbCancel Then
'##保存せずに終了
Exit Sub
ElseIf ThisSheets.FullName = FileName Then
'##現在開いているファイルと同じなら上書き保存
ThisSheets.Save
Else
'##指定ファイルを削除した後保存
Kill FileName
ThisSheets.SaveCopyAs FileName:=FileName
End If
Else
'##ファイルを新規保存
ThisSheets.SaveCopyAs FileName:=FileName
End If
ThisSheets.Saved = True
End Sub
(2)ThisSheets&指定してもう一つだけ
保存先にコピーしたいです!つまり
2つのSheetのみ保存させたいのですが・・
ここからどのようにしたら良いのか
お願いします!教えて下さい。
エクセル2003です。宜しくお願い致します。
シートは「メイン」、「本社」、「地方」というのがあり、「本社」と「地方」は全く同じフォーマットで、「メイン」は本社か地方を分類する欄があります。
元のデータを「メイン」シートに入力後、フォームで作成したボタンをクリックしたら、各行が「本社」、「地方」に自動で振り分けられるようにしたいです。(追加で振り分けた際には、最後の空白行にデータが追加されるようにしていただきたいです。)
各シートは以下のようになっています。
・「本社」、「地方」シート
A B C
1通し番号 名前 性別
2
・「メイン」シート
A B C D
1通し番号 名前 性別 場所
2
※1行目は項目名です。
通し番号は、各シートで固定なので、マクロを実行しても変わることはありません。
振り分けたいデータは、「メイン」シートのB2,C2以降のセルです。
振り分け先のシートを見分けているのは、D1セルです。
VBA実行ボタンをクリックしたら、下端のセルに自動でデータが追加されるようにしたいと思っています。(ただし、通し番号は各シート毎の番号が保持されたままです。)つまり、B列、C列の下端に自動で貼り付けられるということです。
マクロ初心者で、ネットをいろいろと調べたのですがどうもうまくいきません。
宜しくご教示いただければ幸いです。
過去の質問も参照しましたが
当てはまる物が無くて質問しました!
シート上にボタンを作成して
クリックするとそのシートのみ
指定するファイルにコピーさせたいです!
下記の部分で何処を変化させればよいのでしょうか?
(1)~(2)の部分で困っています。
Private Sub CommandButton1_Click()
Dim FileName As String
Dim FileExt As String
’(1)の質問!○=の部分をSheets(セルのA1の値をファイル名に入れたいです)
FileName = "○"& Format(Now, "yyyy-mm") & ".XLS"
'====
FileName = InputBox(FileName & "と言う名前で保存します" & vbCr & "よろしければこのままOKをクリックしてください", "保存ファイル名の確認", FileName)
If FileName = "" Then
Exit Sub
Else
If Right(FileName, 4) <> ".XLS" Then
MsgBox "ファイル名が異常です。"
Exit Sub
End If
End If
'====
FileName = "D:\保存\ケア\計画\" & FileName
If Dir(FileName) <> "" Then
'##ファイルが既に存在する
If MsgBox("既に指定のファイルが存在します。 上書きしますか?", vbOKCancel, "上書きの確認") = vbCancel Then
'##保存せずに終了
Exit Sub
ElseIf ThisSheets.FullName = FileName Then
'##現在開いているファイルと同じなら上書き保存
ThisSheets.Save
Else
'##指定ファイルを削除した後保存
Kill FileName
ThisSheets.SaveCopyAs FileName:=FileName
End If
Else
'##ファイルを新規保存
ThisSheets.SaveCopyAs FileName:=FileName
End If
ThisSheets.Saved = True
End Sub
(2)ThisSheets&指定してもう一つだけ
保存先にコピーしたいです!つまり
2つのSheetのみ保存させたいのですが・・
ここからどのようにしたら良いのか
お願いします!教えて下さい。
過去の質問も参照しましたが
当てはまる物が無くて質問しました!
シート上にボタンを作成して
クリックするとそのシートのみ
指定するファイルにコピーさせたいです!
下記の部分で何処を変化させればよいのでしょうか?
(1)~(2)の部分で困っています。
Private Sub CommandButton1_Click()
Dim FileName As String
Dim FileExt As String
’(1)の質問!○=の部分をSheets(セルのA1の値をファイル名に入れたいです)
FileName = "○"& Format(Now, "yyyy-mm") & ".XLS"
'====
FileName = InputBox(FileName & "と言う名前で保存します" & vbCr & "よろしければこのままOKをクリックしてください", "保存ファイル名の確認", FileName)
If FileName = "" Then
Exit Sub
Else
If Right(FileName, 4) <> ".XLS" Then
MsgBox "ファイル名が異常です。"
Exit Sub
End If
End If
'====
FileName = "D:\保存\ケア\計画\" & FileName
If Dir(FileName) <> "" Then
'##ファイルが既に存在する
If MsgBox("既に指定のファイルが存在します。 上書きしますか?", vbOKCancel, "上書きの確認") = vbCancel Then
'##保存せずに終了
Exit Sub
ElseIf ThisSheets.FullName = FileName Then
'##現在開いているファイルと同じなら上書き保存
ThisSheets.Save
Else
'##指定ファイルを削除した後保存
Kill FileName
ThisSheets.SaveCopyAs FileName:=FileName
End If
Else
'##ファイルを新規保存
ThisSheets.SaveCopyAs FileName:=FileName
End If
ThisSheets.Saved = True
End Sub
(2)ThisSheets&指定してもう一つだけ
保存先にコピーしたいです!つまり
2つのSheetのみ保存させたいのですが・・
ここからどのようにしたら良いのか
お願いします!教えて下さい。
いつもお世話になっています。
VB入門者ですがよろしくお願いします。
VB2005を使用しています。
データベースはアクセスを使用しています。
データベースの日時が入力されていないものを選択したいのですが
SQLはどのように書けばよいのでしょうか?
よろしくお願いします
SQL &= " FROM Data WHERE Data.年月日='Null''
Sub 米ドル換算()
Dim 元金 As Long
Dim ドル価格 As Integer
Dim 米ドル換算額 As Double
' 「元金」の値を取得する
元金 = Range("A4").Value
' 「ドル価格」を取得する
ドル価格 = Range("A2").Value
' 取得した「元金」と「ドル価格」をもとに「米ドル換算額」を取得する
米ドル換算額 = 元金 / ドル価格
' 算出した「米ドル換算額」を出力する
Range("B4").Value = 米ドル換算額
End Sub
ちなみに
元金 = Range("A4").Value
↑
この部分が「Range」メソッドは失敗しました。_Globalオブジェクト
と表示されるのですが、どういうことでしょうか?
すいません、VBAかなり初心者ですごい簡単な質問かもしれません。
VB.netやVB6を触っていればわかるとおもうのですが、
シート内でCheckBox_Clickイベントの実行文のなかでセルを参照する記述を書いているのですが、
1) Dim a as String
2) a = WorkSheets("??").Range(E9)
2)の場所でエラー(アプリケーション定義またはオブジェクト定義エラーです。)とセル位置を参照できないのですが、シート内で記述しており他のSUB ??() のプロシージャーでは問題なく参照できるのですが、なぜなんでしょうか?