• ベストアンサー

VB6.0で、200色まで対応したコードをご存知ないでしょうか?

VB6.0で、200色まで対応したコードをご存知ないでしょうか? グラフを描いているのですが、 QBColor(i)を使用すると15色までしか表示されません。 上記コードのiが1ずつ増加して色を変更していくのですが、 200色まで対応したコードをご存知ないでしょうか?

  • ddtqp
  • お礼率68% (139/203)

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

  • ベストアンサー
  • usokoku
  • ベストアンサー率29% (744/2561)
回答No.4

MarkColorVal& = RGB(200, 200, 0) pGurafu00.Circle (cx&, cy&), IA&, MarkColorVal&: '(cx&, cy&)に円(R=IA&)を描く で描いています。番号で色を指定したいのであれば、MarkColorVal& を MarkColorVal&()のように配列にして、適当な値をあらかじめ設定する、 関数としてMarkColorVal&(ColorNo&)を規定して、ColorNo& に対応する RBG()関数値を設定する などの方法があります。

ddtqp
質問者

お礼

自分の思った色をあらかじめ設定しておいて、 配列番号を1ずつ増加させてやってみました。 グラフ1枚に系列を10個ずつ、設定した10色を割り振ったらいい感じでできました。 ありがとうございます。

その他の回答 (3)

  • BellBell
  • ベストアンサー率54% (327/598)
回答No.3

QBColorのQBとはQuickBasic、つまり大昔、PCと言えば16色までしか使えなかった頃の色を指定する方法です。 ※簡単に色が指定できること、および昔の名残として残っているのでしょう。 RGB関数を使えば000000~FFFFFFまでの16777215色を扱えます。 ※実用上は、近接色は見た目が変わらないので256色ぐらいまでってところでしょうが。 グラフで、隣接する値の色が異なれば同じ色が複数回使われても構わない、という仕様であれば QBColor(i Mod 16) とする手もありますね。

ddtqp
質問者

お礼

>QBColor(i Mod 16) 回答ありがとうございます。 とても良い方法ですね。勉強になりました。

  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.2

専らAccessVBAばかりで、本家に当たるVB6.0には触ったことも ないのですが(汗)、RGB関数でいけるのではないでしょうか。 http://msdn.microsoft.com/ja-jp/library/zc1dyw8b%28VS.80%29.aspx

ddtqp
質問者

お礼

回答ありがとうございます。 試してみます。

  • nrb
  • ベストアンサー率31% (2227/7020)
回答No.1

QBColor(番号)  色の指定: ( 0:黒  1:暗青  2:暗緑  3:曇空  4:赤茶5:濃紫  6:黄茶 7:灰  8:薄黒  9:青  10:緑 11:空  12:赤  13:紫  14:黄  15:白 ) これしかできない 人間は1から考える・・・ 人類の最大の発見は0の発見で言われるだよね ちゃんと数えようね あと コンピュターは2進数だから15ってでた瞬間におかしいって反応しましょうね 16なのは2進数で4桁 Color構造体つかいましょう

ddtqp
質問者

お礼

Color構造体いい勉強になりました。 ありがとうございます。

関連するQ&A

  • vb6について

    会社で、GPIB、I/O、ActiveXコンポーネントの環境下で、 VB6のプログラムを使用して試験評価を行っているのですが、 VB6のコードを変更するにあたり、うまくいきません。 どなたかご教授願います。 内容は、 コードを変更したいので、元々の.vbpを開くと、 まず、「オブジェクトライブラリは登録されていません」とエラーが出ます。 その後、「プロジェクトのロードを続けますか?」となるので、OKを押します。 すると、「読み込み中にエラーが発生しました。・・・.logを参照してください」と出ます。 気にせず、OKを押し、コードの内容を変更したあと(※変更しなくても)、 プロジェクトの上書き保存をしたあと、.exeの作成(上書き)をすると、 また、「読み込み中にエラーが発生しました。・・・.logを参照してください」と出ます。 気にせず、OKを押し、作成した.exeを開くと、変更した内容になっていますが、 いざ、実行すると、「実行時エラー”13” 型が一致しません」とエラーが出ます。 .logの内容を確認すると、”クラス・・・がロードされていません”とか、 ”プロパティ名・・・が不正です”とか表示されています。 試験する上で、使用しやすいようにVB6のコードを変更したいのですが、 試験で使用しているPCで元々のコードを変更しようとすると、上記のようなエラーが出ます。 どなたか、解決方法を教えてください。

  • Designer.vbは直接コードをいじってはだめ?

    VB.netです。 新規でフォームを作成したときに Form1.Designer.vbが作成されますが そこに 'Windows フォーム デザイナを使用して変更できます。 'コード エディタを使って変更しないでください。 と書いてあります。 その下に Me.Name = "Form1" Me.Text = "Form1" などありますが、 これを変更したい場合は、ここをいじるのではなく、 Form1.vb(デザイン)のプロパティから設定しなさい。という意味なのでしょうか? 試しに Form1.vb(デザイン)のプロパティから Textを「フォーム1」にし、 Designer.vbを確認したら Me.Text = "フォーム1"と変わっていました。 しかし、Designer.vbのMe.Textを Me.Text = "ふぉーむ1"にして、 Form1.vb(デザイン)に移ると、 Form1.vb(デザイン)のプロパティも"ふぉーむ1"になりました。 「コード エディタを使って変更しないでください。」 と言う意味がわかりません。 よろしくお願いします。

  • vb6で覚えたことがvb2010で活かせれない。。

    グラフの目盛表示をしたくて、 vb2010で下記のコードを入力したのですが、何回やってもエラーがでます。 どなたか教えてください。 --------------------------------- J = 0 For I = 0 To 200 Step 40 CurrentX = 120 CurrentY = 100 + I strB = CStr(0.2 - (2 / 5) * J * 0.1) Print strB J = J + 1 Next J = 0 For I = 0 To 200 Step 40 CurrentX = 120 CurrentY = 300 + I strB = CStr(0 - (2 / 5) * J * 0.1) Print strB J = J + 1 Next -------------------------------------

  • VBのコードを教えてください;;

    私は今VBを勉強しているのですが行き詰ってしまってどうしても この問題の考え方とコードが分かりません;誰か御助言くださいませ; ●1+2+3+…+nの合計が1000を超えたときのnの値と、その合計を表示させる。 ●n(ただし12までの数)の値を入力しnとn!の値を表示させる n!=1×2×…×n ちなみにVisualStdioを使っています。分かりやすいコードを教えて 頂ければ幸いです。どうぞ宜しくお願いします。

  • vb6 上書き方法について

    vb6にて、元々のコードの内容を変更して、 プロジェクトの上書き保存をした後、 上書きの内容のexeを作成しようとすると、 「コンパイルエラー :メソッドまたはデータメンバが見つかりません」とでます。 デバッグ開始ボタンで変更したコードが問題ないことは確認済です。 元々のコードの内容を変更せず、 exe作成で同じ名前で上書きをしようとしても上記のコンパイルエラーが表示されます。 なぜでしょうか?コンパイルエラーが出る理由をお教え願います。 GPIBやI/Oを使用しているのですが、測定機器につなげた状態で、 exe作成をしないとダメなのでしょうか??? 素人でよくわかりません。どなたかお教え願います。

  • VB6.0 国際化対応について

    初めて投稿いたします。chestnutsです。 使用環境:Windows2000pro SP4 VisualBasic6.0 SP5 MS Access2000 SP3 この環境でVB6.0を使用し多言語対応のアプリケーションを作成したいと思っております。 対象言語:中国語(簡体字)、台湾語(繁体字)、韓国語      日本語、英語などです。 当初は、DBのテープルフォントをArial Unicode MSにし それぞれの言語を入力しておいて、それをVBで読み表示が 出来れば…と考えていたのですが、VBのフォーム(ラベルやテキストボックス)で表示しようとすると'?????'のように表示されてしまいます。ラベルやテキストボックススの フォントもArail Unicode MSです。 また、MSDNにある「国際対応のアプリケーション」と言う項目を読んで、VB6リソースエディタでも試してみましたが、やはり'?????'という表示になり実際何が入っているのかわからない状態になってしまいます。 皆様はVBでどのように多言語対応をしていらっしゃるのでしょうか?ご教授いただければ幸いです。

  • 銀行コードの新旧対応について

    銀行が統廃合され銀行コードが変更されています。 現在使用しているデータ上の旧銀行コードを新銀行コードに変換したいと思っています。 何方か銀行コードの新旧対応データをご存知の方、教えてください。

  • VB6.0のコードエディタでの改行コードやTABの表示

    VB 6.0の初心者です。 VB 6.0のコードエディタでは次のようなことはできないのでしょうか。 (1)TABをスペースに変換しない TABを入れると4個のスペースに勝手に変換されるようですが(厳密には違いますが)、これをなくしたいのです。バックスペースキーを押すとタブ部分が一気に消えるのに、カーソルキーでTAB部分を移動すると1文字ずつ移動してしまいます。これを4文字ずつ移動させたいのです。 (2)TABコードや改行コードの表示 どこにスペース,TAB,改行が入っているかが見た目では分かりません。これらのコードを表示することはできるでしょうか。 他の言語を使っていたときは別のエディタを使用していて、この辺のカスタマイズは自由にできました。VBは難しいのでしょうか。

  • VB6.0で、フォームの表示位置を画面左上にしたいのですが。

    VB6.0で、フォームの表示位置を画面左上にしたいのですが、以下コードの「StartUpPosition」でエラーがでます。 コードが対応していないのでしょうか? ご存知の方教えてください。よろしくおねがいします。 Private Sub Form_Load() Me.Picture2.BackColor = vbWhite \'グラフ背景色 Me.StartUpPosition = 3 \'フォームを左上に表示 End Sub

  • VB6 MSFlexGridとPictureBox

    お世話になります。 Visual Basic6.0(SP6)で開発している素人です。 (質問1) PictureBoxのBackColorが変色できません。 Picture1.BackColor = &H80FF80 '緑色。色は問いません。 PictureBoxは色の変更はできないものなんでしょうか? (質問2) MSFlexGridでexcelの内容をセル指定して表示できたのですが、 指定のMSFlexGridの行の色を変えられません。20行3列で、○行目の1~3列を 色を変えたいです。 MSFlexGrid1.Row = 2 MSFlexGrid1.BackColorSel = QBColor(11) MSFlexGrid1.CellForeColor = QBColor(11) いづれもうまくいきませんでした。。。 (質問3) MSFlexGridでexcelの内容をセル指定して表示できたのですが、行の高さを 変更できません。 MSFlexGrid1.RowHeight(-1) = 800  '標準の行高さ指定(-1で全部を変更) と、やっても MSFlexGrid1 .RowHeight(0) = 800 '0行目の高さを800に MSFlexGrid1 .RowHeight(1) = 800 '1行目の高さを800に と、やっても 一番上の行しか高さが変わりません。 優先順位は 質問3 > 質問1 > 質問2 です。 急いでいますので、どなたかお願いします!

専門家に質問してみよう