csvファイルによる簡易データベース@セル上に色を!?・・『VB6.0』

このQ&Aのポイント
  • CSVファイルからMSHFlexGridのセルにデータを表示し、任意のセルをクリックするとセルデータがコンボボックスに追加表示されます。
  • コンボボックスから任意のデータを選択すると、選択したデータのみの色が変わります。
  • データをいったんエクセルに表示し、エクセルシート上でデータの色を変えてからMSHFlexGridのセルに貼り付ける方法も考えられますが、処理が手間がかかり、表示スピードが遅くなる可能性があります。
回答を見る
  • ベストアンサー

csvファイルによる簡易データベース@セル上に色を!?・・『VB6.0』

 初めての質問です。質問内容がよく分らなかったらすぐに対応します。宜しくお願い致します。  【概要】CSVファイルからのデータをMSHFlexGridのセルに表示→任意のセルをクリック→そのセルデータの空白や「・」や「/」や「、」で分けられたデータがコンボボックスに追加表示→コンボボックスの任意のデータをクリック→クリックした文字列のみのデータの色を変える ---------------------------------------- 「あ い・う/え、お」・・・セルに表示されているデータ ↓ ↓(セルをクリック) ↓ 「あ・・・・コンボボックスに追加されたデータ  い  う  え  お」 ↓ ↓(「う」を選択) ↓ 「あ い・済【う】/え、お」・・・「済【う】」のみ色が変わる! ---------------------------------------- そこで、最初に考えたのがデータをいったん「済【う】」のみ色をつけてPictureBOXに表示し、その画像をMSHFlexGridのセルにセットするというものでした。一応成功したと思ったのですが、コンボボックスに追加する際に「・」や「/」や「、」すべて空白にして分割したため表示したときに「・」や「/」や「、」が判別できず、空白のまま表示するしかありませんでした。何度か色々チャレンジしてみましたが「・」や「/」や「、」をうまく表示することができませんでした・・・  次に考えたのがいったんエクセルにデータを表示→そのエクセルシート上で「済【う】」に色をつける→PictureBOXに表示→MSHFlexGridのセルに貼り付けると言うものです。しかし、余りにも手間がかかる処理ですし、表示スピードも遅くなります。  ネットや本でもかなり調べたつもりですがなんせまだまだ初心者なもんですから・・・ 『何かすばらしいアイデアはありませんでしょうか?』 どうかヨロシクお願い致しますm(_ _)m

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

  • ベストアンサー
  • yamada_28
  • ベストアンサー率43% (21/48)
回答No.1

「あ い・う/え、お」・・・セルに表示されているデータ ↑の「」内にある文字はそれぞれ1つのセルに入ってるのでしょうか? [あ][□][い][・] ←[]は1つのセルで□は空白 であれば、コンボボックスで選ばれた文字が入っているセルを全部探し出して、そこの値と色を変えれば良いと思います。セルの探し方や色、値の変え方は調べてみてください。

dream-kouichi
質問者

お礼

 早速のお返事本当にありがとうございます。 >「あ い・う/え、お」・・・セルに表示されているデータ↑の「」内にある文字はそれぞれ1つのセルに入ってるのでしょうか? ・・・そうです。1つのセルに入っています。説明不足ですみません。 >[あ][□][い][・] ←[]は1つのセルで□は空白 であれば、コンボボックスで選ばれた文字が入っているセルを全部探し出して、そこの値と色を変えれば良いと思います。セルの探し方や色、値の変え方は調べてみてください ・・・MSHFlexGridではセルのバックカラーしか変更できないため、簡単にセル上の一部の文字列のみ色を変えることができないのです。。。調べた結果、エクセルを利用する方法でした。。。 (ちなみにSpreadsheetではセル上で改行ができないため、MSHFlexGridを使っています。拡張グリッドコンポーネントVS-FlexGrid Proなら、もしかしたら簡単に実現できるかもしれませんが高くて。。。)

その他の回答 (1)

  • yamada_28
  • ベストアンサー率43% (21/48)
回答No.2

ForeColorで文字色変えられませんでしたっけ? 記憶違いだったら申し訳ないです。 #...全行とかだったかも?

参考URL:
http://support.microsoft.com/default.aspx?scid=kb;ja;413404
dream-kouichi
質問者

お礼

 ご返事大変ありがとうございます。 確認のため再度ForeColorを調べましたが、ForeColorでは1つのセル内の全ての文字列の色が変わるようです。。。 1つのセル内の特定の文字列のみ色を変えたいのですが、何かすばらしいアイデアないでしょうか? エクセルを利用するしかないでしょうか?

dream-kouichi
質問者

補足

ありがとうございました。 大幅に仕様変更することにしました。

関連するQ&A

  • VBでcsvファイルを取り込むときに・・・

    困っています。ビジュアルベーシック初心者です。 次のようなcsvデータがあります。 「あいうえお,,かきく,,1あ2い3う,,12.3,,45.6,,78.9  あいうえお,,かきく,,1あ2い3う,,12.3,,45.6,,78.9  あいうえお,,かきく,,1あ2い3う,,12.3,,45.6,,78.9」 ※あいう等はテキスト、123等は数値(小数) これをエクセルに表示するため、 With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & (ファイル名), Destination:=Range("B3"))  .TextFileCommaDelimiter =True  .Refresh BackgroundQuery =False End With とプログラムしました。 ところが、エクセルをみると全てのデータの間に1マスづつ余計なセル(空白)が入ります。 空白が入らない取り込み方はあるでしょうか? なお、一度別な場所に取り込み必要なセルだけ転記するというのは避けたいです。 アドバイスを宜しくお願いします。

  • データベースファイルからのデータ取り出し

    データベースのデータをコンボボックスアイテムとして 表示させたいのですが、 現在は、XLSファイルをデータベースとして代用し、 オブジェクトとしてExcelを起動させて、 セル座標をループさせて一つづつデータを追加し、 それが終了したらファイルを閉じるといった方法をとっていますが、 フォームの読み込み時にデータを取得したいため、 フォームの起動とExcelの起動が重なるせいか、 フォームが表示されるのにかなりの時間を要しています。 いちいちファイルを開かずにデータベースファイルから データを取り出す方法を教えて下さい。 どうか宜しくお願いします。

  • VB2005でデータグリッドビューにTextBoxのセルとComboBoxのセルを表示

    はじめまして。プログラム開発初心者です。よろしくお願いいたします。 OSはWin2000、VB2005でプログラムを作成しています。 データベースはACCESS2000を使用しています。 今回はデザイナではなく、プログラムにてDatagridView.ROWS.ADDで行追加したいと思っています。 フォームにデータグリッドビューを配置し、三つのカラムにデータベースから持ってくるデータをを表示させたいと思っています。 ただし三つ目のカラムをコンボボックスにして 4つのデータを用意してデータを変更できるようにしたいと思っています。 DatagridView.ROWS.ADDにてテキストボックスカラムを二つ、コンボボックスの列を一つ行追加するにはどのようにしたらいいのでしょうか? またそのコンボボックスの中身の設定はどのようにしたらよいのでしょうか? テキストボックスのみの行追加はできるのですが。。。 テキストボックスカラム+コンボボックスのカラムを追加する方法を調べたのですが探しきれませんでした。 お知恵をおかしください。

  • 空白のセルに色を付けるには

    エクセル2007 空白のセルに色を付けて、この列を色フィルターで処理したいと思っています。 条件付き書式で、数式を使用して、書式設定いるセルを決定から、数式を以下の通りに組んでみました。 =FIND(1,B2) 書式で任意の色を設定 B2に1が入っていると設定した色に変化します。 B列を含めて右側の列は、COUNTIFで1が表示する様にしています。 これを範囲を広げて、B2~G2のセルのいずれかのセルに1が入っていた場合、A1のセルの色が変わるようにしたいです。 ご教授頂ければ幸いです。 宜しくお願いいたします。

  • Excel VBAコンボボックスについて

    はじめまして、コンボボックスで選択したデータをセルに書き出すプログラムを作成しております。 コンボボックスプロパティのListFillRangeで範囲を指定していますが、途中空白のセルがあるため、空白セルまでコンボボックスに取り込まれてしまいます。 このListFillRangeの範囲を設定したまま、空白はコンボボックスに取り込まないようにする方法ってあるんでしょうか??お分かりになる方いらっしゃいましたら、お願い致します。

  • エクセルVBAセルの色

    前回の作成の作業スケジュールで、作業時間をセルの色で塗りました。 そこで、空白の時間帯を非表示にしたいと思います。 エクセルVBAにて、セルの色が空白ならその列を非表示にすることは可能でしょうか。 EntireColumn.Hidden = True あたりで表現できないでしょうか。 よろしくお願いします。

  • EXCEL コンボボックスの一覧

    EXCELのシート上にコンボボックスがあります。 ここには、ある列のA1からデータが入っている最後のセルまで(例えばA14)の一覧を表示したいと思っています。 参照するセルの終わりが、A14やA20など、どこまでデータが入力されているかによって可変で変わります。 その場合、少し大目にA1:A50としておくと、データが入っていない空白セルまでコンボボックスの一覧に表示されてきます。 こうならないように、データが入っている範囲だけとしたい場合、どのような設定にすればよいでしょうか。 よろしくお願いします。

  • Excelの範囲指定セルににcsvファイルのデータを貼り付け

    Excelファイルの任意のセルにCSVファイルのデータを貼り付けたいと思っています。 各ワークシートにCSVファイルのデータを読み込むマクロを書いて実行していたのですが、ファイルが増えてしまったのでもっと簡単に処理ができたら、と思い相談させていただきます。 Visual C# 2008の勉強を始めて間もないので初歩的な質問かと思いますが、宜しくお願い致します。 希望する処理の流れは 1.「Excelファイル選択」ボタンを押すと、指定のフォルダ内のxlsファイルをリストボックスに表示 2.Excelファイル選択 3.「CSVファイル選択」ボタンを押すと、指定のフォルダ内のcsvファイルをリストボックスに表示 4.Excelファイルに対応するCSVファイル選択 5.「データ読込」ボタンでテキストファイルのデータをExcelファイルの指定のセルに貼り付け 6.Excelファイルを保存して終了 1.と3.のリストボックスへのファイル表示はできているのですが、選択したExcelファイルにcsvファイルのデータの貼り付けの方法がわかりません… それぞれのファイルを変数に格納して、更にcsvファイルのデータを配列変数に流して、繰り返し処理で貼り付けていくのかな?と想像しているのですが… http://support.microsoft.com/kb/302096/ja 上記のページを参考にしたのですが、外部ファイルのデータを指定のセルに入力するにはどうしたらよいのかわかりませんでした。 ・Excelファイルの指定のセルはB12~H1011までの7列1000行です。 ・csvファイルは1000行に満たないこともあります。 ・入力するデータ型は整数と文字列です。 PC環境 Windows XP SP3 Excel 2007 Visual C# 2008 要領を得ない説明で申し訳ありませんが、どうぞ宜しくお願い致します。

  • セルの値が空白じゃないなら色を付ける

    セルの値が空白じゃないなら色を付ける、 という事をエクセルの条件付き書式でやりたいのですが、 <>"" としても、 ="<>""""" 変化してしまい、色が付きません。 「セルの値が空白じゃないなら色を付ける」にするにはどうすればいいでしょうか?

  • 空白のセルを

    エクセルの空白のセルデータを別のシートのセルに表示する時に表示を数字のゼロにしたいのですが出来ません。。 この様にしています。 =元データ!A2 数値データが入っている箇所は、その数値が反映されるのですが、空白のセルは空白のまま反映されます。 会社のシステム上、出力データのゼロの数値は空白で表示されます。 この空白の部分をゼロで表示する方法は有りますでしょうか? 宜しくお願いします。

専門家に質問してみよう