0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

#はじめに

テーブル(Salesforceで言えばオブジェクト)の項目値情報として、以下のようなExcelシートがあるとします。
SOQLを記述する時はSQLのようにselect文で*は使えないので、項目名をきちんと指定する必要があります。

Excelには項目名があるのですが、このままコピーしても横につながってくれません。
これが横につながって、各項目の間にカンマなんかつけてくれると非常に便利です。

そこで、Excel VBAを使って便利ツールを作ってみました。

image.png

#使い方はこんな感じです。

1.使いたい項目を選択して、リボンにある縦⇒カンマ区切変換をクリックします。

image.png

2.テキストエディターを開いて、マウスの右クリック、貼り付けを選択します。

image.png

3.縦方向の項目を横方向に並べて、間にカンマを挿入しています。

image.png

#ソース

ソースコードをみたら、2016年に作っていたんですね。古い。元々はAras InnovetorのAMLを作る時の便利ツール。

'-------------------------------------------------------------------
'  AMLのselect句用に縦型のプロパティ一覧を横型のカンマ区切りにする
'
'  2016/10/03 K.Otsubo
'-------------------------------------------------------------------
Public Sub main_4(ByVal control As IRibbonControl)
    Dim vTmp As Boolean
    
    Dim wkString As String
    Dim c As Range, i As Long
    
    wkString = ""
    
    For Each c In Selection
        i = i + 1
        wkString = wkString + "," + CStr(c.Value)
    Next c
    
    wkString = "id" & wkString
    
    'CopyメソッドやPasteメソッドはセルが対象です。
    'セルを使わずに、変数のデータをクリップボードに格納したり、
    'クリップボードに格納されているデータを直接変数に入れるときには
    'DataObjectオブジェクトを使います。
    '
    'DataObjectオブジェクトはMSFormsのメンバです。
    '使用するには、Microsoft Forms 2.0 Object Libraryを参照設定します。
    Dim buf As String
    Dim buf2 As String
    Dim CB As New DataObject
    buf = wkString
    With CB
        .SetText buf        ''変数のデータをDataObjectに格納する
        .PutInClipboard     ''DataObjectのデータをクリップボードに格納する
        .GetFromClipboard   ''クリップボードからDataObjectにデータを取得する
        buf2 = .GetText     ''DataObjectのデータを変数に取得する
    End With
    
    
    'MsgBox wkString
  
End Sub

簡単なルーツですがあれば便利です。

#他にも

ユニケージ開発用にはカンマ区切りでなくて、ブランク区切になるバージョンも準備しています。
また、ファイルレイアウトをクリックすると

ファイルレイアウトのコメント用に順番の数字を表示できるようにしています。

#01.AccountId 02.AssetId 03.BusinessHoursId 04.CaseNumber 05.ClosedDate
#06.Comments 07.ContactEmail 08.ContactFax 09.ContactId 10.ContactMobile
#11.ContactPhone 12.CreatedById 13.CreatedDate 14.Description 15.IsClosedOnCreate
#16.IsEscalated 17.LastModifiedById 18.Origin 19.OwnerId 20.ParentId
#21.Priority 22.Reason 23.SourceId 24.Status 25.Subject
#26.SuppliedCompany 27.SuppliedEmail 28.SuppliedName 29.SuppliedPhone 30.Type
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?