実現したいこと
VBAである元データからピボットテーブル(シート)を作成するコードを書きましたが、その際に「このデータをデータモデルに追加する」にチェックボックスが入っている状態にしたいのです。
VBAのコードを教えていただくか、エクセルの設定で可能なのかどうか教えてください。
発生している問題・分からないこと
値フィールドの設定の「重複しない値の数」を表示したいのです。
該当のソースコード
特になし
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
調べましたが、ピボットテーブル作成時に手動でチェックを入れるという内容しか出て来ませんでした。
補足
特になし
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答1件
0
ベストアンサー
VBAである元データからピボットテーブル(シート)を作成するコードを書きましたが、その際に「このデータをデータモデルに追加する」にチェックボックスが入っている状態にしたい
-
Connections オブジェクトの Add2 メソッドによって新しい接続( WorkBookConnection オブジェクト)を作成する際、引数 CreateModelConnection に True を渡す。
-
上記 1 で作成された接続を外部データソースとする PivotCache オブジェクト を PivotCaches オブジェクトの Create メソッドによって作成する。
-
上記 2 で作成された PivotCache オブジェクトの CreatePivotTable メソッドによってピボットテーブルを任意のワークシート上に作成する。
vba
1Sub CreatePivotTableWithConnection() 2 3 Dim wbkTarget As Workbook 4 Dim wsSource As Worksheet 5 6 Set wbkTarget = ThisWorkbook 7 Set wsSource = wbkTarget.Worksheets(1) 8 9 Dim rngSource As Range 10 Set rngSource = wsSource.Cells(1, 1).CurrentRegion 11 12 Dim wbcNew As WorkbookConnection 13 Dim strConnectionName As String 14 Dim strConnectionString As String 15 Dim strCommandText As String 16 17 strConnectionName = "WorksheetConnection_" & wsSource.Name & "!" & rngSource.Address 18 strConnectionString = "WORKSHEET;" & wbkTarget.Path & "\[" & wbkTarget.Name & "]" & wsSource.Name 19 strCommandText = "'" & wsSource.Name & "'!" & rngSource.Address 20 21 Set wbcNew = wbkTarget.Connections.Add2(Name:=strConnectionName, _ 22 Description:="マクロで作成した接続です", _ 23 ConnectionString:=strConnectionString, _ 24 CommandText:=strCommandText, _ 25 lCmdtype:=xlCmdExcel, _ 26 CreateModelConnection:=True, _ 27 ImportRelationships:=False) 28 29 Dim wsDestination As Worksheet 30 Set wsDestination = wbkTarget.Worksheets.Add(After:=wsSource) 31 32 Dim pvcNew As PivotCache 33 Set pvcNew = wbkTarget.PivotCaches.Create(SourceType:=xlExternal, _ 34 SourceData:=wbcNew) 35 Dim pvtNew As PivotTable 36 Set pvtNew = pvcNew.CreatePivotTable(TableDestination:=wsDestination.Cells(3, 1), _ 37 TableName:="ピボットテーブル1") 38 39 Set pvtNew = Nothing 40 Set pvcNew = Nothing 41 Set wbcNew = Nothing 42 Set wsDestination = Nothing 43 Set rngSource = Nothing 44 Set wsSource = Nothing 45 Set wbkTarget = Nothing 46 47End Sub
投稿2024/02/01 09:37
総合スコア1025
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。