| 
    
     |  | こんばんは。 訂正があったため再送です。
 
 >セルのデータに外国人の名前のデータがあります。
 >大文字小文字が混在しているデータです。
 >
 >この名前の文字列の表示される長さを知りたいのですが、
 >具体的に言うと、そのデータを利用して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の変更がワード側にも反映されるはずです。
 
 試してみてください。
 
 |  |