この記事では、VBAを使用して、指定されたデータを目的のカスタム数値形式にフォーマットするマクロを作成します。

この例の生データは、営業チームのデータで構成されています。生データには、名前、製品ID、製品価格、販売数量、および総売上が含まれます。

ArrowRawData

マクロを実行する前に、列Pにカスタム番号形式を指定し、列Qにカスタム番号形式を適用する列番号を指定する必要があります。

「フォーマット」ボタンをクリックして、「フォーマット」マクロを実行します。

ArrowAfterRunningMacro

マクロは、指定されたカスタム番号形式に従って、指定されたデータの形式を変更します。

ロジックの説明

このマクロは、列Pから数値フォーマットを選択し、列Qの列番号で指定された列に数値フォーマットを割り当てます。

このマクロでは、ループに2つのDOUNTILループを使用しています。最初のDOUNTILループは、すべての数値形式が列に適用されるまでループするために使用されます。 2番目のDOUNTILループは、指定され、コンマ(、)で区切られたすべての異なる列番号を検索するために使用されます。

コードの説明

strCol = Left(txt、InStr(txt、 “、”)-1)

上記のコードは、コンマ(、)で区切られたすべての列番号を含む文字列から列番号を区切るために使用されます。

Columns(CInt(strCol))。NumberFormat = wks.Cells(intRow、16).Value上記のコードは、指定された列にカスタム数値形式を適用するために使用されます。

txt = Right(txt、Len(txt)-InStr(txt、 “、”))

上記のコードは、定義された文字列から列番号を削除した後、省略された文字列を区切るために使用されます。

コードについては、以下に従ってください

Option Explicit

Sub Formatting()

'Declaring variables

Dim wks As Worksheet

Dim intRow As Long

Dim strCol As String

Dim txt As String

'Initializing the variables

Set wks = Worksheets("Format")

intRow = 4

'Looping in 16th column until empty value is found

Do Until IsEmpty(wks.Cells(intRow, 16))



'Assigning the value of custom number format

txt = wks.Cells(intRow, 17)



'Looping and finding all the column number separated by comma(,)

Do Until InStr(txt, ",") = 0



'Getting the column number

strCol = Left(txt, InStr(txt, ",") - 1)

'Assigning the number format

Columns(CInt(strCol)).NumberFormat = wks.Cells(intRow, 16).Value

'Truncating the string for finding the next column number after the comma(,)

txt = Right(txt, Len(txt) - InStr(txt, ","))

Loop



'Assigning the number format

Columns(CInt(txt)).NumberFormat = wks.Cells(intRow, 16).Value

intRow = intRow + 1

Loop

End Sub

このブログが気に入ったら、FacebookやFacebookで友達と共有してください。

[#_GoBack] ##皆様からのご意見をお待ちしております。私たちの仕事を改善し、あなたのために改善する方法をお知らせください。 [email protected]までご連絡ください