Access (VBA)

Access VBAに関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(指定なし : 指定なし)
テーブルのフィールド(リッチテキスト形式)をコピーして文字色等を維持したままExcelにコピーしたい
投稿日時: 24/03/02 12:29:37
投稿者: kazukun1967

下記のプログラムを実行したところ
フィールドの中が1行であるなら問題なくコピー貼り付けができるのですが
改行されて複数行あると、エクセルにコピーした時に別々のセルにコピーされてしまいます
1つのセルに表示させることはできますでしょすか?
 
Y = 2
For Y = 2 To 21
Do Until rsM.EOF
rsM.FindFirst "IMS='" & WsObj.Cells(Y, 11) & "'"
If rsM.NoMatch = False Then
 r = rsM.AbsolutePosition + 1
 With Screen.ActiveDatasheet
  .SetFocus
  .SelTop = r 'レコード位置
  .SelHeight = 0
  .SelLeft = 24 'フィールド位置
  .SelWidth = 0
  DoCmd.RunCommand acCmdCopy
 End With
 WsObj.Cells(Y, 25).PasteSpecial・・・1
End If
Next
 
1の後に
If WsObj.Cells(Y + 1, 25) <> "" Then
    yy = Y
    Do Until WsObj.Cells(yy + 1, 25) = ""
  WsObj.Cells(Y, 25) = WsObj.Cells(Y, 25) & WsObj.Cells(yy + 1, 25)
    yy = yy + 1
    Loop
End If
を入れて、1行にまとめたのですが、書式が反映されません
 
もしくはフィールドを普通にエクセルに貼り付けると
<div>12/26 <font color=red><strong>あいうえお</strong></font>かきくけこ</div>
<div>12/27 さしすせそ<font color=red><strong>1/11たちつてと</strong></font></div>
 
といったhtml文のような形になるのですが、これをうまくExcelに反映させることはできますでしょうか?
 

回答
投稿日時: 24/03/04 12:42:28
投稿者: Suzu

引用:
WsObj.Cells(Y, 25) = WsObj.Cells(Y, 25) & WsObj.Cells(yy + 1, 25)
  :
を入れて、1行にまとめたのですが、書式が反映されません

 
Cells の 既定プロパティは、Value です。
Value プロパティ には、色情報を含めた書式情報 は含まれませんから、
書式が反映されるはずありませんよ。
 
VBAは、手動機能を実行する命令です。
 
Exccel で 書式情報を含めた二つのセルを
単純な方法で、一つにする方法が、一般機能でありますか?
少なくとも当方は知りません。
 
例えば、セル情報には、背景色も含まれます。
書式情報には、背景色も含まれます。
それを前提としたら、単純に一つにする事はできませんよね?
 
そこからも、Excelの機能として
二つに分かれたセルを一つにする事は難しい事が分かると思います。
 
 
WEB検索を行うと 下記の様な情報がありました。
書式付でExcelからAccessへデータを移動する方法
https://q.hatena.ne.jp/1317997902
 
参考になりませんかね。
 
 
動作確認やテストは行っていませんが、
リッチテキストの改行コードと、Excelのセル内改行コード(&H10)は一緒でしたっけ?
違うなら、リッチテキスト内の文字コードを一時的に&H10に変えてみるとか。
 
あとは、まぁ、タグ情報はあるのですから、変換するコードを準備し、
タグから、出力する方が簡単かもですね。

トピックに返信