|
こんばんは。
訂正があったため再送です。
>セルのデータに外国人の名前のデータがあります。
>大文字小文字が混在しているデータです。
>
>この名前の文字列の表示される長さを知りたいのですが、
>具体的に言うと、そのデータを利用してWORDにリンクし
>表示されるようになっています。
>
>そのWORDに表示される名前の項目の幅がきまっており、
>長い人は文字幅の倍率を狭める(長体をかける)ことで
>対処したいです。
>
>VBAを利用してなんとか長体対象の長い名前データを判別
>したいのですが、なんとかできるものなのでしょうか?
>
>大文字小文字が混在していますし、表示される文字の長さ
>ですので、文字数の判別ではなんともなりません。
これは、Word側のフォントが全角:半角が2:1になっている
計算しやすいフォントを選択しないと面倒ですよね!!
もう一つは、ワード側でExcelワークシートの挿入を使って
Oleobjectとして、ワークシートを配置して、セルの書式を
「縮小して全体を表示する」に設定して運用する方法です。
Excelのセルの書式の「縮小して全体を表示する」を選択した時のような
表示になればよいのですよね!!
新規ブックの標準モジュールに
'=====================================================================
Sub main()
Dim wk As Object
Dim ole As Object
Dim bk As Object
ThisWorkbook.Worksheets("sheet1").Cells(1, 1).Value = "ICHINOSE EXCEL"
Set wk = CreateObject("word.application")
wk.Visible = True
With wk.documents.Add
Set ole = .Shapes.AddOLEObject(ClassType:="Excel.Sheet.8", LinkToFile _
:=False).OLEFormat
Set bk = ole.Object
With bk.Worksheets("sheet1").Cells(1, 1)
.ShrinkToFit = True
.Formula = "='" & ThisWorkbook.Path & "\[" & ThisWorkbook.Name & "]Sheet1'!$a$1"
End With
'.SaveAs Filename:=ThisWorkbook.Path & "\文書1.doc"
'.Close False
End With
'wk.documents.Open ThisWorkbook.Path & "\文書1.doc"
End Sub
上記のコードを含んだブックを名前を適当な名前で保存した後に
mainを実行してみてください。
ワードが起動され、ワードドキュメントにOLEとしてExcelワークシートが挿入されます。
OLEシートのセルA1に マクロを含むブックのSheet1のセルA1をリンクしました。
(OLEのシートのセルA1に「ICHINOSE EXCEL」と表示されます)
このOLEシートの体裁を整えて、セルA1だけ表示するように調整します。
Excel側のSheet1のセルA1の変更がワード側にも反映されるはずです。
試してみてください。
|
|