Excel VBA質問箱 IV

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

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


1399 / 13646 ツリー ←次へ | 前へ→

【74694】ヘッダー内容をテキストボックスに表示 コクの微糖 13/8/31(土) 10:08 質問[未読]
【74695】Re:ヘッダー内容をテキストボックスに表示 γ 13/8/31(土) 10:50 発言[未読]
【74696】Re:ヘッダー内容をテキストボックスに表示 コクの微糖 13/8/31(土) 11:04 発言[未読]
【74697】Re:ヘッダー内容をテキストボックスに表示 γ 13/8/31(土) 11:22 発言[未読]
【74698】Re:ヘッダー内容をテキストボックスに表示 コクの微糖 13/8/31(土) 11:46 発言[未読]
【74699】Re:ヘッダー内容をテキストボックスに表示 γ 13/8/31(土) 12:15 発言[未読]
【74700】Re:ヘッダー内容をテキストボックスに表示 コクの微糖 13/8/31(土) 12:40 発言[未読]
【74701】Re:ヘッダー内容をテキストボックスに表示 γ 13/8/31(土) 13:04 発言[未読]
【74702】Re:ヘッダー内容をテキストボックスに表示 コクの微糖 13/8/31(土) 13:09 発言[未読]
【74714】Re:ヘッダー内容をテキストボックスに表示 コクの微糖 13/9/2(月) 11:36 質問[未読]
【74715】Re:ヘッダー内容をテキストボックスに表示 kanabun 13/9/2(月) 14:18 発言[未読]
【74717】Re:ヘッダー内容をテキストボックスに表示 コクの微糖 13/9/2(月) 17:30 お礼[未読]

【74694】ヘッダー内容をテキストボックスに表示
質問  コクの微糖  - 13/8/31(土) 10:08 -

引用なし
パスワード
   ヘッダーの登録を忘れない様に、
ブックを開くと、ヘッダー入力フォームが立上り、
フォーム上テキストボックスに、ヘッダー内容を登録させようとしてます。

テキストボックスに入力した文字を、
ヘッダーに登録させることは出来たのですが、
現状入力されているヘッダーの内容をテキストボックスに表示させる事が出来ません。
どなたか、宜しくお願いします。

■ヘッダー入力フォーム
テキストボックス1 : 入力用 & 内容表示用にしたい
コマンドボタン : 登録用

【74695】Re:ヘッダー内容をテキストボックスに表示
発言  γ  - 13/8/31(土) 10:50 -

引用なし
パスワード
   ▼コクの微糖 さん:
>テキストボックスに入力した文字を、
>ヘッダーに登録させることは出来たのですが、
ヘッダーの意味確認も兼ねて、そのコードを教えて下さい。

【74696】Re:ヘッダー内容をテキストボックスに表示
発言  コクの微糖  - 13/8/31(土) 11:04 -

引用なし
パスワード
   ▼γ さん:

下記コードになります。

Private Sub CommandButton1_Click()

If Not TextBox1.Value = Empty Then
If Not TextBox1 Is Nothing Then
With ActiveSheet.PageSetup
    .LeftHeader = _
    "&12□" & TextBox1 & "▲▲▲" & Chr(10) & "" & Chr(10) & "    End With
  End If
   End If
   Unload フォームヘッダー
End Sub

【74697】Re:ヘッダー内容をテキストボックスに表示
発言  γ  - 13/8/31(土) 11:22 -

引用なし
パスワード
   Private Sub UserForm_Initialize()
  TextBox1.Value = ActiveSheet.PageSetup.LeftHeader
End Sub
では、どのような問題があるのでしょうか。

【74698】Re:ヘッダー内容をテキストボックスに表示
発言  コクの微糖  - 13/8/31(土) 11:46 -

引用なし
パスワード
   ▼γ さん:

>Private Sub UserForm_Initialize()
>  TextBox1.Value = ActiveSheet.PageSetup.LeftHeader
>End Sub

では、下記2点の問題があります。
1.何故かテキストボックス上の文字表示の後ろに空欄が出来ており、
 文字一番後ろの空欄が表示されている形になっているので、
 見た目上、表示は無く空欄表示状態となります。
2.先程のコードに記載した様に、
 ヘッダー登録内容を、"textBox1"と"▲▲▲"に分けており、
 "TextBox1"のみ入力により変更致しますので、
 "TextBox1"のみ表示させたいのですが、
 上記コードですと、テキストボックスに「textBox1▲▲▲」との表示になります。

【74699】Re:ヘッダー内容をテキストボックスに表示
発言  γ  - 13/8/31(土) 12:15 -

引用なし
パスワード
   > フォーム上テキストボックスに、ヘッダー内容を登録させようとしてます。
という説明では、到底想像出来ない内容ですな。

すでに"▲▲▲"という文字列がヘッダーに書かれていることを前提にするんですね?
"▲▲▲"という文字列が決まったユニークなものなら、
InStr関数でその文字列の位置を求め、
5文字目から、その位置の前までの文字列を取り出す、
ということになるでしょう。

【74700】Re:ヘッダー内容をテキストボックスに表示
発言  コクの微糖  - 13/8/31(土) 12:40 -

引用なし
パスワード
   ▼γ さん:

テキストボックスに、ヘッダーに書かれていることを表示させたいのです。
又、すでに"▲▲▲"というユニークな文字列がヘッダーに書かれていることを前提
にしたいです。
InStr関数とは、どの様に使用するのでしょうか。

【74701】Re:ヘッダー内容をテキストボックスに表示
発言  γ  - 13/8/31(土) 13:04 -

引用なし
パスワード
   >InStr関数とは、どの様に使用するのでしょうか。
ヘルプをお調べください。

【74702】Re:ヘッダー内容をテキストボックスに表示
発言  コクの微糖  - 13/8/31(土) 13:09 -

引用なし
パスワード
   ▼γ さん:
>>ヘルプをお調べください。
>ご丁寧な対応ありがとうございます。

【74714】Re:ヘッダー内容をテキストボックスに表示
質問  コクの微糖  - 13/9/2(月) 11:36 -

引用なし
パスワード
   ヘルプを見ても分かりませんので、
改めて質問させて頂きます。

ヘッダーに
.LeftHeader ="&12□" & textBox1 & "▲▲▲"
と入力されており、
"&12□"と "▲▲▲"は固定の為、
TextBox1の文字を、TextBox1に表示させたいです。

InStr関数を使用するというのは分かったのですが、
初心者の為、よく分かりませんので、
どの様にコードを組んだらいいか、どなたか教えて頂ければ幸いです。


【74715】Re:ヘッダー内容をテキストボックスに表示
発言  kanabun  - 13/9/2(月) 14:18 -

引用なし
パスワード
   ▼コクの微糖 さん:

>.LeftHeader ="&12□" & textBox1 & "▲▲▲"

これは正確には

 .LeftHeader ="&12□" & TextBox1.Text & "▲▲▲"

ですね?(TextBox1.Value でもいいですけど、とにかくプロパティを
省略しないほうが可読性がいいですよ)


>"&12□"と "▲▲▲"は固定の為、
>TextBox1の文字を、TextBox1に表示させたいです。
>
>InStr関数を使用するというのは分かったのですが、

LeftHeader にある文字列をいちど文字列変数に入れますと、

Dim ss As String
ss = ActiveSheet.PageSetup.LeftHeader

となります。
ここで ss 中の"▲▲▲"の位置をInStr関数を使って求めます。

Dim n As Long
n = InStr(ss, "▲▲▲")

n > 0 なら n桁目から "▲▲▲"が始まっている、ということですので、
 文字列を nより前に限定します。
 ss = Left$(ss, n)

つづけて、先頭の4文字分 "&12□" をカットしたいので、こう書きます。
 ss = Mid$(ss, 5)

以上をまとめて(変数の宣言はプロシージャの最初でまとめて行います)
コードにしてください。

【74717】Re:ヘッダー内容をテキストボックスに表示
お礼  コクの微糖  - 13/9/2(月) 17:30 -

引用なし
パスワード
   ▼kanabun さん:

本当にありがとうございます。
ご丁寧なご説明のお陰で、勉強にもなり大変助かりました。

早速お教え頂いたコード試したのですが、
ss = Left$(ss, n - 1)
にするとイメージ通りに動作確認出来ました。

心よりお礼申し上げます。
ありがとうございました。

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