セル内改行

スプレッドシート (Calc) について
返信する
banban
記事: 4
登録日時: 11月 6, 2008, 5:05 pm

セル内改行

投稿記事 by banban »

はじめまして。

セル内改行は、Ctrl + Enter で入るそうですが、そのセルをコピーしてテキストエディタなどにペーストすると改行が無くなってしまいます。
ちなみに、エクセルで同じことをすると、""で囲まれますが、改行も入ります。

改行も含めてコピペする方法は無いでしょうか?

使用しているバージョンは、OpenOffice.org 3.0.0 です。
よろしくお願いいたします。
アバター
parpy
記事: 388
登録日時: 11月 4, 2008, 11:50 pm

Re: セル内改行

投稿記事 by parpy »

セルを選択>F2>Ctrl+a>Ctrl+C
と操作することで、改行込みでコピーすることが出来ます。
もっとスマートな操作方法があるかも知れませんがとりあえず。
banban
記事: 4
登録日時: 11月 6, 2008, 5:05 pm

Re: セル内改行

投稿記事 by banban »

parpy さんが書きました:セルを選択>F2>Ctrl+a>Ctrl+C
ありがとうございます。
そうですね、ひとつのセルであればそれでOKなのですが、複数のセルを縦一列選択して、コピペしたかったのです。

具体的には、DBに入れるデータをエクセルで入力していて、式を使ってINSERT文を合成しています。
これを縦一列分選択して、テキストエディタに持っていき、""を置換してDBに読み込ませています。
(実際の貼り付け先は、ウェブフォームですが)

同じことをCalcでやろうとしたところ、改行が入らず、この入力方法が使えないので困っておりました。

他の入力方法も検討してみたのですが、この方式の入力効率や反映スピード、柔軟性にかなうものは考えられません。
この件については、別にエクセルで構わないのですが、他の使いたい機能があってOOoの移行を検討しておりました。

こうしたほうがいいよ、などアドバイス等ございましたら、ぜひお聞かせください。
banban
記事: 4
登録日時: 11月 6, 2008, 5:05 pm

Re: セル内改行

投稿記事 by banban »

解決案を思いついたのですが、後一歩のところでうまく行きません。

<解決案>
DBに改行と認識されれば良いので、エスケープ文字で"\n"に置き換えれば良い。

<試したこと>
式を以下のように入力しましたが、ダメでした。
=SUBSTITUTE(A1;char(13);"\n")

どうも、式内でA1など他のセルの参照をした時点で、改行コードが空白に置き換わっているようなのです。
試しに、以下のようにしてみたところ、置き換わりました。

=SUBSTITUTE(A1;" ";"\n")

そんな訳で、もし関数に渡る時点で改行が無くなっているのであれば、どんな関数を用意してもダメっぽいですね。
アバター
parpy
記事: 388
登録日時: 11月 4, 2008, 11:50 pm

Re: セル内改行

投稿記事 by parpy »

解決おめでとうございます。
問題のコピー&ペースト時のCalcの挙動ですが、1行が二行にならないでくれるという意味ではデータ処理上好ましい場面も結構あるのではと感じています。

ノウハウを積み重ねて使いこなして行きたいですね。
banban
記事: 4
登録日時: 11月 6, 2008, 5:05 pm

Re: セル内改行

投稿記事 by banban »

いや、解決はしていないんです。
参照する時点で、セル内改行がスペースに置き換わっている ⇒ じゃあ、スペースを\nに置換すればいい。
これだと、スペースを使えないことになります。

今のところ、関数で加工しようにも、改行がどこに入っていたのか、知る術がない以上、どうにもできません。
残念ながら、エクセルに戻るしかないですね。

そもそも、入力したままのデータで取り出せないという点はおかしい仕様な気がしています。
改行を取り除くのはユーザーの任意であるべきで、それが邪魔なら関数で置換するなど方法があればいいのでしょう。

単純に考えて、A1にセル内改行のデータを入れ、B1に「=A1」と入れたとき、同じ表示にならないのは変ですよね?

それと実験で、こんなことをしてみました。\nはセル内改行です。

[A1]ABC\nDEF
[B1]ABC DEF
[C1]=IF(A1=B1;"YES";"NO")

こうすると、C1にはYESと表示されます。入力したデータが違うのに、等しいと判断されましたよ。
う~む。これはいいのだろうか。。。
アバター
parpy
記事: 388
登録日時: 11月 4, 2008, 11:50 pm

Re: セル内改行

投稿記事 by parpy »

すみません解決してませんね。
寝ボケてました、、。

確かに改行は空白として取り扱われてしまうようですね。
ooougにも結構以前に報告が上がっていました。
http://oooug.jp/faq/index.php?faq%2F3%2F146

残念ながら今回のbanbanさんの用途には向かなかったようです。
issuesには報告されている様ですので、いずれオプションなどで動作を設定できるようになるといいですね。
どうかOpenOffice.orgは違う場面で引き続き役立てて貰えればと思います。
kohei
記事: 2
登録日時: 7月 25, 2008, 1:58 am

Re: セル内改行

投稿記事 by kohei »

これは恐らくこのissueで報告されてる不都合ですね。
http://www.openoffice.org/issues/show_bug.cgi?id=35913

一応パッチは上がっているのですが、まだそのパッチが取り込まれるまでにはしばらくかかりそうです。
Go-oo版のOOoではこのパッチが取り込まれているのでそっちのバージョンを試してみる、という手もあります。
http://go-oo.org/

そのパッチの含まれている3.0版はここからダウンロードすることが出来ます。
http://go-oo.mirrorbrain.org/stable/win ... 3.0-19.exe (コアパッケージ)
http://go-oo.mirrorbrain.org/stable/win ... ja-3.0.exe (日本語パック)
#日本語の環境で使うにはまずコアパッケージをインストールして、その後に日本語パックをインストールすると使うことが出来ます。

そのパッチは僕個人的に既にテスト済みなのですが(ちなみに僕はgo-oo版のOOoの開発に従事するものです)、確かにまだ完璧ではないにしろ、大抵の場合だったら問題なく動作してくれます。コピペの場合も改行をちゃんとそのままで貼り付けができます。
アバター
parpy
記事: 388
登録日時: 11月 4, 2008, 11:50 pm

Re: セル内改行

投稿記事 by parpy »

Go-ooでは解決済みなんですね。
早くOOoにもパッチが適用されて欲しいですね。
自分の手持ちのWEBアプリでは現行の挙動の方が都合がよかったりするもので、現状も結構好きです。
ショートカットの組み合わせなど、何らかの方法で挙動を選択出来るようになったら、かなりうれしいですね。
foral
記事: 32
登録日時: 3月 7, 2009, 2:14 pm

Re: セル内改行

投稿記事 by foral »

返信する

“Calc”に戻る