VB6にて作成したexeが200くらいあるのですが、当時NT4.0、Win95を対象に作成していたので問題がなかった(気づかなかった)のですが、WinXPで作成した画面を見るとラベルのところと背景のところの色などが統一できていないのに気づきました。WinXPでもクラシックスタイルにして色の設定を落とすと問題ないのですが、それもおかしいと思うので修正したいのですが、なにぶん数が多いので対象となるexeのみ抽出したいと思っています。が、その方法が分かりません。(地道な作業しかないのかもしれませんが・・・)もし何かよい手法やご存知の方がいらっしゃいましたらどうぞよろしくお願いします。
No.2ベストアンサー
- 回答日時:
.frmファイルを直接いじるという手もあります。
テキスト検索機能があるテキストエディタ(mifes等)にて
対象ファイル= *.frm
検索キー="BackColor"
を検索して、タグジャンプ→編集という手順が効率いいです。
この回答への補足
テキストフィールドタイプのプロパティだとラベル部分とフィールド部分があると思うのですが、どうやらプロパティを開いてキャプションのBackColorがおかしいようです。
(ラベルのほう)
この部分のみ抽出または判別する方法はないのでしょうか?
また、お教え頂いた方法で抽出したBackcolorはVBを直接開いた場合どこにソースがあるのでしょうか?*.frmのソースを直接検索しても「見つかりません」となるのですが。。。
どうぞよろしくお願いします。
回答ありがとうございます。
幸運にもmifesがインストールされていたので早速実行してみましたが、backcolorだと思った以上に検索されてしまうのですね。ただ、VBのファイルとかも一般のエディタで検索できる事が分かりました。
ありがとうございました。
やはり地道に修正していくしかないようですね・・・
No.4
- 回答日時:
ふたたび#1の者です。
>なにやらInputManとかいうOCXをインストールしているらしくそれにimMaskとかいうのがあって、それにはラベル部分とテキストを入力する部分が一緒になってて、VB開いた時の右側のプロパティの部分にはテキストを入力する部分のBackcolorしかなくて、画面上で右クリックするとキャプションというのがあってという感じだったのです。
おっしゃるとおり、InputMan(v5で試しました)にはCaption部分のBackColorがないですね。
しかし、画面のデザイン色を変更してウィンドウの背景色を変な色にしてみましたが、ちゃんとシステムカラーが設定されているようでした。
いったい、外部に公開されてないはずのCaption部分のBackColorをどうやって変更したのでしょう?
何も考えないで貼り付けて使っていれば大丈夫なはずですが・・・。
考えられるのは、内部的なプロパティがコントロールのバグによりシステムカラーから個別色に変わってしまうと言うことが考えられます。
以前、同社製品のSpreadにありました。
その時は、力業でfrxをバイナリエディタで解析して修正しましたが・・・。
コントロールのバージョンはいくつでしょう?
またパッチはあたってますか?
この回答への補足
>いったい、外部に公開されてないはずのCaption部分のBackColorをどうやって変更したのでしょう?
おそらく普通に貼り付けて周りの色に合わせようと右クリックしてプロパティ→キャプション→backcolorで設定したのだと思います。(すいません。今は当時の開発者はいないので想像でしか分かりません)
>コントロールのバージョンはいくつでしょう?
コントロール?InputManのバージョンは6.0Jです。
>またパッチはあたってますか?
おそらくあたってないと思います。何処をみれば分かりますか?
マイナーな話ですいません。
1個1個開いていけば直せるのですが200以上のexe*数十個のプロパティを修正となると頭が痛くなります・・・
どうにかしてこの部分のみ抽出して修正する事ができないでしょうか?
No.3
- 回答日時:
# labelコントロール等のBackColorプロパティの話だと思ったのですが。
。。>テキストフィールドタイプのプロパティ
>ラベル部分
>フィールド部分
>プロパティを開いてキャプションのBackColor
すいません。全く意味が分かりません。
この回答への補足
すいません。文章能力がなくて・・・
># labelコントロール等のBackColorプロパティの話だと思ったのですが。。。
そうなんです。そのとおりなのです。
なにやらInputManとかいうOCXをインストールしているらしくそれにimMaskとかいうのがあって、それにはラベル部分とテキストを入力する部分が一緒になってて、VB開いた時の右側のプロパティの部分にはテキストを入力する部分のBackcolorしかなくて、画面上で右クリックするとキャプションというのがあってという感じだったのです。
標準のVBじゃなかったようです。
わざわざお手数かけてすいません。
もしInputManとかご存知でしたら教えて下さい。
No.1
- 回答日時:
システムカラーのvbButtonFaceを使用せず&HC0C0C0が指定されていたわけですね。
私の場合、これを回避するため、パブリックプロシージャを標準モジュールかクラスモジュールにForm_Load時に必ず呼び出される関数を作成し対処してます。
その関数では、Formの背景色や、ラベルやパネルなど強制的に背景色を設定してます。
ラベルやパネルなどはFormにいくつ存在するかわかりませんが For Each を使用すればいくつ存在していても一括して扱えますね。
すべてのFormのForm_Loadイベントにその関数をCallする部分を挿入しなければならない手間はありますが、プロパティーシートを開いて全ての画面の全てのコントロールを変更していくより遙かにましだと思います。
また、今後は、共通的な画面仕様を変更する場合一括して変更することが容易になりますので今後の保守性も向上します。
早速の回答ありがとうございます。なるほど一つ一つ開いてプロパティを修正しなくてもいい方法があるんですね。
ただ今回は指定しているところと指定してないところが半々?あるのでプロパティを修正する事になると思うのです。その際その判別方法はないかな~と思い質問させて頂きました。
このアドバイスは次回作成時に考慮したいと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBからエクセルのテキストボ...
-
ACCESS2010 ActiveXコントロー...
-
C# TEXTが空白であるLABELは何...
-
Wordテキストコントロールが未...
-
checkbox付きListViewで デフ...
-
テキストボックス(VBA)でEnter...
-
DataGridViewで行の展開みたい...
-
VB6でLabelの最前面にText Box...
-
エクセル VBA ユーザーフォーム...
-
エクセルの画像にツールチップ...
-
C# のテキストボックスデザイン...
-
MSFlexGrid
-
C# アプリ終了時に設定を記憶...
-
ExcelテキストボックスのTab順...
-
エクセル入力規制リスト行数
-
VC++でエクセルのような表
-
Enabled=Falseのテキストボック...
-
ADOのCursorLocationプロパティ
-
VB.NETで縦書表示をしたいので...
-
リストボックスで任意の行を表...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストボックス(VBA)でEnter...
-
ADOのCursorLocationプロパティ
-
エクセルの画像にツールチップ...
-
Enabled=Falseのテキストボック...
-
VB6でLabelの最前面にText Box...
-
Wordテキストコントロールが未...
-
コンボボックスの高さを変更し...
-
デザインモードを解除すると消...
-
DataGridViewで行の展開みたい...
-
C# TEXTが空白であるLABELは何...
-
VBからエクセルのテキストボ...
-
MSFlexGrid
-
checkbox付きListViewで デフ...
-
ACCESS2010 ActiveXコントロー...
-
ユーザーフォームに日付を表示...
-
エクセル入力規制リスト行数
-
VB.NETで縦書表示をしたいので...
-
チェックボックスの文字色の変え方
-
VC++のコンボボックスの各項目...
-
MFCでbitmapを背景にしてstatic...
おすすめ情報