• 締切済み

Excel セル内文字列編集

(Excel2003/WinXP) いつも大変お世話になっています。 Excelの任意のセル内に文字列があり、 その中をドラッグして部分文字列を選択します。 その選択した文字列を同じセル内の任意の位置に移動するには、 {Ctrl}+cや{Ctrl}+vを使わないとすると、 どんな方法が考えられますか? (Word的な編集テクニックです) テキストボックスに置き換えても どうもうまく実装できません。 なんとかこれを実現する方法を探してます。 既存のテキストエディターとリンクする、 アドインなどもやってみましたが、 機能的にはOKなんですが、いまいち満足していません。 スマートな方法はないものでしょうか? VBA&API、なんでもいいので、 教えていただければ幸いです。 いつも質問ばかりで気が引けるのですが、 よろしくお願いいたします。

みんなの回答

noname#79209
noname#79209
回答No.7

#6です、 そのような経緯があるなら、Excelですね。 VISIOでは計算式は出来ません(出来ないこともないのですが、先生方には無理でしょう) 失礼ました。

Dor_001
質問者

補足

Shell関数を使いフリーのEditorを起動し、APIを使って終了確認を行うやり方にしました。とりあえず、対象Cellで{ESC}でEditor起動、 再度{ESC}で同セルの更新を行うことにしました。 既存のEditorを使わない方法があればまた教えてください。 ありがとうございました。

noname#79209
noname#79209
回答No.6

> 必要な機能は >・ドラッグ移動ができること >・{Enter}でChr(vbLF)が挿入できること 私はこの掲示板の「ドラッグ移動」が時として煩わしく思うときがあります。 要は、 エクセルを表計算ソフトとしてでなく、文章の位置決めがワードより楽なワープロソフトとしてお使いのようなので、 むしろ「VISIO」のほうが、ご要望に近いのではと思います。

Dor_001
質問者

お礼

現在ぼくの手がけているソフトは、通信簿の印刷データ作成のためのものです。特に所見欄は何度も文章を練る必要があります、ところがこのソフトを使っていただく多くの先生は残念なことにWordレベルの知識しかありません。 まして、DOS時代からの{Ctrl}+? というキー操作は慣れていません。 VISIOについて、詳しくは調べていませんが、購入に踏み切るわけにいきませんし、適切かどうか疑問です。 すべてをWordでやれないことはないと思いますが、 成績や所見の1学期、2学期、学年末の一覧性が必要だったり、FontSizeを動的に変えたり、Justifyメソッドを使ったり、 印刷は最新学期のみ(前学期まで印刷済みの用紙に重ね印刷をします)だったり、Excelでないとちょっと辛い部分もあります。 でもExcelを使う一番の理由はぼくの趣味です(笑) vizzarさん、とても貴重な時間をさいて、ご意見やご回答対応していただき、ありがとうございました。

  • vista2446
  • ベストアンサー率46% (131/279)
回答No.5

Wordでドラッグして選択、またはダブルクリックやトリプルクリックで選択して、任意の位置にドラッグ&ドロップして移動。これを『Word的な編集テクニック』と言われているんだと思いますが、Excelには必要のない機能です。Excelは表計算ソフトであり、ワープロソフトではないためVBAでも難しいのではないかと思います。 文書をExcelで作成しなければならない理由があるんだと思いますが、カット&ペーストをスマートではないと感じられるなら、Wordでの文書作成をお勧めします。高度な表計算が必要なときはExcelをWordに取り込めばいいことだし、簡単な計算ならWordでも出来ますし。。。 ここの掲示板はそのような編集モジュールが組み込まれているんでしょう。

Dor_001
質問者

補足

正面からの解決方法はないでしょうか? もちろん簡単にはできないでしょうね。 ただ、あったら便利だとは思いませんか? いまはとりあえず、外部エディターを起動し、 その編集機能を借りて、書き戻すという方法で対応しています。 つまり、任意のセルをSelectして、ショートカットを押下すると、 テキストエディターが立ち上がり、SelectしたCellの内容を 取り込む、その後は当該テキストエディターの機能で文章を編集し、 終わったら、ショートカットキー押下で元のセルに書き戻すという方法をとっています。 これを何とか自前でできないかというのが趣旨です。 必要な機能は ・ドラッグ移動ができること ・{Enter}でChr(vbLF)が挿入できること くらいです。

  • AmuroRay
  • ベストアンサー率45% (246/538)
回答No.4

ども。 再び初級シスアドです。 >文字列を同じセル内の任意の位置に移動するには、 >(Word的な編集テクニックです) このWord的な編集テクニックとは具体的にどのようなものですか? それがわかればヒントになるかもしれません。 補足をお願いします。

Dor_001
質問者

補足

Wordでは文章の一部をドラッグすると反転表示されます。 この点はExcelでも同じです。 ただ、Wordでは反転表示された部分をつかみ直すことができ、 それを、任意の場所へ移動することができるのです。 文章を作っているとしばしば使う機能です。 Excelでは反転まではできるのですが、それをつかみ直すことができず 当然、反転した文字列を移動することはできません。 反転表示した部分の文字サイズや色を設定することができる程度です。 例) このWord的な編集テクニックとは具体的にどのようなものですか? (「具体的に」をドラッグして反転表示します。 それをつかみなおして、文章の先頭で落とします) → 具体的にこのWord的な編集テクニックとはどのようなものですか? ちなみに、この掲示板にも同様な編集機能があります。

  • kona4Q
  • ベストアンサー率45% (731/1600)
回答No.3

Excel2003の編集→「Officeクリップボード」に選択した複数のデータを保管は?。 Excel画面の右側に、Officeクリップボードが表示されます。 範囲選択→右クリック→コピーで、保管されます。 質問と違っていたらご容赦を。

Dor_001
質問者

補足

ごめんなさい、同一セル内の部分文字列を選択(反転表示されます)して、それを同一文字列内の他の位置で落としたいわけです。 Wordでは当たり前の機能なんですが、Excelではできないんですよ。 なんとかVBA&APIやらを使って実現したいというのが、質問の趣旨です。

  • AmuroRay
  • ベストアンサー率45% (246/538)
回答No.2

ども。 初級シスアドです。 2通りあります。 右手左手を使うもの 1.コピー対象セルを左クリック。 2.セルの強調枠を「Ctrl」+{左ドロップ」 3.コピー先セルで「左ドロップ解除」 マウスだけで行うもの 1.コピー対象セルを右クリック。 2.セルの強調枠を右ドロップ。 3.コピー先セルで「ここにコピー」 どうでしょうか?

Dor_001
質問者

補足

これはセルから他のセルへのコピーですね。 同一セル内の文字列のなかで行いたいのです。

noname#79209
noname#79209
回答No.1

> その選択した文字列を同じセル内の任意の位置に移動するには、 > {Ctrl}+cや{Ctrl}+vを使わないとすると、 移動と言われているなら、 {Ctrl}+Xと{Ctrl}+vですが、これを間違えて「うまくいかない」と言われていませんか?

Dor_001
質問者

お礼

すいません。回答が誤解を受けそうですね。 {Ctrl}+Xと{Ctrl}+vを使いたくないのです。 あくまでも、Wordと同等機能を実現したいわけです。

Dor_001
質問者

補足

ごめんなさい。Xでした。単純なミスです。