ray88’s diary

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

2020-04-01から1ヶ月間の記事一覧

ExcelVBA セルの背景色等で使用するColorIndexの色見本リストを作成する。

Sub ColorIndexSample() Dim i As Long For i = 0 To 56 Range("A" & i + 1).Value = i Range("B" & i + 1).Interior.ColorIndex = i Next End Sub ray88.hatenablog.com ray88.hatenablog.com

Excel VBA WBS作成

■以下のようなWBSを作成します。 ■作成ボタンに登録するマクロ(コード) Sub WBS作成() Dim shp As Shape Dim org As Range Dim dst As Range Dim trgt As Range Dim days As Range Dim wsPrf As Worksheet Dim ctg As Range Set wsPrf = Worksheets("設定"…

セルの背景色の値を取得する

■セル背景色のRBG値はセルのInteriorプロパティ以下のColorプロパティで取得する 「=」で戻り値を(RBG値)を代入すればセルの背景色を設定できる。■書式:オブジェクト.Interior.Color オブジェクト:セルのオブジェクト ■使用例 Sub sample() Range("B3")…

ExcelVBA セルの列幅を取得する・セルの高さを取得する

■Widthプロパティ:セルの列幅をポイント単位で取得するプロパティ オブジェクト.Width オブジェクト:セルのオブジェクトを指定 (例)セル幅の中央の位置を取得する Range("E2").Width/2 ■RowHieghtプロパティ:セルの高さをポイント単位で取得するプロパ…

最端セルの取得

■Endプロパティを使用する オブジェクト.End( 方向 ) オブジェクト:出発点となるセルのオブジェクト 方向:以下の引数より指定する xlUp (上)xlDown(下)xlToRight(右)xlToLeft(左) ■使用例 Sub sample() Dim targetRange As Range Set targetRange =…

セル範囲の取得

■Rangeプロパティを使用する場合 書式:Range( 先頭セル, 終端セル ) (例1)Range(Range("A1"),Range("D3")) (例2)Range(Cells(1,1),Cells(4,4)) ■使用例 Sub sample() Dim targetRange As Range Set targetRange = Range(Range("A1"), Range("D4")) '以…

Excel VBA 図形を削除する・図形の種類を取得する

■図形を削除するにはShapeオブジェクトのDeleteメソッドを使用する オブジェクト.Delete ※オブジェクト:Shapeオブジェクト ■TyPeプロパティを使用する オブジェクト.Type ※オブジェクト:Shapeオブジェクト ■使用例 Sub sample() Dim shp As Shape 'シート…

UiPath セルの数値を読み取る

■UiPathのセルの読み取りで、数値を読み取る場合、そのままString型の変数に 格納しようとすると以下のようなエラーとなる ※追記以下の対処法のうち、小数点をReplaceで消すのは危険。パターンに「.00」で指定すると正規表現では「.」は文字、または数字をい…

UiPath フロースイッチの追加い方

実行結果

Excel VBA Offsetプロパティ

■指定したセルから指定した行数・列数だけ離れたセルのオブジェクトを取得するプロパティ オブジェクト.Offset( RowOffset, ColumnOffset ) ・オブジェクト:Rangeオブジェクト ・RowOffset :行方向の移動数。元のセルを0とする整数で指定 ・ColumnOffset…

Leftプロパティでセルの左端の座標を取得する

■書式:オブジェクト.Left ■以下の様に固定的に座標を取得していたとします。 Set shp = ActiveSheet.Shapes.AddLine(200, 50, 500, 50) ■Leftプロパティによって座標を取得したコードに変更 Set shp = ActiveSheet.Shapes.AddLine(Range("E2").Left, 50, Ra…

Topプロパティでセル上端の座標を取得する

■書式:オブジェクト.Top ■以下の様に固定的に座標を取得していたとします。 Set shp = ActiveSheet.Shapes.AddLine(200, 50, 500, 50) ■Topプロパティによって座標を取得したコードに変更(セルの上端に矢印線が引かれる) Set shp = ActiveSheet.Shapes.Add…

フォルダ内の特定ファイル特定シート特定セルの値を集計3

Option Explicit Sub クリア() Dim lastRow As Integer With ThisWorkbook.Sheets("マスタ") lastRow = .Cells(Rows.Count, 4).End(xlUp).Row .Range(Cells(7, 5), Cells(lastRow, 9)).ClearContents .Range("D2:D4").ClearContents .Range("E3:F3").ClearCo…

フォルダ内の特定ファイル特定シート特定セルの値を集計2

Option Explicit Sub Prosess2() Dim wb As Workbook Dim tempPath As String Dim newPath As String Dim newWb As Workbook Dim lastRow As Long Dim strMonth As String Dim storagePath Dim val1 As String Dim val2 As String Dim TargetNum As Long Dim…

フォルダ内の特定ファイル特定シート特定セルの値を集計1

Option Explicit Const strSearchWord As String = "削除" & vbLf & "フラグ" Const strDefFileName As String = "RPA用集計.xlsx" Const masterSheet As String = "マスタ" 'マクロツールブックのマスタシート名 Const masterStartRow As Integer = 7 Dim s…

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,…

Excel VBA Shapesコレクションで罫線を引く

オブジェクト.Shapes.AddLine( BeginX, BeginY, EndX, EndY )・オブジェクト:ワークシートのオブジェクトを指定 ・BeginX : 始点X座標を指定 ・BeginY : 始点Y座標を指定 ・EndY :終点X座標を指定 ・EndY : 終点Y座標を指定 ActiveSheet.Shapes.AddLine(200…

UiPath 配列の要素数を取得する関数(Length)

■(例)配列 arrayFiles の要素数を取得する場合 arrayFiles.Lenth

UiPath ダイアログのテキストボックスに初期値を設定する方法

■参考URL UiPathの入力ダイアログで初期値をいれたり複数選択するようにする方法 | while(isプログラマ)

VBA エラー処理

■開発時にどのようなエラーが起きて対処しなければならなかったか覚書 ①ファイル、フォルダの存在確認 Excel VBA フォルダパスの有無を確認する - ray88’s diary Excel VBA 指定されたファイルパスが存在するか確認する - ray88’s diary ②ファイルが既に開か…

ExcelVBA フィルター解除する(フィルターがかかっていたら)

■呼び出し元プロシージャ Sub test() Dim bookPath As String Dim sheetName As String Dim wb As Workbook bookPath = "C:\Users\デスクトップ\テスト\売上確定情報.xlsx" sheetName = "Sheet1" 'リンクを更新しないでブックを開く Set wb = Workbooks.Open…

VBA ファイルの存在確認(FileSystemObject)

■呼び出し元プロシージャ Sub test() Dim filePath As String Dim Result As Boolean filePath = "C:\Users\cryst\OneDrive\デスクトップ\テスト\テストフォルダ\テスト.xlsx" If IsExistsFile(filePath) Then MsgBox "ファイルは存在します" Else MsgBox "…

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

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

ExcelVBA 複数の条件に合致する行番号を取得する(2つ以上の列のセルの値に合致する行)

■参考URL 複数の条件に合う行番号を取得するには -行列 A列 B列 C列 D列- その他(Microsoft Office) | 教えて!goo Sub テスト() Dim i As Variant i = Evaluate("SUM((A1:A15=C1)*(B1:B15=D1)*ROW(A1:A15))") If i <> 0 Then MsgBox i Else MsgBox "該…

ExcelVBA リンクの更新を無視してブックを開く

■以下のような場合にリンクの更新確認のアラートを無視して(更新せず)ブックを開くコード ※Openメソッドの2番目の引数は「UpDateLinks」なのでここをFalseにすることでリンクを更新しない。 Sub openBook() Dim bookPath As String Dim wb As Workbook boo…

Excel VBA Findメソッドで検索する際にセル結合がある場合

■セル結合がある場合は以下2点がポイント ①セルの検索範囲を全てのセルにする(Cells にする) ②SerchorderをxlByColumnsではなく、xlByRowsにする sub main() call.Cells.Find(What:="検索値", SearchOrder:=xlByRows) end sub ■使用例 Sub FindCell() Dim…

temp2

Sub test2() Dim Aファイル As String Dim Bファイル As String Dim Cファイル As String Dim wb_A As Workbook Dim wb_B As Workbook Dim wb_C As Workbook Dim searchResult() As Variant Dim sourceCol As Integer Aファイル = "C:\テスト\Aファイル.xlsx…

一時保存(後ほど削除予定)

Sub get_file_sheet() Dim fn(10000) 'フォルダ内ファイル名 Dim sn(10000, 2) 'フォルダ内エクセルファイル名、シート名 Dim i As Long, j As Long, k As Long, x As Long Dim mypath As String 'フォルダパス Dim ext As String '拡張子検索変数 'フォルダ…