[[20060204162136]] 『折り返し?』(&) ページの最後に飛ぶ

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

 

『折り返し?』(&)

 たびたびすみません。
 エクセルで文書を作成してるのですが、

   A  B  C  D  E
 1 ________________________ ←セルは他の範囲の都合があって
  2 ________________________  結合して1行になっています。
  3 ________________________  
  4 ________________________  

 1行に表示可能な文字だけ入力後、自動的に次の行に文字入力を
 移動させる事が出来る設定方法があると聞いたのですが、
 どうしても自分では見つけられません。
 どなたかご存知の方いらっしゃったら教えてください。

 ※1つのセルの中に入力して折り返して表示でもいいのですが、
  印刷した時に下線を均等に(ノートのように)表示させたいので
  このような方法でいつもプレビューで確認し、はみでていたら
  次の行へ入力しています。

 A列からE列までを結合したセルがあるとします。
 そして、F1 に1行に表示させたい文字数を入力します。
 そして G1 になが〜い文章を書き込んだとします。
 A1=IF(ROW(A1)=1,MID(G$1,1,F$1),MID(G$1,F$1*ROW(A1),F$1))
 と入力し下の行までグリグリっとコピーして下さい。
 こんなので如何でしょうか?  外してたらすみません。
                           (SS)

 もう一案、
 セルが結合されてない場合です。				
 A1,A2,A3・・・へと好き勝手な長さの文章を書いたとします。
 それを、仮にA列:E列の範囲に収めたいとした場合

 まず、A1:E10を選択します。
        (↑行数は適当に判断下さい)			
 次にメニューバー⇒編集⇒フィル⇒文字の割り付け				
 で希望の範囲に文章が収まります。				
				          (SS)


 SSさんありがとうございました。
1つ目のIF関数を使った分はセル範囲を変えてもなんとか
 編集できました。

 2つ目の文字の割付がどうもうまくいきませんでした(TT)
 もう少しチャレンジしてみます・・・

 でも1つ目の関数で期待通りの結果になったので、
 使わせていただきます。

 ありがとうございましたm(__)m

 (&)

 面白そうなので、マクロで作ってみました〜♪

 シートモジュールへ
'---------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim MyVal As Variant, x() As Variant
Dim MyR As Long, c As Long, i As Long, n As Long
If Target.Count <> 1 Then: Exit Sub
If Target.Column <> 1 Then: Exit Sub
If Target = "" Then: Exit Sub
c = 20
MyR = Range("A" & Rows.Count).End(xlUp).Row
For i = 1 To MyR
    MyVal = MyVal & Cells(i, 1)
Next i
Target = ""
ReDim x(1 To Int(Len(MyVal) / c) + 1)
For i = 1 To Len(MyVal) Step c
    n = n + 1
    x(n) = Mid(MyVal, i, c)
Next i
Range(Cells(1, 1), Cells(n, 1)) = Application.WorksheetFunction.Transpose(x)
End Sub

 ・A列に文字を入力してみてください。
 ・A1から反映するようになっています。
 ・取り合えず「20文字」で設定してあります。ご自身で変更してください。

 (キリキ)(〃⌒o⌒)b

 私も一発

 既にA列に入力があった場合、その下のセルには入力されている文字も
 下方に順送り...

 Private Sub Worksheet_Change(ByVal Target As Range)
 Dim myLimit As Long
 myLimit = 10 '<-- 制限文字数
 With Target.Cells(1, 1)
     If .Column <> 1 Then Exit Sub
     If Len(.Value) > myLimit Then
         Application.EnableEvents = False
         x = .Value
         .Value = Left(x, myLimit)
         With .Offset(1)
             .Activate
             Application.EnableEvents = True
             .Value = Right(x, Len(x) - myLimit) & .Value
             SendKeys "{F2}"
         End With
     End If
 End With
 End Sub
 (seiya)

 きりきさん seiyaさん ありがとうございました!!

 これまた感動です(;_;)
 作っていただいたマクロで色々勉強させていただきます。
 ありがとうございました!

 (&)

コメント返信:

[ 一覧(最新更新順) ]


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