[[20110819111945]] 『セルの書式について』(メロン) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『セルの書式について』(メロン)
 またまた申し訳ありません。
 今sheet1のG14〜J14セルまでが結合されていて、折り返して表示と設定されています。
 ここに、別シートのあるセル内で改行されているセル(ここではA1セルとします)の内容をsheet1のG14セルに転記させたとき、行の高さが自動で変わるようにはできないでしょうか?
 Autofitなど使ってみましたが変わりません。

 Sheets("sheet1").range("G14").value=Sheets("別シート").range("A1").value

 1.丸ごとコピーしちゃう
  Sheets("別シート").range("A1").Copy Sheets("sheet1").range("G14")

 2.「折り返して表示」を設定する
  Sheets("sheet1").range("G14").value=Sheets("別シート").range("A1").value
  Sheets("sheet1").range("G14").WrapText = True

 (Yujin)

 Yujinさんありがとうございます。
 2.「折り返して表示」を設定する
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 ですが、すでに設定してあります。
 まるごとコピーしてみましたが、別シートは一つのセル内に入力されていて、転記させるsheet1のG14セルはG14〜J14までの結合セルです。だからなのか行の高さは変わりません。
 他にできることはありますか?
 (メロン)


 >G14〜J14セルまでが結合されていて
 見逃してました。すみません。

 Sub SAMPLE()
    Dim buf, STLen As Integer

    Sheets("sheet1").range("G14").value=Sheets("別シート").range("A1").value
    STLen = Sheets("sheet1").Len(Range("G14").Value)
    With Sheets("sheet1").Range("G14:J14")
         buf = .EntireRow.Cells(3).Resize(, Columns.Count - 2).Formula
        .Worksheet.Rows(65536).Copy .EntireRow
        .Cells(1).Value = String(STLen, "x")
        .HorizontalAlignment = xlCenterAcrossSelection
        .VerticalAlignment = xlTop
        .WrapText = True
        .Merge
        .HorizontalAlignment = xlLeft
        .EntireRow.Cells(3).Resize(, Columns.Count - 2).Formula = buf
    End With
    Erase buf
 End Sub

 少し強引ですが、65536行目が空白の行であれば大丈夫かと。

 (Yujin) 

 Yujinさんありがとうございます。
 STLen = Sheets("sheet1").Len(Range("G14").Value)
 でこのオブジェクトはプロパティーまたはメソッドをサポートしていませんと出ます。
 エクセルのバージョンは2002なのですが、2002では使用できないのでしょうか?
 (メロン)


 たびたびごめんなさい。直打ちしたもので、位置を間違えました。
 STLen = Len(Sheets("sheet1").Range("G14").Value)
 これでいかがですか?

 (Yujin)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.