vba

16進数→10進数(RGB)

vba

#80CADE → R:128 G:202 B:222 Dim StrHex As String Dim intVal As Integer Dim R As Range Set R = Range("I30") Do Until R.Value = "" 'R StrHex = Mid(R.Value, 2, 2) intVal = Val("&H" & StrHex) R.Offset(, -4).Value = intVal 'G StrHex = Mid(R.Val…

selectSingleNode 取得方法いろいろ

ちょっとメモ Dim tempE, targetE As IXMLDOMElement Dim temStr1, temStr2, temStr3 As String Set targetE = tempE.selectSingleNode("title[text()='" & temStr1 & "']") Set targetE = tempE.selectSingleNode("book[title/text()='" & temStr1 & "']") …

結合セルを解除

vba

解除後に値を入れる。 Dim r As Range Set r = Range("G8") Dim str As String Dim adr As Variant Dim c Do Until r.Offset(, 1).Value = "" If r.MergeCells = True Then str = r.Value adr = r.MergeArea.Address r.MergeCells = False For Each c In Ran…

ワークシートの指定方法

vba

今まではこうしてた。 Dim R As Range Set R = Sheets("Sheet1").Range("A1") 'または Set R = Worksheets("Sheet1").Range("A1") これはWorksheetの「Name」で指定する方法。だからシート名称を変えるとエラーが出る。 不便だよね。気分によってシート名称…

VBAでVLookup

vba

DataName = Application.WorksheetFunction.VLookup(DataID, DataSheet.Columns("A:C"), 2, False)

マクロダイアログが大変な事に・・・

vba

Subプロージャてんこ盛りブックのマクロダイアログって、スゴイ事になってるよね。 そんな時は[Private]を付けるとダイアログに表示されなくなる。 Sub Test1() MsgBox Now End Sub Private Sub Test2() MsgBox Now End Sub ただし、[Private]の付いたプロー…

右クリックメニューに登録・削除

vba

エクセル 右クリックメニューに登録 値の貼り付けの方法だと、いちいち「マクロの実行」をしなければならない。マンドクセ('A`) なので、ブックを開いたら処理をするようにした。 以下はThisWorkbookモジュールに記載。OnAction の "Main.LoadALL" は標準モジュ…

テキストの書き出し・・・FSO(FileSystemObject) の参照設定とサンプル

vba

エディタの メニュー - ツール - 参照設定 - 「Microsoft Scripting Runtime」 サンプル Dim FSO As New FileSystemObject Dim TS As TextStream Set TS = FSO.CreateTextFile(Filename:=ThisWorkbook.Path & "\test.txt", Overwrite:=True) TS.WriteLine "…

Split の要素数を取得

vba

Split って配列でしょ?だったらレングthじゃん。 Dim SplitCount As Integer SplitCount = Split(temStr, "+").Length (゚Д゚)ハァ? もしかして Count か?な訳ねーよなー SplitCount = Split(temStr, "+").Count ですよね〜 調べてみると Variant型にいれて …

ファイルの入出力

普通、VB6 or VBAでファイル入出力の処理をする時に、ファイル番号を任意に割り振ります。しかし、処理するファイルが沢山になってくると、ファイル番号の管理が大変になってきます。そのような時は、FreeFile関数のリターン値を使うと、今空いているファイ…

文字列の置換

vba

古いデータが入っているエクセルブックを改修する作業をしていた。現在のシステムでも動作させるには、データを変更しなければならない箇所が沢山ある。 普通は「検索と置換」ダイアログで行う。ただ、置換したいデータが複数ある場合、何度も処理するのは大…

最終データの取得

vba

With ActiveSheet.UsedRange MaxRow = .Find("*", , xlFormulas, , xlByRows, xlPrevious).Row MaxCol = .Find("*", , xlFormulas, , xlByColumns, xlPrevious).Column End With No.8 ワークシートの最終行、最終列を取得する これはスバラシイ。いろいろな…

VBAで正規表現(RegExp)を使う時の参照設定とサンプル

vba

エディタのメニュー - ツール - 参照設定 - Microsoft VBScript Regular Expressions 5.5 全角を半角にするサンプル Public Function setItem_RangeFormat(str As String) As String 'str = StrConv(str, vbWide) Dim RE As New RegExp Dim mc As MatchColle…

エクセル 右クリックメニューに登録 値の貼り付け

vba

Sub pastepaste() Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False End Sub Sub main() Dim myCBCtrl As CommandBarButton Set myCBCtrl = Application.CommandBars("Cell").Controls.Add(Type:=msoC…

vbaでregexp

vba

regexpの参照設定は「Microsoft VBScript Regular Expressions 5.5」

フルパスからフォルダを取得

vba

Function GetFolder(str As Variant) '2.Split関数でファイル名を操作(XL2000のみ) 'Dim Var As Variant 'Var = Split(str, "\") '\マークを区切り文字にして配列化 'Dim i As Integer 'Dim fPath As String 'fPath = "" 'For i = 0 To UBound(Var) - 1 …

UsedRangeを使用して文字を置換するVBA

vba

Private Sub CommandButton1_Click() 'A1の値を検索し、あればB1の値に置換するマクロ Dim r As Range Set r = ThisWorkbook.Sheets("変換リスト").Range("A1") Dim UsedCell As Range Dim i As Integer Dim sss As Variant Set UsedCell = ThisWorkbook.She…