人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ExcelのVBAについて質問です。
ピボットテーブルに文字列を表示させたいと思いましたが、
出来なかったためマクロで配置換え的なものを使っております。
※マクロ構文を画像として添付いたします。

これを実行するとシート1→シート2で配列替えするのですが、
シート1から読みとった最後の値が入ってしまいます。
シート2には行は追加しないでセルを改行して入れたいです。

[シート1]
2017/09/04 りんご あおもり
2017/09/04 りんご やまなし
2017/09/04 みかん えひめ
2017/09/04 なし やまなし
2017/09/05 りんご あおもり
2017/09/06 みかん わかやま
2017/09/06 みかん とちぎ

[シート2]
l りんご l みかん l なし
2017/09/04 l あおもり l えひめ l やまなし ←項目果物が複数ある場合は行は追加しないで
l やまなし l l ←セルを改行して入れたい
2017/09/05 l l l やまなし
2017/09/06 l l わかやま l
l l とちぎ l

1505709356
●拡大する

●質問者: japan-nan
●カテゴリ:コンピュータ 科学・統計資料
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● いつか
●300ポイント ベストアンサー

お望みの答えとは違うかもしれませんが、

以下 9/21日に書き換えました、

これではだめでしょうか。

出来上がった表(赤枠)から改良(緑枠)して整頓(青枠)した表の
背景が青い部分だけを見ればお望みのものになると思います。
f:id:gfik:20170921185650p:image

関数はこうなります。
f:id:gfik:20170921185651p:image


いつかさんのコメント
ああ、やっとたぶん質問内容を理解できました。 たぶん、 x(dicA(tdi(i,1), dicB(tdl(i,2) = tdl(i,3) の部分を if len(x(dicA(tdi(i,1), dicB(tdl(i,2))) = 0 then x(dicA(tdi(i,1), dicB(tdl(i,2) = tdl(i,3) elseif len(tdl(i,3)) > 0 then x(dicA(tdi(i,1), dicB(tdl(i,2)) = x(dicA(tdi(i,1), dicB(tdl(i,2)) & vbCrLf & tdl(i,3) endif でできるかもしれないです。 私自身ミスが多いいのにvbaで実行して確認していないため、たぶんできると思うです。 後、私のように他のことをやっている合間に答えている身としましては vba部分はコピペできるようにしてもらえるとありがたいです。

japan-nanさんのコメント
この度はご連絡が遅くなりまして申し訳ございませんでした。 VBA部分の記載に関しまして今後は気をつけて質問させていただきます。 改行コード!思い通りに出力することが出来ました。ありがとうございました。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ