Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


14 / 13057 ツリー ←次へ | 前へ→

【79463】セル内の改行されている行を指定したいです。 あみ 17/10/24(火) 19:26 質問[未読]

【79464】Re:セル内の改行されている行を指定したい... マナ 17/10/24(火) 19:42 発言[未読]
【79465】Re:セル内の改行されている行を指定したい... あみ 17/10/24(火) 19:51 質問[未読]
【79469】Re:セル内の改行されている行を指定したい... マナ 17/10/24(火) 22:21 発言[未読]
【79479】Re:セル内の改行されている行を指定したい... あみ 17/10/26(木) 17:04 お礼[未読]
【79470】Re:セル内の改行されている行を指定したい... でれすけ 17/10/24(火) 22:49 発言[未読]
【79480】Re:セル内の改行されている行を指定したい... あみ 17/10/26(木) 17:05 お礼[未読]

【79464】Re:セル内の改行されている行を指定した...
発言  マナ  - 17/10/24(火) 19:42 -

引用なし
パスワード
   ▼あみ さん:
>セル内の改行されている行を指定して編集したいのですが中々できません。

具体的にどんな編集をしたいか例をあげることは可能でしょうか。
あと、参考までに、どんなコードを試してみたかも教えてください。

【79465】Re:セル内の改行されている行を指定した...
質問  あみ  - 17/10/24(火) 19:51 -

引用なし
パスワード
   マナさん返信ありがとうございます。

実際にやりたい事は、改行されている行数を指定して、その行の書式を変更したいです。(太字にしたり、赤字にしたり。。。)

1つのセルに下記のように入力されている状態だとします。
1行目:○○○○○○
2行目:△△△△△△
3行目:□□□□□□
とあり、3行目だけ(最後の行)を指定して赤字にしたい等です。

現在1つのツールを作ろうと考えておりまして、セルを指定する所まではできたのですが、セル内を指定するコードが全く見当もつかず、まだ何も書けてはいません。
お恥ずかしながらVBAの改行から学んでいる所です。

本日はもう返信できませんがよろしくお願いいたします。

【79469】Re:セル内の改行されている行を指定した...
発言  マナ  - 17/10/24(火) 22:21 -

引用なし
パスワード
   ▼あみ さん:

>本日はもう返信できませんがよろしくお願いいたします。

わたしも、明日の夜まで返信できません。
このあたりを勉強してみてください。

ht tp://www.start-macro.com/55/w/s060.html
ht tps://www.moug.net/tech/exvba/0050122.html

【79470】Re:セル内の改行されている行を指定した...
発言  でれすけ  - 17/10/24(火) 22:49 -

引用なし
パスワード
   こんばんは。

例えばこんな感じになるでしょうか。


------ 標準モジュール --------------------------

Sub sample()

Dim txt As New clsMultText

 Set txt.CellRange = ActiveCell
 
 txt.Characters(2, 1).Font.ColorIndex = 3

End Sub


----- クラスモジュール clsMultText -------------
Private mCell As Range
Private mLines As Variant

Public Property Set CellRange(ByVal vNewValue As Range)
  Set mCell = vNewValue.Cells(1, 1)
  mLines = Split(mCell.Value, vbLf)
End Property

Public Property Get Lines(Optional ByVal Line) As Variant
  If IsMissing(Line) Then
   Lines = mCell.Value
  Else
   Lines = mLines(Line - 1)
  End If
End Property

Public Property Get Characters(Optional Line, Optional Start, Optional Length) As Characters
Dim i As Long, NC As Long
 
 If IsMissing(Line) Then
   Set Characters = mCell.Characters
   Exit Sub
 End If
 
 NC = 0
 
 For i = 1 To Line - 1
  NC = NC + Len(mLines(i - 1)) + 1
 Next
 
 If IsMissing(Start) Then Start = 1
 
 If IsMissing(Length) Then
   Set Characters = mCell.Characters(NC + Start, Len(mLines(i)) - Start + 1)
 Else
   Set Characters = mCell.Characters(NC + Start, Length)
 End If
 
End Property

【79479】Re:セル内の改行されている行を指定した...
お礼  あみ  - 17/10/26(木) 17:04 -

引用なし
パスワード
   返答ありがとうございます。
リンク先を読ませていただきます。

今回の質問はこれで終わりにして、また分からなければ再度聞かせて頂きます。
ご丁寧な対応ありがとうございました!

【79480】Re:セル内の改行されている行を指定した...
お礼  あみ  - 17/10/26(木) 17:05 -

引用なし
パスワード
   返答ありがとうございます。

まだコードがなんと書かれているかが理解できないので、実際に動かしながら確かめていきたいと思います。

ご丁寧な対応ありがとうございました!

14 / 13057 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free