質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VB

VB(ビジュアルベーシック)はマイクロソフトによってつくられたオブジェクト指向プログラミング言語のひとつで、同社のQuickBASICが拡張されたものです。VB6の進化版といわれています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

2回答

3983閲覧

VB6->VB.NET変換 [ BackColor ]

TEC_S

総合スコア79

VB

VB(ビジュアルベーシック)はマイクロソフトによってつくられたオブジェクト指向プログラミング言語のひとつで、同社のQuickBASICが拡張されたものです。VB6の進化版といわれています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

1クリップ

投稿2020/01/23 03:01

編集2020/01/23 03:05

前提・実現したいこと

現在、VB6からVB.NETへの変換作業を進めています。
現在困っているのは、PictureBoxのBackColorの移行についてです。

発生している問題・エラーメッセージ

エラーメッセージは特に出ていないのですが、VB6で指定されている色の変換が分からなくて困っています。

下記のURLを参考に、FromArgbを使用した色の指定をするのかと考えているのですが、最大数が255(FF指定)ということで、どう変換したら良いかが分からない状態。

http://uno036.starfree.jp/PRGmanual/vsnet_tips/control/backcolor.html

URLより抜粋

VB6

1 ' Command1 の背景色を青にする (RGB による指定) 2 Me.Command1.BackColor = RGB(&H0, &H0, &HFF)

このコードを変換した際には、URL内より

VB.NET

1 Me.Button1.BackColor = Color.FromArgb(&H00, &H00, &HFF)

となるということ。URLと同様に、該当ソースコードを変更したい。

該当のソースコード

VB6

1Begin VB.PictureBox pic 2 BorderStyle = 0 3456 Begin VB.PictureBox pic_AAA 7 BackColor = &H00C0C0FF& <- 何色?? 8 9End

試したこと

1)VB6の色について調査したが見つからなかった
2)参考URLにたどり着くが、使い方が分からない(自分のやりたい事とあっているか?)

補足情報(FW/ツールのバージョンなど)

OS:Windows10
開発環境:Visual Studio2017
使用フレームワーク:.NetFramwark4.6.1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

ColorTranslator.FromOle(Int32)メソッド
こちらを利用してみてください。

投稿2020/01/23 03:27

YAmaGNZ

総合スコア10258

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TEC_S

2020/01/23 03:45

早速のご回答、ありがとうございます。 下記の様に対応が出来そうです。 ```VB.NET Dim oleColor = &HC0C0FF 'H00C0C0FF pic_AAA(0).ForeColor = ColorTranslator.FromOle(oleColor) ``` ここで、 H00C0C0FF → HC0C0FF と自動的に変換されてしいまいましたが、これは問題ないのでしょうか??
YAmaGNZ

2020/01/23 03:48

数値の場合、頭の0は整形されて消されます。
TEC_S

2020/01/23 04:08

なるほど、確かに頭が0になっているところですね。 ありがとうございました。進めてみます。
guest

0

参考までに回答します。
&H00C0C0FF&とのことですが、アルファチャンネルがついた色指定ではないでしょうか?
↑の最後の&の意味はちょっとよくわからないんですけどね。

ファルファチャンネルがついた色指定は、下記のURLを参考になさってください。

参考URL
https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.media.color.fromargb?view=netframework-4.8

うまく行くと良いですね♪

投稿2020/01/23 04:05

kgreenjp

総合スコア97

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TEC_S

2020/01/23 04:10

情報、ありがとうございます!! どちらにしても、VB6の値からはそのままという訳にはいかないようでした。 ご回答いただき、ありがとうございました!
dodox86

2020/01/23 04:34

> ↑の最後の&の意味はちょっとよくわからないんですけどね。 末尾の&は、「32ビットの符号付き整数値」を表します。(VB6時代のLong型)
kgreenjp

2020/01/23 04:42

>dodox86さん ご教授どうもありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問