• ベストアンサー

ラベルのCaptionについて

ラベルのCaptionなのですが、Power Pointの全置換の様に 一気に換えれる方法はないのでしょうか。 それも,一つのFormではなく一つのプロジェクト毎にです。 例:[年月] → [年月日]  デザイン時に置換できる方法があれば教えて もらえますか? コードで書くのであれば、プロジェクトの指定したFormのラベルのCaptionを 取得し、実行時に変換できる関数など作成できるのでしょうか? よろしくお願いします。 開発環境:visual Basic 6.0 SP5です。

質問者が選んだベストアンサー

  • ベストアンサー
  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.2

#1の発言についての補足です。 >Labelコントロールが配列でなく、Label1,Label2となっていることを想定して書きます。 とありますが、コントロール配列でも大丈夫です。 As Object とありますが、VB5以降を使用してるのであれば、As Controlの方がメモリを消費しません。 If objTemp.Name Like "Label*" Then で文字列を比較してますが、コントロールのタイプを比較したほうが正確です。 Private Sub Command1_Click()   Dim ctlObj As Control   For Each ctlObj In Me.Controls     If TypeOf ctlObj Is Label Then       ctlObj.Caption = Format(ctlObj.Caption, "ggge年mm月dd日")     End If   Next ctlObj End Sub

bruce1104
質問者

お礼

早速の回答ありがとございます。 さっそくやってみます。

その他の回答 (2)

  • haporun
  • ベストアンサー率40% (230/562)
回答No.3

frmファイルを秀丸とかのテキストエディタで開いて、全置換しちゃいましょう。 さすがに、プロジェクトごとには行きませんが、フォームの中に同じ言葉がたくさん入っているときは、助かると思います。 もちろん、プログラムコード内にその言葉が入っている場合は、ちょっと注意ですね。 置換してはならない部分がないか確認してからにしましょう。

bruce1104
質問者

お礼

やはりプロジェクトで一気に置換というのは 無理なのでしょうか? ありがとうございました。

回答No.1

Labelは配列化されてますか?デザイン時のやり方はわからないですが、コードでは簡単なことだと思います。 Labelコントロールが配列でなく、Label1,Label2となっていることを想定して書きます。 Dim objTemp As Object On Error Resume Next For Each objTemp in Me.Controls If objTemp.Name Like "Label*" Then objTemp.Caption=Format(objTemp.Caption,"ggge年mm月dd日") End If Next objTemp

bruce1104
質問者

お礼

早速の回答ありがとうございます。 やってみます。

関連するQ&A