Excel VBA質問箱 IV

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

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


8794 / 13644 ツリー ←次へ | 前へ→

【31151】ヘッダーにセルの値を・・・ AA 05/11/12(土) 17:57 質問[未読]
【31152】Re:ヘッダーにセルの値を・・・ かみちゃん 05/11/12(土) 18:03 発言[未読]
【31154】Re:ヘッダーにセルの値を・・・ AA 05/11/12(土) 18:23 質問[未読]
【31156】Re:ヘッダーにセルの値を・・・ かみちゃん 05/11/12(土) 18:29 発言[未読]
【31157】Re:ヘッダーにセルの値を・・・ AA 05/11/12(土) 18:36 発言[未読]
【31158】Re:ヘッダーにセルの値を・・・ かみちゃん 05/11/12(土) 18:43 回答[未読]
【31159】Re:ヘッダーにセルの値を・・・ ichinose 05/11/12(土) 18:51 発言[未読]
【31162】Re:ヘッダーにセルの値を・・・ AA 05/11/12(土) 19:00 お礼[未読]
【31164】Re:ヘッダーにセルの値を・・・ Kein 05/11/12(土) 19:44 発言[未読]
【31160】Re:ヘッダーにセルの値を・・・ AA 05/11/12(土) 18:52 発言[未読]
【31161】Re:ヘッダーにセルの値を・・・ かみちゃん 05/11/12(土) 18:58 発言[未読]
【31153】Re:ヘッダーにセルの値を・・・ Kein 05/11/12(土) 18:06 回答[未読]
【31155】Re:ヘッダーにセルの値を・・・ AA 05/11/12(土) 18:26 発言[未読]
【31163】Re:ヘッダーにセルの値を・・・ AA 05/11/12(土) 19:07 お礼[未読]

【31151】ヘッダーにセルの値を・・・
質問  AA  - 05/11/12(土) 17:57 -

引用なし
パスワード
   過去の回答から、
ActiveSheet.PageSetUp.LeftHeader = Range("A1").VALUE
を使用してセルの値をヘッダーに反映する方法がわかったのですが、
これだとセルの値が文字列で長くても改行しての表示ができません。

上の構文を利用してのヘッダー表示

「あいうえおかきくけこ」



あいうえおか
きくけこ

とヘッダーに表示させるにはどうすればいいのでしょうか・・・

【31152】Re:ヘッダーにセルの値を・・・
発言  かみちゃん  - 05/11/12(土) 18:03 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>ActiveSheet.PageSetUp.LeftHeader = Range("A1").Value
>を使用してセルの値をヘッダーに反映する方法がわかったのですが、
>これだとセルの値が文字列で長くても改行しての表示ができません。
>
>上の構文を利用してのヘッダー表示
>
>「あいうえおかきくけこ」
>
>を
>
>あいうえおか
>きくけこ
>
>とヘッダーに表示させるにはどうすればいいのでしょうか・・・

A1セルをきんちと改行しておけば、そのままのコードでできましたよ。
A1セルが改行できない事情があるならば、せめて、改行の規則性くらいは説明していただかないと・・・
(何文字目で改行するのかとか)

【31153】Re:ヘッダーにセルの値を・・・
回答  Kein  - 05/11/12(土) 18:06 -

引用なし
パスワード
   頭の6文字を切り取り、改行文字を挟んで残りの文字をつなげたらどうかな ?

With Range("A1")
  ActiveSheet.PageSetUp.LeftHeader = _
  Left$(.Value, 6) & vbCrLf & Right$(.Value, Len(.Value) - 6)
End With

というように。

【31154】Re:ヘッダーにセルの値を・・・
質問  AA  - 05/11/12(土) 18:23 -

引用なし
パスワード
   説明が足りなくてもうしわけありません。

元々、3種類のデータがありまして、それぞれが膨大な量のデータなので
ヘッダーの表示を右・中央・左に分けて、ウインドウ枠の固定を設定して
印刷時に行のタイトルとして使用したかったのです。

先ほどの構文で「セルの値&"から入庫する"」 を組んでいたのですが、
この分が中央の区切りへかぶってしまい、どうにか改行できないものか
と考えていた所です。

なのでヘッダーを

A1(セルの値)
から入庫する

という状態にしたいのですが・・・

【31155】Re:ヘッダーにセルの値を・・・
発言  AA  - 05/11/12(土) 18:26 -

引用なし
パスワード
   ▼Kein さん:
>頭の6文字を切り取り、改行文字を挟んで残りの文字をつなげたらどうかな ?
>
>With Range("A1")
>  ActiveSheet.PageSetUp.LeftHeader = _
>  Left$(.Value, 6) & vbCrLf & Right$(.Value, Len(.Value) - 6)
>End With
>
>というように。

説明が足りなくて申し訳ありません。
先ほど上の欄に追加したものが本当です。
せっかくの回答すみません・・・

【31156】Re:ヘッダーにセルの値を・・・
発言  かみちゃん  - 05/11/12(土) 18:29 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>なのでヘッダーを
>
>A1(セルの値)
>から入庫する
>
>という状態にしたい

Keinさんのコードがヒントになりますよ。
vbCrLfでつなげば改行されます。
ただ、A1セルの値が長ければ、何文字めかで改行しないといけないのではないでしょうか?
そこがわからないと、具体的なコードは提示できませんね。
まぁ、Keinさんのコードのとおりなのですが・・・

【31157】Re:ヘッダーにセルの値を・・・
発言  AA  - 05/11/12(土) 18:36 -

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

>ただ、A1セルの値が長ければ、何文字めかで改行しないといけないのではないでしょうか?
>そこがわからないと、具体的なコードは提示できませんね。

A1セルに入る文字は20文字近くあるのですが、これは改行できないのです。
私もKeinさんより提示していただいたコードを見て試してみましたが、

セルの値

から入庫する

と表示されます。この間の空白は無くすことが出来ないのでしょうか?

【31158】Re:ヘッダーにセルの値を・・・
回答  かみちゃん  - 05/11/12(土) 18:43 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>A1セルに入る文字は20文字近くあるのですが、これは改行できないのです。

そういうことは最初から言っていただいたほうがいいかと思います。
でも、必ずその文字数以内に収まるのですか?
長〜い文字列になると、中央のヘッダーと重なると思いますよ。

>私もKeinさんより提示していただいたコードを見て試してみましたが、

試してみてダメなら、どういうコードにしたかは提示していただいたほうがいいと思います。

  ActiveSheet.PageSetup.LeftHeader = Range("A1").Value & vbCrLf & "から入庫する"

でできませんか?
これでも変わらないなら、A1セルの末尾が改行されている可能性があります。

【31159】Re:ヘッダーにセルの値を・・・
発言  ichinose  - 05/11/12(土) 18:51 -

引用なし
パスワード
   ▼かみちゃん さん、みなさん、こんばんは。

>>A1セルに入る文字は20文字近くあるのですが、これは改行できないのです。
>
>そういうことは最初から言っていただいたほうがいいかと思います。
>でも、必ずその文字数以内に収まるのですか?
>長〜い文字列になると、中央のヘッダーと重なると思いますよ。
>
>>私もKeinさんより提示していただいたコードを見て試してみましたが、
>
>試してみてダメなら、どういうコードにしたかは提示していただいたほうがいいと思います。
>
Kein さんのコードの

With Range("A1")
  ActiveSheet.PageSetUp.LeftHeader = _
  Left$(.Value, 6) & vbLf & Right$(.Value, Len(.Value) - 6)
End With

で一行詰まると思います。

CRとLFの区別をしていない(両方、LFと同じに見ている)みたいですね!!

【31160】Re:ヘッダーにセルの値を・・・
発言  AA  - 05/11/12(土) 18:52 -

引用なし
パスワード
   ▼かみちゃん さん:
>そういうことは最初から言っていただいたほうがいいかと思います。
>でも、必ずその文字数以内に収まるのですか?
>長〜い文字列になると、中央のヘッダーと重なると思いますよ。

たびたびすみません。
一応、データ中の最大文字数なので大丈夫かと思います。

>試してみてダメなら、どういうコードにしたかは提示していただいたほうがいいと思います。
>
>  ActiveSheet.PageSetup.LeftHeader = Range("A1").Value & vbCrLf & "から入庫する"
>
>でできませんか?
>これでも変わらないなら、A1セルの末尾が改行されている可能性があります。

Private Sub Workbook_BeforePrint(Cancel As Boolean)
 ActiveSheet.PageSetup.LeftHeader = Range("A1").Value & vbCrLf & "から入庫する"
End Sub

先ほどののヒントで構成したコードですが、かみちゃんさんの提示していただいたコード
と同じ?ようですがうまくいきません。

A1の値は他のシートから=SHEET1!で持ってきた値なので改行が入っているのか分かりません・・・

宣言が間違っているのでしょうか・・・

【31161】Re:ヘッダーにセルの値を・・・
発言  かみちゃん  - 05/11/12(土) 18:58 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>一応、データ中の最大文字数なので大丈夫かと思います。

では、中央のヘッダーと重なることは「絶対ない」ものとします。

>Private Sub Workbook_BeforePrint(Cancel As Boolean)
> ActiveSheet.PageSetup.LeftHeader = Range("A1").Value & vbCrLf & "から入庫する"
>End Sub
>
>先ほどののヒントで構成したコードですが、かみちゃんさんの提示していただいたコード
>と同じ?ようですがうまくいきません。

すみません、私も知らなかったのですが、
ichinoseさんからご指摘があったとおり、
vbCrLf を vbLf としてみてください。
一応、こちらで動作確認しました。

ichinoseさんへ

>CRとLFの区別をしていない(両方、LFと同じに見ている)みたいですね!!

そのようですね。知りませんでした。
またひとつ勉強になりました。ありがとうございます。

【31162】Re:ヘッダーにセルの値を・・・
お礼  AA  - 05/11/12(土) 19:00 -

引用なし
パスワード
   ▼ichinose さん:
>Kein さんのコードの
>
>With Range("A1")
>  ActiveSheet.PageSetUp.LeftHeader = _
>  Left$(.Value, 6) & vbLf & Right$(.Value, Len(.Value) - 6)
>End With
>
>で一行詰まると思います。
>
>CRとLFの区別をしていない(両方、LFと同じに見ている)みたいですね!!

これを

Private Sub Workbook_BeforePrint(Cancel As Boolean)
 ActiveSheet.PageSetup.LeftHeader = Range("A1").Value & vbLf & "から入庫する"
End Sub

でできました!
説明不足で不快なお気持ちにさせてしまい申し訳御座いません。
これで業務が続けられます。ありがとうございました^^

【31163】Re:ヘッダーにセルの値を・・・
お礼  AA  - 05/11/12(土) 19:07 -

引用なし
パスワード
   かみちゃんさん、Keinさん、ichinoseさん

本当にありがとうございました。

【31164】Re:ヘッダーにセルの値を・・・
発言  Kein  - 05/11/12(土) 19:44 -

引用なし
パスワード
   >CRとLFの区別をしていない(両方、LFと同じに見ている)
あ、そうでしたか・・それは知らなかったです。確実に改行できるだろうと思って
vbCrLf にしてみたのですが、ちょっとテストしてから提示した方が良かったですね。
ドーモ。

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