はじめまして。
セル内改行は、Ctrl + Enter で入るそうですが、そのセルをコピーしてテキストエディタなどにペーストすると改行が無くなってしまいます。
ちなみに、エクセルで同じことをすると、""で囲まれますが、改行も入ります。
改行も含めてコピペする方法は無いでしょうか?
使用しているバージョンは、OpenOffice.org 3.0.0 です。
よろしくお願いいたします。
セル内改行
Re: セル内改行
ありがとうございます。parpy さんが書きました:セルを選択>F2>Ctrl+a>Ctrl+C
そうですね、ひとつのセルであればそれでOKなのですが、複数のセルを縦一列選択して、コピペしたかったのです。
具体的には、DBに入れるデータをエクセルで入力していて、式を使ってINSERT文を合成しています。
これを縦一列分選択して、テキストエディタに持っていき、""を置換してDBに読み込ませています。
(実際の貼り付け先は、ウェブフォームですが)
同じことをCalcでやろうとしたところ、改行が入らず、この入力方法が使えないので困っておりました。
他の入力方法も検討してみたのですが、この方式の入力効率や反映スピード、柔軟性にかなうものは考えられません。
この件については、別にエクセルで構わないのですが、他の使いたい機能があってOOoの移行を検討しておりました。
こうしたほうがいいよ、などアドバイス等ございましたら、ぜひお聞かせください。
Re: セル内改行
解決案を思いついたのですが、後一歩のところでうまく行きません。
<解決案>
DBに改行と認識されれば良いので、エスケープ文字で"\n"に置き換えれば良い。
<試したこと>
式を以下のように入力しましたが、ダメでした。
=SUBSTITUTE(A1;char(13);"\n")
どうも、式内でA1など他のセルの参照をした時点で、改行コードが空白に置き換わっているようなのです。
試しに、以下のようにしてみたところ、置き換わりました。
=SUBSTITUTE(A1;" ";"\n")
そんな訳で、もし関数に渡る時点で改行が無くなっているのであれば、どんな関数を用意してもダメっぽいですね。
<解決案>
DBに改行と認識されれば良いので、エスケープ文字で"\n"に置き換えれば良い。
<試したこと>
式を以下のように入力しましたが、ダメでした。
=SUBSTITUTE(A1;char(13);"\n")
どうも、式内でA1など他のセルの参照をした時点で、改行コードが空白に置き換わっているようなのです。
試しに、以下のようにしてみたところ、置き換わりました。
=SUBSTITUTE(A1;" ";"\n")
そんな訳で、もし関数に渡る時点で改行が無くなっているのであれば、どんな関数を用意してもダメっぽいですね。
Re: セル内改行
いや、解決はしていないんです。
参照する時点で、セル内改行がスペースに置き換わっている ⇒ じゃあ、スペースを\nに置換すればいい。
これだと、スペースを使えないことになります。
今のところ、関数で加工しようにも、改行がどこに入っていたのか、知る術がない以上、どうにもできません。
残念ながら、エクセルに戻るしかないですね。
そもそも、入力したままのデータで取り出せないという点はおかしい仕様な気がしています。
改行を取り除くのはユーザーの任意であるべきで、それが邪魔なら関数で置換するなど方法があればいいのでしょう。
単純に考えて、A1にセル内改行のデータを入れ、B1に「=A1」と入れたとき、同じ表示にならないのは変ですよね?
それと実験で、こんなことをしてみました。\nはセル内改行です。
[A1]ABC\nDEF
[B1]ABC DEF
[C1]=IF(A1=B1;"YES";"NO")
こうすると、C1にはYESと表示されます。入力したデータが違うのに、等しいと判断されましたよ。
う~む。これはいいのだろうか。。。
参照する時点で、セル内改行がスペースに置き換わっている ⇒ じゃあ、スペースを\nに置換すればいい。
これだと、スペースを使えないことになります。
今のところ、関数で加工しようにも、改行がどこに入っていたのか、知る術がない以上、どうにもできません。
残念ながら、エクセルに戻るしかないですね。
そもそも、入力したままのデータで取り出せないという点はおかしい仕様な気がしています。
改行を取り除くのはユーザーの任意であるべきで、それが邪魔なら関数で置換するなど方法があればいいのでしょう。
単純に考えて、A1にセル内改行のデータを入れ、B1に「=A1」と入れたとき、同じ表示にならないのは変ですよね?
それと実験で、こんなことをしてみました。\nはセル内改行です。
[A1]ABC\nDEF
[B1]ABC DEF
[C1]=IF(A1=B1;"YES";"NO")
こうすると、C1にはYESと表示されます。入力したデータが違うのに、等しいと判断されましたよ。
う~む。これはいいのだろうか。。。
Re: セル内改行
すみません解決してませんね。
寝ボケてました、、。
確かに改行は空白として取り扱われてしまうようですね。
ooougにも結構以前に報告が上がっていました。
http://oooug.jp/faq/index.php?faq%2F3%2F146
残念ながら今回のbanbanさんの用途には向かなかったようです。
issuesには報告されている様ですので、いずれオプションなどで動作を設定できるようになるといいですね。
どうかOpenOffice.orgは違う場面で引き続き役立てて貰えればと思います。
寝ボケてました、、。
確かに改行は空白として取り扱われてしまうようですね。
ooougにも結構以前に報告が上がっていました。
http://oooug.jp/faq/index.php?faq%2F3%2F146
残念ながら今回のbanbanさんの用途には向かなかったようです。
issuesには報告されている様ですので、いずれオプションなどで動作を設定できるようになるといいですね。
どうかOpenOffice.orgは違う場面で引き続き役立てて貰えればと思います。
Re: セル内改行
これは恐らくこの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の開発に従事するものです)、確かにまだ完璧ではないにしろ、大抵の場合だったら問題なく動作してくれます。コピペの場合も改行をちゃんとそのままで貼り付けができます。
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の開発に従事するものです)、確かにまだ完璧ではないにしろ、大抵の場合だったら問題なく動作してくれます。コピペの場合も改行をちゃんとそのままで貼り付けができます。