ray88’s diary

お仕事で困ったとき用の自分用の覚書

Access VBA

VBA 特定の名前のブックが開かれているか確認する

Sub Sample() Dim myChkBook As Workbook On Error GoTo ErrHdl Set myChkBook = Workbooks("Test.xls") MsgBox "開かれています。" Exit Sub ErrHdl: MsgBox "開かれていません。" End Sub ■ファンクション化する場合 ・ファンクションプロシージャ Functio…

VBA SchemeColorプロパティ(ForeColor以下に指定する色の色見本を作成する)

注意:セルの塗りつぶし色等で使用できるColorIndexプロパティとは色と番号の対応が異なる。 ■SchemeColorプロパティの色番号と色の対応表を作成します。 Sub schemeColorSample() Dim i As Long Sheets("Sheet2").Select For i = 1 To 80 With ActiveSheet.…

VBA RGB関数

RGB( red, green, blue)red : 赤の割合を0~255の整数で指定 green : 緑の割合を0~255の整数で指定 blue : 青の割合を0~255の整数で指定 ■使用例 dim shp as shape set shp = ActiveSheet.Sapes.Addline(200,50,500,50) shp.Line.ForeColor.RGB = RGB(255,…

VBA フォルダの存在確認(FileSystemObject)

■呼び出し先プロシージャ Sub test() Dim folderPath As String Dim Result As Boolean folderPath = "C:\Users\デスクトップ\テスト\テストフォルダ" If IsExistsDir(folderPath) Then MsgBox "フォルダは存在します" Else MsgBox "フォルダは存在しません"…

サブフォームに表示されたデータシートをCSV出力するコード

■サブフォームに表示されたデータシートをCSV出力ボタンを押してCSV出力する Private Sub btnCsv_Click() funcOutputCSV 日付sub, "Q日にち検索", "サブフォーム出力" End Sub Function funcOutputCSV(subForm As subForm, strQueryName As String, strFileN…

UTF-8形式のCSVファイルをテーブルインポートできるよう加工

■UTF-8形式のままテーブルインポートしようとすると文字化けするので、ANSI形式で保存しなおす。ついでに、データの各項目にダブルクォーテーションもつける・編集前UTF-8形式のCSVファイル ・編集後UTF-8形式のCSVファイル ・インポート前テーブル ・インポ…

参照設定でチェックを入れる場所と変数宣言の仕方

■ADODBを事前バインディングする際は参照設定の 「Microsoft ActiveX Data Objects 6.1 Library」にチェックを入れる変数の宣言の仕方 Dim CN As ADODB.Connection Dim RS As ADODB.Recordset Set CN = New ADODB.Connection Set RS = New ADODB.Recordset ■…

パラメータクエリを実行後レコードセットに格納してテーブルに挿入

関連記事:レコードセットでなく、SQLで挿入する方法はこちら↓ ray88.hatenablog.com ■ 以下のようなパラメータクエリ「Q_インサート」を作成したとします。 パラメータはフィールド部分の 担当者:[Offfiser] と 抽出条件部分の >=[price] の部分 このクエリ…

Dir関数(ファイルの存在確認・フォルダ内の全てのファイルを調べる)

■Dir関数 ファイルの存在確認。パスを含まないファイル名を返す。(つまり戻り値String型) Dir("ファイルパス") ・引数に指定したファイル名が存在しないと空欄を返す。 ・引数にワイルドカード「*」を指定した場合はいかのような動きをする。 ①最初にDir関…

ファイルが既に開かれているかどうか調べる

※こちらの方法もあり↓こちらの方が使い勝手良いかも。。。 Excel VBA ファイルが既に開かれているかどうか調べる その② - ray88’s diary ■使用にあたっての注意事項 たとえば、各部署ごとにフォルダが分かれていて、各同じファイル名のファイルが格納されて…

パラメータクエリを実行後、SQLを実行してクエリ実行結果をテーブルに挿入する

関連記事:SQLではなく、レコードセットで挿入したいときはこちら↓ ray88.hatenablog.com■パラメータクエリの結果をテーブルにインサートするときのコード ※通常、パラメータクエリを定義のみだと先にパラメータを指定し、 QueryDefsでクエリをしていするが…

AccessVBAでSQLを実行する

■ただ単に、複雑なことなにもせず、指定したSQL文を実行したいときのコード Sub testCommandDelete() Dim strSQL As String strSQL = "DELETE FROM T_テストテーブル" DoCmd.SetWarnings False DoCmd.RunSQL strSQL DoCmd.SetWarnings True End Sub

文字型の日付をスラッシュ入りの yyyy/MM/dd 形式 の日付型に変換する

■テーブル定義では文字型のカラムでyymmだけど、抽出条件で一か月後とかなってた時に 一旦数値型に変換するときに使った Sub testDayChange() Dim strDay As String Dim dteDay As Date 'もし取得した値がyyyymmの場合は..... strDay = "201905" '"0"を足し…

CSVファイルデータを読み込む

① Openメソッドで読み込む方法 ② ADODBでレコードセットに格納して読み込む方法 '-------------------------------------------------------------------①まずはOPENメソッドでデータを読込む方法 Sub testReadText1() Dim buf As String Dim dataArray As V…

フルパスから拡張子なしのファイル名と拡張子を求める

※FileSystemObjectを事前バインディングする際は参照設定の 「Microsoft Scripting Runtime」にチェックを入れる Sub testGetFileInfo() Dim TargetPath As String Dim fileName As String Dim strExtension As String '-----------------------------------…

フルパスからファイル名とフォルダパスを取得する

■まずは、単純に取得する方法 Sub testGetFileInfo() 'フルパスからファイル名を取得 strFileName = Dir(strTempFilePath) 'フルパスからフォルダパスを取得 strFolderPath = Replace(strTempFilePath, strFileName, "") End Sub ■FileSystemObjectを使用し…

レコードセットの件数を取得

■キーワード:レコードセット Recordset 数 件数 -1 RecordCount レコードセットの件数を取得する:RS.RecordCount ただし、レコードセットを開く際、カーソルタイプがadOpenKeyset(定数1)か adOpenStatic(定数3)になっていないと取得できない-1が返…

Excelを遅延バインディングした時にエラーになる件について

■開発していると参照設定したくても、納品先のお客様の使用環境が どのバージョンを使用しているか不明のため、コード規約で参照設定が 禁止されているケースが多いです。なので、遅延バインディングします。 AccessからExcelを遅延バインディングしてWorkbo…

検索フォームでサブフォームのデータを検索する際のクエリ(あいまい検索等)

■以下のような検索フォームで検索する際、サブフォームの元となるクエリの設定の 仕方 基本的な処理を覚書 ■IDの抽出条件(オートナンバー型ですが、以下の式で正常に動作) Like IIf(IsNull([Forms]![日にち検索]![ID]),"*",[Forms]![日にち検索]![ID]) ■タ…

AccessでCSV出力の際に日付に時間が入らないようにする

・例として、以下フォームのサブフォームをCSV出力します。 ・サブフォーム内の項目に開始日と終了日の項目はyyyy/MM/ddの形式ですが、 CSV出力すると勝手にyyyy/MM/dd HHmm の形式に変換されてしまいます。 ・CSV出力の際の元となるクエリ(サブフォームの…

現在のデータベースのPath・ファイル名を参照する(ExcelのThisWorkBook.Pathにあたる)

・CurrentProject.Path 現在のデータベースファイルが格納されているフォルダを参照 ・CurrentProject.Name 現在のデータベースファイルのファイル名を参照 ・CurrentProject.FullName 現在のデータベースファイルのフルパスを参照

サブフォームに表示するデータシートの項目を並べ替える

サブフォームに表示されるデータシートの項目の並び順を後から変更したくなった場合 ①サブフォームをデザインビューで開いてプロパティシートの赤枠の箇所が「はい」 になっているか確認する。(ここが「いいえ」になっていると編集できない。ここが「はい」…

Accessの検索フォームでYESNO型のチェックボックスのチェックあり・なし・全てを検索するクエリ

検索フォームにコンボボックスを追加 選択肢を全て、チェックあり、チェックなしの3択にする。 全てを選択したときにYesNo型のチェックありなしのデータ全てを抽出 チェックありを選択でチェックありのみを抽出 チェックなしを選択でチェックなしのみを抽出…