[[20050622132632]] 『長い文章をどうやって入れる?』(よね) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『長い文章をどうやって入れる?』(よね)
たとえば、A1〜A5までの5行のセルがあったとします。列幅は100としましょう。
この中に、一続きの文章を入力したいのです。テキストボックスを使えばいいのでしょうけれど、各行に波線(点線)の横線が入っているので、テキストボックスではその線が消えてしまうか、見えても線と文字がきれいに揃いません。5行のセルを独立したものとして入力していくと、あとで編集するときに、1文字追加すると、次の行も手動で編集せねばならなくなります。また、画面ではぴったり文字が入っているのに印刷すると切れたりします。結合しても、同様に波線が表示できません。別々の連続したセルにひとつながりの文章を入力する方法はないでしょうか?
[エクセルのバージョン]
Excel2003
[OSのバージョン]
WindowsXP


 >別々の連続したセルにひとつながりの文章を入力する方法はないでしょうか? 
 ないです。
 何文字で改行するか決まっていれば、まだ対応できますが・・・

   (INA)

 ご指摘ありがとうございます。
文字数を決めるというのは、入力する文字数を決めてそれ以上は
そのセルに入力できないようにするっていうことですね。


 mid関数で他のセルに文字を抜き出すです。
 =mid(A1,1,10)
 =mid(A1,11,20)
 のように。

  (INA)

 チョット外れてるかもわかりませんが?
例えばA1セルに長文が入っているとした場合
まず、新たに文章を収めたい範囲を選択します。
例えば、A1:M20あたりを選択し
メニューバー⇒編集(E)⇒フィル(I)⇒文字の割り付け(J)
でどうでしょうか?選択した範囲内に連続した文章が出来たと思いますが。
                           (SS)


 > チョット外れてるかもわかりませんが?
 そうでしたか・・・(^^;)
  (INA)

 私も割付を提案しようと思ったが、
 >あとで編集するときに、1文字追加すると、
 >次の行も手動で編集せねばならなくなります。
とあるので、割付ではこの点が解決できず、思いとどまった。(みやほりん)

 >mid関数で他のセルに文字を抜き出すです。
私もこれを使っていますが,禁則処理ができたらな〜って思います。(...)

みなさまありがとうございます。

mid関数は不勉強でよく分かりませんが、
試した結果なんとか入りました。
今後もいろいろ試してみます。

昨日は、あのあと、文字数を指定してやったりしておりました。

また、フィル→文字の割付もうまくいきました。
これはいいですね。知りませんでした。感謝です。
P明朝だとはみ出ますが、ふつうの明朝だときれいに入ります。
文章の校正を終えた最終段階でこれをやればいいですね。
一度割り付けてばらした文を、もとに戻すことはできないんですよね。

おかげさまで必要な作業が今日中に終わりそうです。


 お邪魔します。
もう既に解決済みの様ですが、ちょっと作ってみました。
でも、実用化するには色々と問題がありそうです。(自己満足??)
とりあえず、A列とB列に限定してみました。
今は、8文字で次のセルに移動します。
シートの見出しを右クリック→コードを表示させてそこに貼り付けます。
何かの参考になれば幸いです。
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim MyA As Variant
Dim MyAry() As Variant
Dim MyStr() As Variant
Dim i As Long, j As Long, s As Long
Dim k As Long, n As Long
Dim x As Long
If Target.Column > 2 Then Exit Sub
x = 8 '8文字で次のセルに移動します。
For j = 1 To 2
    k = 0: n = 1
    MyA = Range(Cells(1, j), Cells(65536, j).End(xlUp)).Value
    If Not IsArray(MyA) Then
        ReDim MyA(1 To 1, 1 To 1)
        MyA(1, 1) = Cells(1, j).Value
    End If
    For i = 1 To UBound(MyA, 1)
        For s = 1 To Len(MyA(i, 1))
            k = k + 1
            ReDim Preserve MyAry(1 To k)
            MyAry(k) = Mid(MyA(i, 1), s, 1)
        Next
    Next i
    If k > 0 Then
        ReDim MyStr(1 To UBound(MyAry) \ x + 1, 1 To 1)
        For i = 1 To UBound(MyAry)
            MyStr(n, 1) = MyStr(n, 1) & MyAry(i)
            If i Mod x = 0 Then n = n + 1
        Next
        Application.EnableEvents = False
            Columns(j).ClearContents
            Cells(1, j).Resize(UBound(MyStr, 1)).Value = MyStr
        Application.EnableEvents = True
    End If
Next j
Erase MyA, MyAry, MyStr
End Sub
(SoulMan)

 やぁ〜驚きました、今朝は、解決済みの事だとは思いながら私の思いつきを書いて会社に
 出かけましたが、こんなにレスが付いているとは思いませんでした。
 Excelって奥深いですねー。

 >>一度割り付けてばらした文を、もとに戻すことはできないんですよね。

 そんなことはないですよ。
 再度範囲を選択し直せば任意のセルに割り付けできますよ (^o^)。

                      (SS)

遅くなりましたが、ほんとに勉強になりました。
これ全部印刷しておきます。

(よね)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.