OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

エクセルで文章作成

  • 暇なときにでも
  • 質問No.155644
  • 閲覧数259
  • ありがとう数2
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 48% (39/81)

本日他の方が、「エクセルで文章作成できるか」質問されています。それに触発されて質問したく、ご存知でしたら、教えてください。
 以前ソフトウエア会社の方が、各列の列幅を全角1文字分の幅にして、文章をエクセルのワークシートに書いている風に見えたことがありました。やって見ると、1文字を或るセルに入れた後、次ぎの(横書きなので)右セルに自動的に進まないことが(当然ですが)判り、そのときは諦めました。
この右セルに自動的にカーソルを進める対策は、本当にないのでしょうか。VBAを考えても無理でしょうか。
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.4
レベル13

ベストアンサー率 68% (791/1163)

どんなものか作ってみました。
writeModeで横書き、縦書きを指定します。
maxColはA列からこの列数分、この機能が働きます。
maxRowは縦書きの時、折り返す最下段の行です。

シートのコードウインドウに貼り付けます。ご参考に。

Const writeMode = 1 '横書き=1、縦書き=2
Const maxCol = 10 '列(文字)数制限値
Const maxRow = 10 '行(文字)数制限値。縦書きで有効

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
  If Target.Column > maxCol Then Exit Sub

  Dim moji As String '入力文字

  On Error GoTo ErrorHandler
  moji = Target.Value
  With Application
    .EnableEvents = False: Range(Target.Address) = Left(moji, 1)
    .EnableEvents = True '2文字目以降があれば繰り返しChangeイベントを起こす
    With Target
      Select Case writeMode
        Case 1 '横書き
          If .Column < maxCol Then
            Range(.Address).Offset(0, 1).Select '右のセル
          Else
            Range(.Address).Offset(1, 1 - maxCol).Select '次の行
          End If
        Case 2 '縦書き
          If .Row < maxRow Then
            Range(.Address).Offset(1, 0).Select '下のセル
          Else
            Range(.Address).Offset(1 - maxRow, -1).Select '前の列
          End If
        End Select
      End With
    If Len(moji) > 1 Then Selection = Right(moji, Len(moji) - 1)
  End With

  Exit Sub
ErrorHandler:
  Application.EnableEvents = True
End Sub
-PR-
-PR-

その他の回答 (全3件)

  • 回答No.1
レベル10

ベストアンサー率 25% (45/179)

【Enter】の代わりに【Tab】キーを使用するか、 <ツール>→<オプション>→<編集> で、入力後に移動するセルの方向を指定できますよ。  如何でしょう。。。 ...続きを読む
【Enter】の代わりに【Tab】キーを使用するか、
<ツール>→<オプション>→<編集>
で、入力後に移動するセルの方向を指定できますよ。

 如何でしょう。。。
お礼コメント
imogasi

お礼率 48% (39/81)

早速ご回答ありがとうございます。
質問の表現がまずかったと反省していますが、
(1)単漢字の変換のとき
   ENTERやTABなしに、(漢字変換確定のEN   TER入力で次ぎの右隣列に移ること。
(2)2文字以上の語句等を変換のとき、確定のENTE   R入力でその語句を次ぎ次ぎと1列1文字に分解し   て自動的にセットして、次ぎの右隣列に移ること。
を出来ないかと思っていました。もし出来ればエクセルの
シートがマス目原稿用紙+エクセル機能となるので便利です。
投稿日時 - 2001-10-22 22:03:53

  • 回答No.2
レベル11

ベストアンサー率 37% (133/354)

質問の意味が違ったらごめんなさい。 文字を入力したい部分全部に範囲選択。 文字を入力して、Enterすれば、いいのでは? どこでもいいですけど、 たとえば、A4~A10までドラッグして範囲選択して 文字入力して漢字変換し終わったら、Enter、 漢字変換し終わったら、Enterです。 方向キーを押したりクリックしたりしたら、解除されてしまいますが、 この方法なら、別に、 漢字一文 ...続きを読む
質問の意味が違ったらごめんなさい。
文字を入力したい部分全部に範囲選択。
文字を入力して、Enterすれば、いいのでは?

どこでもいいですけど、
たとえば、A4~A10までドラッグして範囲選択して
文字入力して漢字変換し終わったら、Enter、
漢字変換し終わったら、Enterです。

方向キーを押したりクリックしたりしたら、解除されてしまいますが、
この方法なら、別に、
漢字一文字二文字気にする必要なんてないと思いますが。
お礼コメント
imogasi

お礼率 48% (39/81)

ご回答有難うございました。お手数をお掛けしました。
ただ私が思ったのは、例えばA4セルにカーソルを置いて
「あさひが」と入力し、「朝日が」と確定させるため、ENTERキーを押したとき、A4に「朝」、B4に「日」、C4に「が」と入力されカーソルがD4に移るといいな。桝目原稿として使えるし、罫線やエクセルの中の機能が使えて良いなと思っています。表の演算など、自由にできそうです。WORDの機能に不満があるということです。今後ともよろしく。
投稿日時 - 2001-10-23 20:41:26
  • 回答No.3
レベル12

ベストアンサー率 52% (206/389)

VBAならこんな感じでしょうか。 動作確認 WIN98SE+EXCEL200 やってみるとおもしろいですね。 Private Sub Worksheet_Change(ByVal Target As Range) Dim myLen As Integer, myRow As Integer Dim mySt As String On Error GoTo Errhand If Len(R ...続きを読む
VBAならこんな感じでしょうか。
動作確認 WIN98SE+EXCEL200
やってみるとおもしろいですね。

Private Sub Worksheet_Change(ByVal Target As Range)
Dim myLen As Integer, myRow As Integer
Dim mySt As String
On Error GoTo Errhand
If Len(Range(Target.Address)) < 2 Then Exit Sub '1文字なら実行しない
myLen = Len(Range(Target.Address)) '入力(変換後)文字数
mySt = Range(Target.Address).Value '入力済み(変換後)値
myRow = Range(Target.Address).Row '現在の行数
rtnCul = 100 '横マス上限

Application.EnableEvents = False
For i = 1 To myLen
Range(Target.Address).Offset(, i - 1).Value = _
Mid(mySt, i, 1)
Next i
Cells(myRow, rtnCul).End(xlToLeft).Offset(, 1).Select
Errhand:
Application.EnableEvents = True
End Sub

しかし、本来ならばWORDを使用された方がいいでしょう。
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ