• ベストアンサー

文字列操作 空白を空白のままJoinで結合させたいのです。

文字列操作 空白を空白のままJoinで結合させたいのです。 エクセルのいくつかのセルの値を一旦Join で結合させ別BOOKに保存。その後、Split で各セルに書き戻ししてるのですが、空白セルがあると要素数がその分減ってエラーになってしまいます。 例  4つのセルの値の結合が空白が1つあると3つの要素になり、順次4つのセルに書き戻したいのですがエラーになる。 デリミタは$なので ""$555$420$1588 のようになればいいのですが。 どなたかお助け下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • uruz
  • ベストアンサー率49% (417/840)
回答No.2

配列→Join()→文字列→Split()→配列 と言う流れだと思いますが ""(空白)の要素が含まれていても問題なく機能しますよ。 他の原因でエラーが出てるのではないでしょうか ●   配列      Join()           Split() "AA","BB","CC","DD" → "AA$BB$CC$DD" → "AA","BB","CC","DD" "","BB","CC","DD"   → "$BB$CC$DD"  → "","BB","CC","DD" "AA","","CC","DD"   → "AA$$CC$DD"  → "AA","","CC","DD"

yokokama46
質問者

お礼

今一度確認したお陰で気付きました。 ありがとうございます。 またよろしくお願いします。

yokokama46
質問者

補足

そうですよね。私もそう思ってたんですが‥ >他の原因で‥ 念のため今一度確認したらなんと! $が¥に勝手に変更されているでは有りませんか? 通貨の書式のセルの値(¥は付けない表示形式)が空白のとき (デリミタ$) 配列      Join()    Split() "","AA"   ¥AA    エラー   になってしまう。 ついでに受け側のセルの書式も勝手に通貨に変えられてしまうようです。(多分エクセルの余計な親切仕様?) 通貨のセル以外はデリミタ$で問題なしですが、すべてデリミタ?にしてしまいました。 試してませんが、当方エクセル2007ですが、2000や2003でも同じかな? 仕様のような気がしますが、そうであればデリミタ選択の注意点ですね。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • nza49739
  • ベストアンサー率46% (29/62)
回答No.1

答える前に、なぜこのような結合させた状態で別のBookで保存する必要があるのか教えて欲しいです。 というのも、EXCELにはデータだけのコピー・貼り付け機能があるので、これを利用すれば、わざわざ回りくどいことをしなくてもいいので。

yokokama46
質問者

補足

別BOOKはマスタとしています。 すでに登録済みか検索し、近いものもしくは同じものがあった場合マスタから入力シートへ固定情報を転記させる仕様です(入力作業の簡素化) また入力シートは、その内容取り込み別BOOKのマスタに転記していくので、入力シートからマスタ マスタから入力シート及び各種類のシートへ転記という流れがあります。非リレーショナルデータベースみたいなものです。 最初はセル1対1で進めようとしましたが、マスタの閲覧は特に不要なので視認性を求めず入力シートの内容を大分類ごとに結合し集積しておき、必要に応じて呼び出し分解し、必要なシートに書き込んでゆくことにしました。 最初は必須入力のみのセルだけで空白セルの存在がなく問題がなかったのでmyDATA(0)myDATA(1)‥ で問題なかったのですが、空白セルも受け入れなければならない状態になり、表題のように困ってしまった次第です。Dictionaryだと出来るのかな?と思ったのですが、空白を含んでも位置と順番を変えずにシンプルな方法があればと思ってる次第です。セル1対1に戻すにはだいぶ進めすぎてしまったので‥

すると、全ての回答が全文表示されます。

専門家に質問してみよう