ADOを使ってACCESSやSQLサーバーへ接続する時に
Option Explicit
Sub ADO()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
cn.Open "Provider=SQLOLEDB;Data Source=○○○\SQLEXPRESS;Initial Catalog=test;Integrated Security=SSPI"
rs.Open "table1", cn, adOpenStatic, adLockOptimistic
というようなコードを書きますが、
変数の宣言の「 New 」はどういう意味なのでしょうか?
何のためにつけるのでしょうか?
あえて「 New 」を取ると、
「オブジェクト変数または With ブロック変数が設定されていません。」
というエラーになります。
普通の変数(Dim table名 As String)に
「 New 」を付けるとコンパイルエラーになります。
違いがわかりません。
よろしくお願いします。
シートのイベントプロシージャーが
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Sub
となりますが
(ByVal Target As Range)部分は何なのでしょうか?
何のためにあるのかわかりません。
Private Sub Worksheet_SelectionChange()
End Sub
としたらエラーが返ってきました。
理由を教えてください。
よろしくお願いします。
VBScriptを使って、あるページを自動保存しようとしています。
set objIE = WScript.CreateObject("InternetExplorer.Application")でオブジェクトを作成して、無条件に1 to 10のループをまわして i & ".html"を取得しています。
そこで、objIE.Navigate(i & ".html") でページが存在する場合は保存、ページが存在しない(404 not found)場合は無視(ループを抜ける)。
としたいのですが、このエラーを拾う方法を教えてください。
よろしくお願いします。
マクロ 新しく作ったブックをアクティブにする
マクロ初心者です。
マクロを使って同階層にあるファイルのアクティブのシートを
ひとつのブックにコピーして保存するマクロを作りたいと思ってます。
他の質問を参照して下記のコードを途中まで作成しました。
参照した質問では、
マクロの入っているブックにシートをコピーするようでしたが、
そうすると保存した時にマクロも保存されてしまうので
私なりに調べて、新しいブックにシートコピーするようにしましたが、
この記述の後、新しいブックをアクティブにする記述がわからず、
保存できなくなってしまいました。
ここまで終わるとマクロの入っているブックがアクティブになって終わります。
このあと新しく開いたブックをアクティブにして、
ブックのsheet1~3を削除して、名前をつけて保存したいのですが
開いたブックをアクティブにするマクロをご伝授ください。
あたらしくブックをつくるとbook1~・・・と名前が変わってしまうので
変数で名づけたいのですが、やり方が良くわかりませんのでよろしくお願いします。
何卒よろしくお願いします。
Sub consolid_test()
Dim shCnt As Integer
Dim Wb As Workbook
Dim i As Integer
Dim sh As Worksheet
Dim nSh As Worksheet
Dim fName As String
Dim ka As String
Application.ScreenUpdating = False '画面更新を一時停止
Application.DisplayAlerts = False
Set mb = Workbooks.Add '新しいコピー先ブックをmbとする。
myfdr = ThisWorkbook.Path
fName = Dir(myfdr & "\*.xls") 'フォルダ内のExcelブックを検索
Do Until fName = Empty '全て検索
If fName <> mb.Name Then 'ブック名がこのブックの名前でなければ
Set Wb = Workbooks.Open(myfdr & "\" & fName) 'そのブックを開きwbとする。
Wb.ActiveSheet.Copy After:=mb.Sheets(mb.Sheets.Count) 'コピーしてコピー先ブックの末尾に置く
ActiveSheet.Name = Range("B16") 'シート名の変更
ActiveSheet.Unprotect 'シート全体をコピーして値にする
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Wb.Close (False) '保存の有無を聞かずに保存しないで閉じる
N = N + 1 'ブック数をカウント
End If
fName = Dir 'フォルダ内の次のExcelブックを検索
Loop '繰り返す
・
・
・
・
マクロ 新しく作ったブックをアクティブにする
マクロ初心者です。
マクロを使って同階層にあるファイルのアクティブのシートを
ひとつのブックにコピーして保存するマクロを作りたいと思ってます。
他の質問を参照して下記のコードを途中まで作成しました。
参照した質問では、
マクロの入っているブックにシートをコピーするようでしたが、
そうすると保存した時にマクロも保存されてしまうので
私なりに調べて、新しいブックにシートコピーするようにしましたが、
この記述の後、新しいブックをアクティブにする記述がわからず、
保存できなくなってしまいました。
ここまで終わるとマクロの入っているブックがアクティブになって終わります。
このあと新しく開いたブックをアクティブにして、
ブックのsheet1~3を削除して、名前をつけて保存したいのですが
開いたブックをアクティブにするマクロをご伝授ください。
あたらしくブックをつくるとbook1~・・・と名前が変わってしまうので
変数で名づけたいのですが、やり方が良くわかりませんのでよろしくお願いします。
何卒よろしくお願いします。
Sub consolid_test()
Dim shCnt As Integer
Dim Wb As Workbook
Dim i As Integer
Dim sh As Worksheet
Dim nSh As Worksheet
Dim fName As String
Dim ka As String
Application.ScreenUpdating = False '画面更新を一時停止
Application.DisplayAlerts = False
Set mb = Workbooks.Add '新しいコピー先ブックをmbとする。
myfdr = ThisWorkbook.Path
fName = Dir(myfdr & "\*.xls") 'フォルダ内のExcelブックを検索
Do Until fName = Empty '全て検索
If fName <> mb.Name Then 'ブック名がこのブックの名前でなければ
Set Wb = Workbooks.Open(myfdr & "\" & fName) 'そのブックを開きwbとする。
Wb.ActiveSheet.Copy After:=mb.Sheets(mb.Sheets.Count) 'コピーしてコピー先ブックの末尾に置く
ActiveSheet.Name = Range("B16") 'シート名の変更
ActiveSheet.Unprotect 'シート全体をコピーして値にする
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Wb.Close (False) '保存の有無を聞かずに保存しないで閉じる
N = N + 1 'ブック数をカウント
End If
fName = Dir 'フォルダ内の次のExcelブックを検索
Loop '繰り返す
・
・
・
・