質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

329閲覧

このデータをデータモデルに追加する、に常にチェックを入れておく方法はありませんか?

Y.Kondo

総合スコア1

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

1グッド

0クリップ

投稿2024/02/01 07:10

実現したいこと

VBAである元データからピボットテーブル(シート)を作成するコードを書きましたが、その際に「このデータをデータモデルに追加する」にチェックボックスが入っている状態にしたいのです。
VBAのコードを教えていただくか、エクセルの設定で可能なのかどうか教えてください。

発生している問題・分からないこと

値フィールドの設定の「重複しない値の数」を表示したいのです。

該当のソースコード

特になし

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

調べましたが、ピボットテーブル作成時に手動でチェックを入れるという内容しか出て来ませんでした。

補足

特になし

tatsu99👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

VBAである元データからピボットテーブル(シート)を作成するコードを書きましたが、その際に「このデータをデータモデルに追加する」にチェックボックスが入っている状態にしたい

  1. Connections オブジェクトの Add2 メソッドによって新しい接続( WorkBookConnection オブジェクト)を作成する際、引数 CreateModelConnection に True を渡す。

  2. 上記 1 で作成された接続を外部データソースとする PivotCache オブジェクト を PivotCaches オブジェクトの Create メソッドによって作成する。

  3. 上記 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

sk.exe

総合スコア740

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問