
初めて質問します。
VBAを4月から始めました。
ネットでいろんな関数を見ましたが全然わかりません。
VBAの勉強と編集するセルが多いので一括でどうしてもやりたいので質問します。
sheet1(参照元のシート)
sheet2(印刷出力用のシート)
sheet1のあるセル内(結合なしの1セル内)にこのような文章があります。
目次
○○○○○○○○○○○○○○○○○○です。
目次
○○○○○○○○○○○○○○○○○○です。
目次
○○○○○○○○○○○○○○○○○○です。
・
・
・
sheet2は、印刷用でセルの幅が違うので下記のよう出力したいです。
試しにsplit関数でvbLfを目印に使って、変数.variantに代入、for nextで複数のセルに分割して出力することでこの形にすることができました。
目次
○○○○○○○○○○○○
○○○○○○です。
目次
○○○○○○○○○○○○
○○○○○○です。
目次
○○○○○○○○○○○○
○○○○○○です。
・
・
・
問題点としては、目印になる改行コードの挿入ができていないことです。
sheet1は、指定の文字数でvbLfを挿入、vbLfがあれば次の文字から指定の文字数をやり直す。
このような形にできればいいです。
目次vbLf
○○○○○○○○○○○○vbLf○○○○○○です。vbLf
目次vbLf
○○○○○○○○○○○○vbLf○○○○○○です。vbLf
目次vbLf
○○○○○○○○○○○○vbLf○○○○○○です。vbLf
・
・
・
1セル毎に手作業で改行をしていく以外に手はないでしょうか?
皆様のお知恵をお貸しください。
No.1ベストアンサー
- 回答日時:
こんなので、参考になりますか?
半年やっていれば、このくらいのコード、読めますよね?
Sub sample()
Dim A As Variant
Dim B As Variant
Dim i As Long
Dim j As Long
A = Range("A1").Value
For i = 1 To Len(A)
B = B & Mid(A, i, 1)
If Mid(A, i, 1) = vbLf Then
j = 0
Else
j = j + 1
End If
If j >= 12 Then
B = B & vbLf
j = 0
End If
Next i
Range("A2").Value = B
A = Split(B, vbLf)
Range("A3").Resize(UBound(A)) = WorksheetFunction.Transpose(A)
End Sub

No.3
- 回答日時:
こんにちは
直接の回答ではありませんが・・・
>sheet2は、印刷用でセルの幅が違うので下記のよう出力したいです。
要は、Sheet1では長く1行になっている文を、Sheet2ではセル幅におさめて改行(=折返し)表示にしたいということと解釈しました。
原稿データは全てSheet1にあるものと推測しますので、Sheet2の各セルには書式で「折り返して全体を表示する」を設定しておきます。
その上で、値を参照する際に、コピペで行っているのであれば「形式を選択して~」から「値」でペースト。
あるいは、(多分)Sheet1と対応するセルが決まっているのでしょうから、あらかじめ「=Sheet1!A1」のような参照式を設定しておけば良さそうに思います。
このような仕組みにしておくことで、VBAなどを利用せずとも、常にSheet1の内容がSheet2に反映されるようになりますので、そのままで印刷が可能になるものと想像します。
ただし、正確に10文字とか12文字で改行されるというわけにはいかないとは思いますが…
(エクセルの折返し制御依存なので)
また、Sheet1の文章が長すぎて、Sheet2のセルの表示範囲に収まり切らないケースが生じ得ますが、それに関してはVBAの場合でも同様と思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 改行ごとに行を追加し、数量を分割 4 2023/07/11 16:39
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Visual Basic(VBA) 配列の勉強をしています。使用する変数の意味、検索条件の書き方が難しいです。 2 2022/09/15 14:06
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- Excel(エクセル) エクセル2013「次のページ数に合わせて印刷」が小さすぎる 9 2023/03/28 10:18
- Excel(エクセル) 条件に合った数値の合計を表示させたい関数と条件指定の方法 3 2023/05/13 16:07
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) エクセルの書式設定の表示形式で設定した文字を文字列としてコピーしたい 1 2022/12/21 10:41
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- Excel(エクセル) Excelにて、行の最後のセルの値をコピーして別sheetに張りつけるVBAコードをご教授願います 3 2022/11/20 14:35
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセル セル内の文字数を超えたら自動的に折り返して表示
Excel(エクセル)
-
【VBA】特定の文字で改行(次の行)に行きたい。
Visual Basic(VBA)
-
エクセルで決まった文字数で改行し,複数行の別のセルに移動させる方法
Excel(エクセル)
-
-
4
実行時エラー 438になった時の対処法を教えて下さい。
Visual Basic(VBA)
-
5
【Excel VBA】 テキストファイルを、特定文字列で改行を入れてExcelに一行ずつ出力
Excel(エクセル)
-
6
Excel_VBAで改行コードの無いファイルを開きたい。
Excel(エクセル)
-
7
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
8
エクセルにて指定文字数以上の時、自動で改行する方法について御存知であれば御教示下さい。
その他(コンピューター・テクノロジー)
-
9
VBAのオートフィルターで該当行がない場合に処理を止めたい
Excel(エクセル)
-
10
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
11
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
12
ExcelのVBAでGoToの代わりに…
Excel(エクセル)
-
13
VBAでの結合セルのコピー&ペースト
Excel(エクセル)
-
14
VBAでEmpty値って何ですか?
Excel(エクセル)
-
15
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
16
エクセル イベントマクロ Changeイベントを複数作りたい
Access(アクセス)
-
17
【Excel VBA】セル内に改行を挿入したい
Excel(エクセル)
-
18
エクセルVBAでNumLockキーの状態を確認する
Excel(エクセル)
-
19
エクセルで1個飛ばしで、一括でコピペする方法は有りますか?
Excel(エクセル)
-
20
エクセルで1行に入力文字数制限と自動改行
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル: セルの枠を超えて表示
-
セル内の一部の文字だけをハイ...
-
Excel countif関数で取り消し線...
-
エクセルファイルに _x000D_ と...
-
セルは大きくさせず、中の文字...
-
Excel入力で勝手にエンター押さ...
-
Excelでcsvやtxtで保存する時に...
-
マウスポインターが白十字のまま
-
CSVファイルでテキストの改行の...
-
セルを結合しても、文字をセル...
-
エクセルでセルを上下に結合し...
-
エクセルで1つのセルにスクロ...
-
エクセルで画像を透過させて画...
-
エクセル2013で英単語を折り返...
-
エクセルの白黒の反転で困って...
-
エクセルで右隣のセルより優先...
-
JIS水準漢字の選別方法教えてく...
-
エクセルにおいてセル内の文字...
-
セルを結合して中央揃えを行う...
-
エクセルの入力規則プルダウン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル: セルの枠を超えて表示
-
Excel countif関数で取り消し線...
-
セル内の一部の文字だけをハイ...
-
エクセルで1つのセルにスクロ...
-
セルは大きくさせず、中の文字...
-
エクセルでセルを上下に結合し...
-
エクセルファイルに _x000D_ と...
-
マウスポインターが白十字のまま
-
Excelでcsvやtxtで保存する時に...
-
エクセル2013で英単語を折り返...
-
エクセルの白黒の反転で困って...
-
エクセルで画像を透過させて画...
-
全セルの末尾に改行(Alt+Enter...
-
Excel入力で勝手にエンター押さ...
-
セルを結合しても、文字をセル...
-
エクセルの入力規則プルダウン...
-
エクセルで特定の列のセルだけ...
-
VBA:結合されたセルに対する「...
-
エクセルで縦書き時に右側に改...
-
エクセルで右隣のセルより優先...
おすすめ情報