
今、WindowsXP上のVB6プログラムを、Windows7上のVB2010プログラムへ変換作業をしています
手順は
1.VB2008Expressのアップグレードウィザードを使って、一度VB2008版を造りました
その時に、フォームサイズを変えるステートメントが次のように変わりました
Imports VB = Microsoft.VisualBasic
・
Me.Width = 16000 → VB6.TwipsToPixelsX(16000)
Me.Height = 12250 → VB6.TwipsToPixelsY(12250)
2.次にWindows7上のVB2010で上記プログラムを読み込むと.
VB6.TwipsToPixelsX(16000) のところに波型のアンダーラインが引かれ
これは「旧形式です」のメッセージが出ました
そこで、Microsoftのフォームページ(http://go.microsoft.com/fwlin/?linkid=160862')を参考に
下記のように修正しました
Imports Microsoft.VisualBasic.Compatibility.VB6
・
Me.Width = Support.TwipsToPixelsX(16000)
Me.Height = Support.TwipsToPixelsY(12250)
と修正しましたが波型アンダーラインは消えませんでした
そこで質問ですが
この波型アンダーラインは無視して良いのか、
それともまだ使い方が間違っているのか分かりません
そこのところご教授願えれば幸いです
No.1ベストアンサー
- 回答日時:
VB6.0 では、ScaleMode(座標系の単位)は、twip 単位で、.NET 系は、pixel 単位です。
従って、Me.Width = 16000 の 16000 をtwip → pixel に変換してやればいいだけの事です。
元々Form のサイズの設定部分のコードなので、開発環境でデザイン時に Form のサイズを設定して
貴方が求めるサイズに書き換えてやるべきかと思います。
(元々サイズを直にコードで指定しているのだから)
twip → pixel に単位変換するには、簡易的には、一般的な環境では、16000 / 15 で求める事が
できます。
正確には、環境を考慮して係数を求めて変換する必要があります。
>そこで質問ですが
> この波型アンダーラインは無視して良いのか、
の件ですが、エラーメッセージの通りで、使用できますが、暫定的な方法なので、どうするかは
貴方が決める事かと思います。
VB6.0 のコードを VB2008等へ移行する場合は、アップグレードウィザードで全面的に変換すると、
一般的なコードは問題ないのですが、グラフィックや印刷関係等多くの部分で変換しきれないものが
多くでてきて、中には上記のように中間言語のような扱いで変換される場合があり、お勧めできません
後々の事を考えたら、変換結果等を参考に一から書き直す事が一番かと思います。
(変換結果のプロジェクトは、使用しないで、新規に作成したプロジェクトで作成の事)
VB6.0 のコードを VB.NET 系に移行するには下記等が参考になるかと。
Visual Basic 6.0 ユーザーのための Visual Basic .NET 移行ガイド
http://msdn.microsoft.com/ja-jp/library/dd314356 …
ご丁寧な回答、本当にありがとうございます
ちょっとアップグレードウィザードに頼りすぎてたかも知れません
もう一度初心に戻ってやり直します
それを気づかしてくれた事を本当に感謝します
これからもよろしくお願いします
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
VB6.0の「vbFromUnicode」はVB.NETではどれに相当しますか?
Visual Basic(VBA)
-
VS 2008(VB.NET)
Visual Basic(VBA)
-
VB.NETでMSComm が追加できず?
Microsoft ASP
-
-
4
VB6からの移行したいけど、VB.NETのコントロール配列は?
Visual Basic(VBA)
-
5
CloseとDisposeの違い
Visual Basic(VBA)
-
6
Designer.vbは直接コードをいじってはだめ?
Visual Basic(VBA)
-
7
Visual Basic 2010を使ってRS-232Cとの通信をした
Visual Basic(VBA)
-
8
VBの画面サイズについて
Visual Basic(VBA)
-
9
VB.NET フォーム上に描いたグラフィックのクリア方法
Visual Basic(VBA)
-
10
VB.netでのライン描画方法がわかりません
Visual Basic(VBA)
-
11
コモンダイアログコントロールがコンポーネントにありません
Visual Basic(VBA)
-
12
VisualBasic6からVB2005に移行に難儀しています。
Visual Basic(VBA)
-
13
VB6から.NETへアップグレード時について
Visual Basic(VBA)
-
14
VBの「As String * 128」とは?
Visual Basic(VBA)
-
15
値を返さないコード パス
Visual Basic(VBA)
-
16
モーダルフォームとモードレスフォーム
Visual Basic(VBA)
-
17
CommonDialogでの、キャンセル時の値
Visual Basic(VBA)
-
18
[twip]から[pixel]への変換
HTML・CSS
-
19
Shapeコントロールの.NET移行方法
Visual Basic(VBA)
-
20
VB.NET2005 TextBox 高さ(Height) 変更
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
php
-
エクセルVBAの自動変換機能?
-
オートリネーム
-
逆コンパイルと逆アセンブルの...
-
Mac 乗数の入力方法
-
MATLABのMATファイル をC言語...
-
逆ポーランド記法への変換方法...
-
Macターミナルで実行中のプログ...
-
VB6.0 SHELLで起動...
-
スロットゲームのプログラミング
-
フレームワークとプロセスの違...
-
STATUSのZフラグについて
-
CImage::ReleaseDC()のエラーで...
-
あるプログラム実行中に別のプ...
-
「単体テスト」に関する深刻な...
-
このレジの並び方は間違ってま...
-
CreateCompatibleDCを初期化時...
-
プロセスの停止
-
Linuxでのスレッド間メッセージ...
-
ACCESS側からEXCELの書式を設定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
家電製品の電力周波数を変える機械
-
Mac 乗数の入力方法
-
3のつく数字と3の倍数のみを表...
-
エクセルVBAの自動変換機能?
-
VB.NETをJavaに変換するツール...
-
c++でmatからvectorへの変換の...
-
分を時間に変換するプログラム
-
緯度、経度の 10進法と 60進法...
-
逆コンパイルと逆アセンブルの...
-
なぜ通信には16進数文字列が使...
-
VB6からVB2010への変換について
-
10進数をBCDに変換する方法
-
C++からCへのソース変換について
-
VB6で10進数を32進数に変換する...
-
php
-
画像ファイル変換(Tiff→PDF)
-
VB.NETからJavaに変換するツー...
-
PHPで、日本語からアルファベッ...
-
WinHelpからHTML Helpに変換
-
マンセル⇔XYZ,RGB変換式或いは...
おすすめ情報