ray88’s diary

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

2020-01-01から1年間の記事一覧

Excel VBA ファイルが既に開かれているかどうか調べる その②

Sub IsBookOpend() On Error Resume Next Open "C:\Book1.xls" For Append As #1 Close #1 If Err.Number > 0 Then MsgBox "すでに開かれています" Else MsgBox "ブックは開かれていません" End If End Sub

修正

Docmd.SelectObject "フォーム名" Sub メールテスト() Dim blResult As Boolean blResult = fncCreateNewMail("tarou-yamada@pipty.com", "重要フラグメール", "フラグテスト") End Sub Function fncCreateNewMail(strTo As String, strCc As String, _ strS…

AccessVBA Excelの最終行を取得する

■AccessVBAで参照設定をせずにExcelの最終行を取得する Sub excelTest() '------------------------------------ 'Excelの最終行を取得する '------------------------------------ Dim xlApp As Object Dim wb As Object Dim i As Integer Dim strTargetpat…

ExcelVBA シートにパスワードを設定する・パスワードの解除

■パスワード設定 Sub setPassword() ActiveSheet.Protect Password:="1234" End Sub ■パスワード解除 Sub releasePassword() ActiveSheet.Unprotect Password:="1234" End Sub

UiPath DataTableが空であるか判定するための条件文

空をNULL値または内部のデータとして考えるかどうかに応じて、次の条件文で確認。 datatable Is Nothing OrElse datatable.Rows.Count = 0

VBA フォルダを開く

■指定したパスのフォルダを開く ※呼び出し元プロシージャ Sub testopen() Dim strPath As String strPath = "C:\\デスクトップ\テスト" Call openFolder(strPath) End Sub ※呼び出し先プロシージャ Sub openFolder(strFolderPath As String) '--------------…

AccessVBA  VBAでDBファイルを最適化する

■参考URL: Excel VBA を学ぶなら moug モーグ | 即効テクニック | 閉じているデータベースを最適化してコピーする(DAO) ■ 構文:DBEngine.CompactDatabase olddb, newdb, locale, options, password Sub 最適化() Dim targetDbPath As String Dim destDbPat…

サーバテーブルのデータをローカルテーブルへインポートする(部品)

※ページの一番下により効率よいコードに変更した部品改修版あり ■呼び出し元プロシージャ Sub 読込テスト() Dim strResult As String strResult = fncImportTable("MT_社員マスタ", "W_社員マスタ", 4) Debug.Print strResult End Sub ■呼び出し先 部品使用…

ExcelVBA セルの結合

Sub MergeCells() 'セルを結合する Range("B5:C5").Merge End Sub

Excel VBA セルの書式設定

■セルの書式設定 Sub setFormat() 'セルの書式を設定 Range("B3").NumberFormatLocal = "yyyy/mm/dd" End Sub

セル幅の指定・セルの高さを指定

■セルの幅を指定 Sub setCellWidth() 'セル幅を指定 Range("B2").EntireColumn.ColumnWidth = 15 End Sub ■セルの高さを指定 Sub setColumnHight() 'セル高さを指定 Range("B2").EntireRow.RowHeight = 30 End Sub

セルの背景色を設定

Sub setBackgroundColor() 'セルの背景色をグレーに設定 Range("B2").Interior.ColorIndex = 15 End Sub ray88.hatenablog.com

コピペと値貼り付け

■普通にコピペ (例)Sheet1のB1~D4の範囲をSheet2のB2セルを起点に貼り付ける ※関数も自動でセルの番地変換して貼り付けてくれるようだ Sub test5() Worksheets("Sheet1").Range("B1:D4").Copy Worksheets("Sheet2").Range("B2") End Sub ■値貼り付け (例…

AccessVBA サーバテーブルのデータをローカルテーブルへインポートする

■以下のコードを部品化したものはこちらのリンクにあり。 サーバテーブルのデータをローカルテーブルへインポートする(部品) - ray88’s diary Sub データインポートテスト3() Dim CN As Object Dim CN2 As Object Dim RS As Object Dim RS2 As Object '----…

AccessVBA テーブルのデータを全て削除する

■呼び出し元プローシージャ Sub テーブル削除() 'MT_社員マスタのデータを全て削除 Call DeleteTableData("MT_社員マスタ") End Sub ■呼び出し先プロシージャ Sub DeleteTableData(strTableName As String) '----------------------------------------------…

AccessVBA ダイアログを表示してファイルパスまたはフォルダパスを取得

■ファイルパスを取得 Function fncGetFilePath() As String '--------------------------------------------------------------------------------- '機能:ファイル選択ダイアログを表示し、選択したファイルパスを返す '戻り値:ファイルパス '-----------…

TEMP 覚書

Dim strRes As String If IsNull(Me.Controls("txb_FolderPath")) Then strRes = MsgBox("関連書類格納フォルダはなしでよろしいですか?", vbYesNo, "関連書類有無フォルダ有無確認") End If If strRes = vbNo Then MsgBox "関連書類格納フォルダを選択後再…

AccessVBA テキストボックスやコンボボックスを順番に飛ばさず入力しているかチェックする

■必須項目ではないが、順番に飛ばさず入力する必要のあるものの空欄チェック方法 ※このページの一番下に部品化したコードあり Sub chkSkipBlank() '------------------------------------------------------------- '機能:必須項目ではないが、途中を飛ばさ…

コンボボックスで選んだ値に紐づいてテキストボックスの別カラムの値を表示させる方法②

■VBAで実装する方法 Private Sub Form_Load() '----------------------------------------------- 'フォーム読み込時にコンボボックスのソースを設定 '----------------------------------------------- With Me.cmb_Test 'ソースのタイプを設定 .RowSourceT…

Access VBA コントロールの値をまとめてクリアする・値を入力する

Sub FormTest() Dim c As Object Forms("Fフォーム").txt3.Value = "標準モジュール" MsgBox "標準モジュールから参照" For Each c In Forms("Fフォーム").Controls If c.ControlType = acTextBox Then c.Value = "" End If Next End Sub ■以下の様にプロパ…

UiPath NULL値の代入

■Uipathのテーブル等で取得した値を保持する際、値がなかった場合の行に自動で空の文字列を挿入してしまうことがある。 テーブルを最終的にExcelに貼り付ける等の処理を行う場合、セルに書式設定がされていると空の文字列が悪さをして意図しない値が反映され…

ADO レコードの追加 AddNewメソッド

【AddNewメソッドの引数として、フィールドリスト、値リストを渡す】 RS.AddNew フィールドリスト,値リスト ■フィールドリスト、値リストを作成する方法 ・リストに使用する変数をVariant型で宣言する ・Array関数でリストになる配列を変数に格納する Dim Li…

ADO レコードの更新・Updateメソッド

【Updateメソッドの引数としてフィールド名、値を渡す】 RS.Update フィールド1,値1 RS.Update フィールド2,値2 (例) Sub Test1() Dim CN As ADODB.Connection Dim RS As ADODB.Recordset Dim SQL As String Set CN = CurrentProject.Connection Set RS = …

ADO Recordsetオブジェクトにレコードセットを取得する

■方法①:RecordsetオブジェクトのOpenメソッドで開く 【書式】 RS.Open ソース,CN,カーソルタイプ,ロックタイプ ※変数宣言の際に以下の様に記述するとインスタンス生成を同時に行える Dim RS As New ADODB.Recordset 引数 説明 ソース テーブル名、クエリ名…

ADO Recordsetオブジェクトの主なメソッド

メソッド 説明 Open レコードセットを開く Close レコードセットを閉じる Move カレントレコードを移動する MoveFirst 先頭レコードに移動する MoveLast 最終レコードに移動する MoveNext 次のレコードに移動する MovePrevious 前のレコードに移動する Move…

ExcelVBA シートの保護と編集可能セル範囲の設定(セルごとの保護)

Sub 編集可能領域の設定() Worksheets("Sheet1").Protection.AllowEditRanges.Add _ Title:="許可範囲1", _ Range:=Range("A4:G4"), Password:="editOK" End Sub Sub ワークシートに保護を設定() Worksheets("Sheet1").Protect _ Password:="AllowEdit" End …

ADO Recordsetオブジェクトの主なプロパティ

■主なプロパティその① プロパティ 説明 BOF カレントレコードが先頭レコードの前にあるときTrueを、それ以外の時はFalseを返す EOF カレントレコードが最終レコードの後にあるときTrueを、それ以外の時はFalseを返す RecordCount レコード件数を返す ■Cursor…

ADO データベースへの接続(Connection オブジェクト)

■ConnectionオブジェクトはDBへの接続を保持するオブジェクトです。 Connectionオブジェクトの主なプロパティ プロパティ 説明 ConnectionString データベースへの接続情報を返す State データベースへの接続状態を返す Connectionオブジェクトの主なメソッ…

ADO 主なオブジェクト

■ADOはAccess以外の他のデータベースを共通の方法で操作できる(DAOはAccess以外のDBは操作できない) ■DAOのようにテーブルやクエリを作成する機能はなく、ADOXというADOの拡張機能を使用する必要がある。 ■DAOは参照設定不要だがADOは参照設定が必要。 「Mi…

AccessVBA コントロールの値をまとめて確認する

■以下はテキストボックスの値をまとめて確認するコード ※呼び出し元コード Sub test1() fncCheckBlank ("F社員名簿") End Sub ※呼び出し先コード Function fncCheckBlank(strFormName) '------------------------- '機能:フォーム内のテキストボックスの値…