ExcelVBA

ExcelのVBAマクロからIE操作:「オートメーションエラーです。 システムのシャットダウンは既にスケジュールされています。」対処法

何度も Nothing -> CreateObject しようとするとエラーになることがある。 Set oIE = Nothing での処理がすぐ完結しないときがあるようで、その後に実行される Set oIE = CreateObject("InternetExplorer.Application") のところでこのエラーが出るといった…

ExcelVBAで配列の初期化するなら Arrayするっきゃない

こんな感じ。 Dim userAddress As Variant userAddress = Array("東京都", "北海道", "愛知県")ネタ元 http://www.officepro.jp/excelvba/array/index6.html

Assert するなら Debug.Assertメソッド

VBAにもあるのね。条件一致しなかったらブレークで止まってくれます。一般リリースするもので使うなら、テスト関数とか本番環境では呼ばれないところで使うこと。 ネタ元 http://note.phyllo.net/?eid=1106218

VBA/VBSでショートカットを作成する

Option Explicit Dim WSH,sc Set WSH=CreateObject("WScript.Shell") Set sc = WSH.CreateShortcut("C:\Documents and Settings\xxxx\デスクトップ\メモ帳.lnk") sc.TargetPath = "C:\WINDOWS\notepad.exe" sc.save Set sc = Nothing Set WSH = nothingネタ元…

ExcelVBAからexeを強制終了する

Shell("cmd.exe /c taskkill /F /IM excel.exe")ネタ元 http://oshiete.goo.ne.jp/qa/5490461.html

ExcelVBAでフォーム(ボタン)のあるセルの位置を取得

MsgBox ActiveSheet.Shapes(Application.Caller).TopLeftCell.Address MsgBox ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row MsgBox ActiveSheet.Shapes(Application.Caller).TopLeftCell.Column ネタ元 http://oshiete.goo.ne.jp/qa/4129092.html

ExcelVBAでファイルの移動、ファイル名の変更、ファイルの削除

Name / Kill Option Explicit Private Const cnsSOUR = "C:\AAA\SAMPLE1.txt" ' 元ファイル Private Const cnsDEST = "C:\BBB\SAMPLE2.txt" ' 先ファイル ' ファイル移動のサンプル① Sub MOVE_SAMPLE1() ' ファイルを移動(この方法は同一ドライブのみ) Name …

ExcelVBAで特定のフォルダを開く

Sub Test() Dim myFol As String myFol = ThisWorkbook.Path & "¥hoge¥" Shell "C:¥Windows¥Explorer.exe " & myFol, vbNormalFocus End Sub ネタ元 http://hinekure.vba-soft.com/?eid=270237 すぐわかるExcelマクロ&VBAマネして使えるサンプル集 Excel 20…

ExcelVBAでいい感じに文字列を数値に変換する

Val()関数使うネタ元 http://www.geocities.jp/cbc_vbnet/function/mojireyu_function.html#val

EXCELVBAでフォルダーを選択してもらうサンプルマクロ

Sub ユーザーにフォルダーを選択してもらう() Dim dlg As FileDialog Dim fold_path As String Set dlg = Application.FileDialog(msoFileDialogFolderPicker) 'キャンセルボタンクリック時にマクロを終了 If dlg.Show = False Then Exit Sub 'フォルダーの…

VBAで指定位置にCSV読み込み

参照の追加でMicrosoft Scripting Runtimeを追加すること 'X=列=aStartCols Y=行=aStartRows Sub CSV入力(aInputCsvPath, aStartCols, aStartRows) Dim varFileName As Variant Dim objFSO As New Scripting.FileSystemObject Dim inTS As TextStream Dim st…

VBAで指定のアプリ(*.exe)が立ち上がってるかのチェック

Win32_Process クラスを使う。 '指定のプロセスがいたらTrue いないならFalse Function CheckProcess(aExename) As Boolean 'WMIにて使用する各種オブジェクトを定義・生成する。 Dim oClassSet Dim oClass Dim oLocator Dim oService Dim sMesStr 'ローカル…

ExcelVBAでセルの折り返しOFF

折り返して全体を表示するを解除するVBAのコード Cells.WrapText = Falseネタ元 http://www.relief.jp/itnote/archives/excel-vba-off-wrap-text.php

excelvbaでファイルのダウンロード

URLDownloadToFile APIを使用してWebからファイルをダウンロードする方法 #If Win64 Then Private Declare PtrSafe Function DeleteUrlCacheEntry Lib "wininet" Alias _ "DeleteUrlCacheEntryA" (ByVal lpszUrlName As String) As Long Private Declare Ptr…

ExcelVBAでモードレスな「お待ちください」メッセージの表示

フォームを作って vbModelessで表示 UserFormを強制表示させる効果があります。念のために書くおまじない。【標準モジュール】 Public flag As Boolean Sub Sample5() Dim TotalSize As Long, buf As String UserForm1.Show vbModeless UserForm1.Repaint fl…

フォームのXボタンを効かなくする

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) If CloseMode = 0 Then MsgBox "[×]ボタンでは閉じられません。", 48 Cancel = True End If End Subネタ元 http://officetanaka.net/excel/vba/tips/tips18.htm

ワークブックの自動保存をしないようにする

10分毎に復帰用のファイルが作られるが、それを止める Private Sub Workbook_Open() ActiveWorkbook.EnableAutoRecover = False End Subネタ元 http://blog.livedoor.jp/katsuyausami/archives/52107517.html

ExcelVBAでJScript経由でJSONをデコード

消えると困るのでコピペ■ボタンクリック部分のコード Private Sub CommandButton1_Click() Dim obj As JSON Set obj = GetJSON("test.json") Do While obj.HasNext MsgBox obj.getValue("id") & ":" & obj.getValue("name") Loop End Sub ■ConnectModule '接…

excelvbaでレジストリ操作

書き込み SaveSetting appname, section, key, data読込 GetSetting(appname, section, key, default)ネタ元 http://officetanaka.net/excel/vba/tips/tips43.htm

ExcelVBAでWebページを取得する方法

3つあるInternetExplorerオブジェクト (WebBrowserコントロール) XMLHTTPオブジェクト HTMLDocumentオブジェクトどれでもけっきょくHTMLDocumentオブジェクトを取り出していろいろいじれる。ネタ元 http://so-zou.jp/software/tech/programming/vba/sample/…

ExcelVBAでカレンダー入力をする

意外なことにどのバージョンでもOKな標準コントロールがないみたい。以下で配布しているモジュールをインポートして使うといい感じ。 http://www.asahi-net.or.jp/~ef2o-inue/download/sub09_020_025.html

ExcelVBAのユーザーフォームを「Esc」キーで閉じる CommandButtonの CancelプロパティをTrue

ESCキーを押した時にCancel=Trueのボタンを押したこととして処理するみたいネタ元 http://vba.doorblog.jp/archives/51316717.html

ExcelVBAのユーザーフォームでフォームの閉じ方

ダイアログを後でも出したり、情報を取得する用事があるならMe.Hide もう用事なしならUnload Me ネタ元 http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_080.html

ExcelVBAで存在するIEオブジェクトを探して根こそぎQuitする

Public Sub ie_quit() Dim objShell Dim objWindow Set objShell = CreateObject("Shell.Application") For Each objWindow In objShell.Windows If TypeName(objWindow.Document) = "HTMLDocument" Then objWindow.Quit Sleep 100 End If Next Set objShell…

ExcelVBA・マクロを簡単に高速化する方法

VBA・マクロの先頭付近に次の3行を追加する : Application.ScreenUpdating = False Application.EnableEvents = False Application.Calculation = xlCalculationManualVBA・マクロの最後付近に次の3行を追加する : Application.ScreenUpdating = T…

Excelマクロ実行中にキーボード/マウスを受け付けなくする

Application.Interactive = False ネタ元 http://msdn.microsoft.com/ja-jp/library/office/ff841248%28v=office.15%29.aspx

ExcelVBAでファイル削除

Kill(pathname)ネタ元 http://www.openreference.org/articles/view/340

Excel:VBA:UTF-8/LFのファイルを読み込む

ADODB.Stream を使います。 Sub loadLogFile2(ByRef fileName As Variant) Dim rowNo As Integer Dim readString As String Dim st As Object Set st = CreateObject("ADODB.Stream") 'ADODB.Stream生成 st.Type = 2 'オブジェクトに保存するデータの種類を…

ExcelVBAでコントロールキーを押されているかチェック

#If Win64 Then Private Declare PtrSafe Function GetAsyncKeyState Lib "user32.dll" (ByVal vKey As Long) As Long #Else Private Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal vKey As Long) As Long #End If ... If 0 <> GetAsyncKeySta…

定番のVBA関数でコンパイルエラーが出たときの対処法

参照不可のライブラリができてる可能性アリ。チェックしてみよう ネタ元 http://www.moug.net/tech/exvba/0150128.html