約 862,199 件
https://w.atwiki.jp/impreza_555/pages/4.html
VBA覚え書き ちょっとしたVBAのメモです。 アドイン作成後にタイトルやコメントを設定しなおす。? 任意のショートカットでマクロを動かす。?
https://w.atwiki.jp/maisenakajima/pages/43.html
VBA参考URL Visual Basic for Applications (VBA) の言語リファレンス Word VBA リファレンス Excel VBA リファレンス Access VBA リファレンス Dynamic Distinct Column in Excel using Array Formulas Excel to Image – VBA Save Range or Workbook as Image VBA Download Files – download files in Excel using VBA VBA Cheat sheet Mastering the VBA MsgBox Excel VBA Multithreading Tool Guide to Improving VBA Performance. Faster Excel VBA Like VBA? You will love HTA! (HTA example using VBS) Multithreaded browser automation (VBA Web Scraping)
https://w.atwiki.jp/internet-notes/pages/12.html
目次 ファイル操作 ExcelVBAで、ファイルを作成する。 Windows API WindowsのAPIを用いて、Excel VBAからキーボードを操作する。 ユーザーフォーム Excelのワークシートをダブルクリックした際、クリック位置のおよそ右下にユーザーフォームを表示する。 ファイル操作 ExcelVBAで、ファイルを作成する。 Windows API WindowsのAPIを用いて、Excel VBAからキーボードを操作する。 Shell関数などを用いて、他のアプリケーションを起動した際、通常のキーであれば、SendKeysによって操作できるが、Alt+TabやAlt+PrintScreenなどのキー操作はできない。その際に、以下のようにAPIを用いてキー操作を擬制する。 Visual BasicのKey Code 定数(MSDN) Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, _ ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long) Private Const KEYEVENTF_EXTENDEDKEY As Long = H1 Private Const KEYEVENTF_KEYUP As Long = H2 Private Const VK_LMENU As Long = HA4 Private Const fKEYDOWN = KEYEVENTF_EXTENDEDKEY Private Const fKEYUP = KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP Alt+Tabキーを押すマクロ Sub S_AltTab() keybd_event VK_LMENU, 0 , fKEYDOWN, 0 keybd_event vbKeyTab, 0 , fKEYDOWN, 0 keybd_event vbKeyTab, 0 , fKEYUP, 0 keybd_event VK_LMENU, 0 , fKEYUP, 0 End Sub PrintScreenキーを押すマクロ Sub S_PrintScreen() keybd_event vbKeySnapshot, 0 , fKEYDOWN, 0 keybd_event vbKeySnapshot, 0 , fKEYUP, 0 End Sub ユーザーフォーム Excelのワークシートをダブルクリックした際、クリック位置のおよそ右下にユーザーフォームを表示する。 シートの縮尺を変えたり、右スクロールをしてダブルクリックをするとうまくいかない。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) With UserForm1 .StartUpPosition = 0 表示位置を初期化 .Top = Target.Top + 100 上端からの距離 .Left = Target.Left + 100 左端からの距離 .Show 表示 End With End Sub 最終更新日時:2008年10月04日 05時37分28秒
https://w.atwiki.jp/cucumber/pages/19.html
画面の更新画面の更新を止める~動かす オートフィルタVBAでオートフィルタの状態を調べる 画面の更新 画面の更新を止める~動かす 起動関数の始めと終わりに記述 Application.ScreenUpdating = False ~処理~ Application.ScreenUpdating = True オートフィルタ VBAでオートフィルタの状態を調べる if Worksheets("Sheet1").AutoFilterMode = False then フィルタは適用されていない if Worksheets("Sheet1").AutoFilterMode = True then フィルタは適用されている Worksheets("Sheet1").Filters(n) フィルタの種類(複数の場合有り) 上へ 名前 コメント
https://w.atwiki.jp/naska/pages/13.html
VBAコードの保存(没)
https://w.atwiki.jp/wassyoi1209/pages/21.html
VBA ここはチェックしておきましょう。 VBA解説サイト モーグ 速攻テクニック集 Excelでお仕事! Office TANAKA Excel VBA 入門講座へようこそ!! すぐに役立つエクセルVBAマクロ集 ここまで。
https://w.atwiki.jp/yasukoba/pages/119.html
はじめに 私の専門分野の応用例は画像処理が主ですので,画像上の画素配置を図で表現する機会があります. その表現手段として,Excelに代表される表計算ソフトは,非常に便利です. セルのサイズを変更して正方形にしてしまえば画素のイメージとなりますし,画素の階調値などを表現する場合はセル内に数値を入力すればよいので. 現在,多めに画像表現を作成する必要があるのですが,サイズを変更したり罫線を引いたり数値を入力したりの反復作業が億劫になってきました. そこで,VBAを用いてこの作業を自動化出来ないかと考えました. 私個人としてはプログラミングといえばC言語と思っていたので,マクロやVBAには手を出さずに来たのですが,限られた環境で適切に使用する分には問題ないと思い試作してみました. まだまだ途中ではありますが,Excelを用いた簡易的なプログラムを書くには非常に便利なツールであることは分かりました. VBA内での関数の使用 VBA内でも複雑な計算が必要となる場合があります. しかし,ワークシートで使用している関数すべてがVBAで使用できるわけではありませんので注意が必要です. 例) MOD - Mod ※ただし剰余対象の数が負の場合結果が異なるので使用する場合には注意! MOD(-4, 3) = 2 -4 mod 3 = -1 INT - Int
https://w.atwiki.jp/wassyoi1209/pages/23.html
既に世の中にはわかりやすくて、見やすいVBAサイトがいっぱいありますので、 まずはそちらを参照してみてください。 参考サイトはこちら ブック名取得 シートのセルに記述すると、自ブック名を表示してくれます。 設計書や試験の検証物など、ブック名を記載するものはこれにしておくと、 名前が変更になっても修正作業は発生しないのでらくちん☆ =MID(CELL("filename",A1),FIND("[",CELL("filename",A1))+1, FIND("]",CELL("filename",A1))-FIND("[",CELL("filename",A1))-1) シート名取得 上と同じく。名前が変わるたびに直すのがめんどうな人向き! =MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1, LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1))) VBAで他のファイルを開く ************************************************************ ファイルをオープンする 【引数】filePath:対象ファイルのフルパス fileName:対象ファイルのファイル名 ************************************************************ Private Sub fileOpen(filePath As String, fileName As String) Workbooks.Open filePath Workbooks(fileName).Activate End Sub VBAで他のファイルを複製(コピペ)する ************************************************************ ファイルをコピーする 【引数】oldFilePath:複製元のファイル名 newFileName:複製して生成されるファイル名 ************************************************************ Private Sub fileCopy(oldFilePath As String, newFileName As String) Dim FSO Set FSO = CreateObject("Scripting.FileSystemObject") ファイルをコピーして生成する FSO.CopyFile oldFilePath, newFileName Set FSO = Nothing End Sub VBAで罫線を引きます ************************************************************ 選択されている範囲に罫線を引く。 【引数】True :実線で罫線を引く。 False:内部の横線のみ点線で罫線を引く。 ************************************************************ Private Sub drawLine(flag As Boolean) 罫線を引きます With Selection .Borders(xlDiagonalDown).LineStyle = xlNone .Borders(xlDiagonalUp).LineStyle = xlNone .Borders(xlEdgeLeft).LineStyle = xlContinuous .Borders(xlEdgeTop).LineStyle = xlContinuous .Borders(xlEdgeBottom).LineStyle = xlContinuous .Borders(xlEdgeRight).LineStyle = xlContinuous .Borders(xlInsideVertical).LineStyle = xlContinuous .Borders(xlInsideHorizontal).LineStyle = xlContinuous If flag Then .Borders(xlInsideHorizontal).Weight = xlThin 実線 Else .Borders(xlInsideHorizontal).Weight = xlHairline 点線 End If End With End Sub シートの指定した列の、最終行を取得する よく繰り返し条件に使います。 ************************************************************ 最終行を取得する。 【引数】 String:列位置 【戻り値】Integer:最終行位置 ************************************************************ Private Function getLastRow(column As String) As Integer getLastRow = ActiveSheet.Range("$" column "$65536").End (xlUp).Row End Function DB接続(Oracleで動作確認済。) よくエラーがおきるところなので、エラー処理が入ってます。 ************************************************************ DBをオープンする。 【戻り値】True :正常終了 False:異常終了 ************************************************************ Private Function DbOpen() As Boolean On Error GoTo ErrorTrap DbOpen = False DB接続 adoCON.Open "Provider=MSDAORA;" "Data Source=" TNS ";", USER, PASS DbOpen = True Exit Function ErrorTrap Dim errorMsg As String Dim errMsgRslt As String errorMsg = "エラー内容:" Err.Description vbCrLf _ "エラー番号:" Err.Number vbCrLf errMsgRslt = MsgBox(errorMsg, vbCritical, "エラーメッセージ") End Function DB切断(Oracleで動作確認済。) ちゃんと接続を解除しないと、大変なことになりますよ!忘れずに。 ************************************************************ DBをクローズする。 ************************************************************ Private Sub DbClose() DBクローズ adoCON.Close Set adoCON = Nothing End Sub デバッグログ出力 Debug.Print "デバッグログSTART" イミディエイトウィンドウに出力されます。 正負の符号表示 ユーザ書式で右記のように設定 "+"0.00;"-"0.00 ここまで。
https://w.atwiki.jp/excelvba/pages/13.html
Excel VBA 質問スレ Part18 のログまとめ 適当にまとめた。 コーディングは質疑とtipsに分けるべきかも試練 コーディング - コード全般 ブック操作 - ブックの操作 オブジェクト - オブジェクトの操作 イベント - イベントとか その他 - 雑談馴れ合い罵り合いとvba以外 カウンター 今日 - 昨日 - 合計 - 名前 コメント
https://w.atwiki.jp/nobotaka/pages/17.html
Option Compare Text Option Explicit Sub aaaa() Dim ws As Worksheet MsgBox ("aaa") For Each ws In Worksheets ws.Activate ActiveWindow.Zoom = 100 Next End Sub Sub aaaa01() Dim ws As Worksheet Dim OpenFileName As String ChDrive "E" ChDir "E \Documents\dev\trunk\vba" OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls?") If OpenFileName = "False" Then MsgBox "キャンセルされました" End If End Sub