人に聞けない痔の悩み、これでスッキリ >>

VB2008でガントチャート

はじめまして。
質問させていただきます。
「タイム ビュー - ActiveX - V3.0」と同じような形でチャートが作成できる
フリーのツールを探しています。
調べてみたものの中々見つからないです。
もし知っている方がいたら教えていただけないでしょうか。

よろしくお願いいたします。

A 回答 (2件)

こう言った物は、個人の好みが大きく左右されるので、製品版を求めているなら、


ご自分で探した方が...。
    • good
    • 0

フリーソフトでは



■ガントチャート「がんすけ」
 http://www.gansuke.com/

がありますけど VB.NETのOCX (グレープシティ 「True WinChart for .NET」)
などは有料ですね。

OLE操作でExcel をうまく使って表現したほうが安くできるとは思いますけど。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QAccessのマクロでモジュールを実行させたい。

Access2002を勉強中の初心者です。

AccessでDB1という名前のデータベースを作成し、その中で、モジュール1というモジュールを作成しました。これを実行するマクロを作成したく、次のようにマクロを作成しました。
マクロのデザイン画面でアクションに「プロージャの実行」を選択、プロージャ名入力覧の右側の...のボタンを押して式ビルダ画面を表示、ここの「関数」フォルダを開いてDB1を選択、表示されたモジュール1を貼り付けてOK。
しかし、このマクロを実行すると、次のエラーとなります。「DB1 指定されたDB1が見つけることができない関数名が含まれています」

根本的に方法が間違っているのでしょうか?
アドバイスをよろしくお願いします。

Aベストアンサー

#1です。

ちょっと時間ができたので、Accessのヘルプで、
 "RunCode/プロシージャの実行" アクション
についてのトピックを見てみました。

結論から言うと、基本的な考え方が間違っているみたいです^^;。

「プロシージャの実行」アクションでは、「Function」プロシージャを指定するようです。
Subプロシージャではエラーになります。


つまりご質問の件では、
「Subプロシージャを呼び出すFnctionプロシージャ」をまず書かなけれえばならない。
そして、マクロのアクションでは、あらためてこのFunctionプロシージャを指定しなければいけません。

QDataGridViewでセルクリックイベントを発生させるには

DataGridViewでセルクリックイベントを発生させるには、
デザイナからではCellClickイベントハンドラとなりますが、
プログラムコード上から発生させるにはどのようにすればよろしいでしょうか?

CurrentCellでアクティブセルを変更した時に、そこのセルをクリックさせるイベントが欲しいのですが・・

宜しくお願い致します。

Aベストアンサー

CellClickイベントハンドラの内容を別のメソッドとして作り、アクティブセルを変更した際にそのメソッドを呼び出す方法ではダメなのでしょうか?
どうしてもCellClickイベントを発生させて処理をしたいのでしょうか?

QDataGridViewのチェックボックスのON、OFFの判定方法

お世話になります。ご協力お願いします。
環境:VS2008 .Net FrameWork3.5
言語:C#

質問内容:ボタンを押下したら、DataGridViewの列に設定したチェックボックスのON,OFFを判定して処理を行いたい。
現状以下の方法で実現は出来ていますが、とても回りくどい方法になっています。
正しい処理を教えて頂けないでしょうか。

1.DataGridViewにて、列にチェックボックスを設けている。
2.truevaluesプロパティにtrueをセットしている。

ボタンを押下したらチェックボックスのON、OFFを判定する為に、DataGridViewの行を
ループさせて判定させています。

for(int i=0;i < DataGridView.Count;i++){
___if((string)DataGridView.Rows[i].Columns[0].values == "true")
___{
______処理
___}
}

お願い致します。

Aベストアンサー

 こんばんは。

 正しいかどうかは断言出来ませんが、要はチェックボックスの「on, off」を確認しながらループするのが非効率的なので、ループ回数を「on」の個数だけに留めたいと言う事でしょうか。

 でしたら、以下URLに記載されているイベントハンドラを応用して、
 http://dobon.net/vb/dotnet/datagridview/datagridviewcheckboxcolumn.html

 セルのチェックボックスが「on, off」された瞬間に、セルのROW番号をハッシュテーブルに向かって「登録、解除」をしていけば、結果として「on」になっているセルのROW番号だけを保持する事になります。

 「Dictionaryジェネリッククラス」
 http://msdn.microsoft.com/ja-jp/library/xfhwa508(VS.80).aspx

 以下参考程度に。

//ハッシュテーブル(trueのROW番号だけを記録するDictionary<Key, Value>だが、今回の事例では両方とも同じROW番号を入れる)
private Dictionary<int, int> boolMapper;

private void Form1_Load(object sender, EventArgs e)
{
//作成
this.boolMapper = new Dictionary<int, int>();
}

private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
if (this.dataGridView1.CurrentCellAddress.X == 0 && this.dataGridView1.IsCurrentCellDirty)
{
this.dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
}

//チェックボタンが「on, off」された瞬間に呼ばれるイベントハンドラ
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 0 && this.dataGridView1.Columns[e.ColumnIndex].ValueType == typeof(bool))
{
//チェックボタンが「on」になったのでハッシュテーブルに登録
if ((bool)this.dataGridView1[e.ColumnIndex, e.RowIndex].Value == true)
{
this.boolMapper.Add(e.RowIndex, e.RowIndex);
}
//チェックボタンが「off」になったのでハッシュテーブルから除外
else
{
this.boolMapper.Remove(e.RowIndex);
}
}
}

//ボタン1を押した時に呼ばれるイベントハンドラ
private void button1_Click(object sender, EventArgs e)
{
//ハッシュテーブルの要素個数分だけ回転する
foreach(KeyValuePair<int, int> kvp in this.boolMapper)
{
//ココで何かする「kvp.Value / kvp.Key」どちらにも同じ数字が入っているのでどちらを使用するかは問わない
this.dataGridView1[0, kvp.Value];
}
}

 こんばんは。

 正しいかどうかは断言出来ませんが、要はチェックボックスの「on, off」を確認しながらループするのが非効率的なので、ループ回数を「on」の個数だけに留めたいと言う事でしょうか。

 でしたら、以下URLに記載されているイベントハンドラを応用して、
 http://dobon.net/vb/dotnet/datagridview/datagridviewcheckboxcolumn.html

 セルのチェックボックスが「on, off」された瞬間に、セルのROW番号をハッシュテーブルに向かって「登録、解除」をしていけば、結果として「on」になっ...続きを読む

Qフォルダ内の、最新のタイムスタンプのファイルを1つだけ取り出す(VBscript)

フォルダ内に複数のファイルが存在しており、その中でタイムスタンプが一番最新のファイルをコピーしたいと考えているのですが、ファイル同士のタイムスタンプを比較する方法が見つけられませんでした。どなたかご存知の方がいらっしゃいましたら、教えて頂けませんか?

Aベストアンサー

私が書いたスクリプトの後ろにkhaii21さんが書き足されたんですよね?

不思議ですねぇ。本当に書かれたものそのままなら、
>strNewFileName2 = objFile.Name

この行通るはず無いんですけど。
strNewFileName2、空のままのはずです。

通らない理由は、
>If dtmMostNewTimeStamp < objFile.DateLastModified Then

です。dtmMostNewTimeStampより新しいファイル、strNewFileName以外であるわけ無いですよね。


と、khaii21さんが書かれたスクリプトについて解説してみましたが、2番目に新しいファイルを見つけるのに列挙しなおす必要なんて無いですよ(^^;;;


私が書いたスクリプト、ちょっと直すだけで1番目と2番目両方取れます。

Dim strNewFileName
Dim dtmMostNewTimeStamp

Dim strNewFileName2
Dim dtmMostNewTimeStamp2

'ファイルを列挙
For Each objFile In objFolder.Files

If dtmMostNewTimeStamp < objFile.DateLastModified Then

dtmMostNewTimeStamp2 = dtmMostNewTimeStamp
strNewFileName2 = strNewFileName

dtmMostNewTimeStamp = objFile.DateLastModified
strNewFileName = objFile.Name

ElseIf dtmMostNewTimeStamp2 < objFile.DateLastModified Then

dtmMostNewTimeStamp2 = objFile.DateLastModified
strNewFileName2 = objFile.Name

End If

Next

考え方は、列挙したファイルが今までで一番新しかったら
・前の1番目→2番目
・列挙されたファイル→1番目
に、

1番目より古いけど、それまでの2番目よりは新しければ、

・前の1番目→そのまま1番目
・列挙されたファイル→2番目

になりますよね。

私が書いたスクリプトの後ろにkhaii21さんが書き足されたんですよね?

不思議ですねぇ。本当に書かれたものそのままなら、
>strNewFileName2 = objFile.Name

この行通るはず無いんですけど。
strNewFileName2、空のままのはずです。

通らない理由は、
>If dtmMostNewTimeStamp < objFile.DateLastModified Then

です。dtmMostNewTimeStampより新しいファイル、strNewFileName以外であるわけ無いですよね。


と、khaii21さんが書かれたスクリプトについて解説してみましたが、2番目に新しいファ...続きを読む

Q.NET2005のC#でガントチャート作成

お世話になっております。
タイトルにあります通り、.NET2005でガントチャートのようなものを作成しようと思っております。言語はC#です。
いろいろなコントロールをみたのですが、ガントチャートのようなもを作成できるようなものがありませんでした。ガントチャートのようなものを作成する良い方法をご存知の方がおりましたら、どうかご教授願いないでしょうか?
もし良い方法がなければ、私の考えとしては、ラベルを駆使してなんとかしようと思っているのですが。

以上、よろしくお願い致します。

Aベストアンサー

>いろいろなコントロールをみたのですが、ガントチャートのようなもを作成できるようなものがありませんでした

色々なっていうのは、何をどこで見たんでしょうか?
ラベルでやるなら、グリッドでも出来そうな気がするのですが。。

Q子フォームから親フォームのオブジェクトを参照したい。

こんばんわ。
いまVB.Net2005でプログラミングしている者です。
子フォームから親フォームのオブジェクトを参照したいのですが,
うまくいきません。
親フォームにListBox1を置き,
ここに入力された内容を
子フォームで下記のように参照しようとしました。
Dim 子フォーム As New 子フォーム
Label1.Text = 親フォーム.ListBox1.SelectIndex
としたのですが,
親フォームでListBox1に0以外のリストを選択したのに,
子側に来ると親フォーム.ListBox1.SelectIndexの値が
0になってしまい,親側での選択内容が反映されません。
どうすれば正しく参照できるでしょうか?
教えてください。よろしくお願いします。

Aベストアンサー

’親フォーム
Public Class Form1
  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim NewForm As New Form2()

    NewForm.ListName = "12345"  '親フォームの値を子フォームに渡す
    NewForm.ShowDialog()     '子フォームを表示
    MsgBox(NewForm.ListName)   '子フォームから値を受け取る
  End Sub
End Class


'子フォーム
Public Class Form2
  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Me.Close()
  End Sub
  Public Property ListName() As String
    Get
      Return TextBox1.Text
    End Get
    Set(ByVal value As String)
      TextBox1.Text = value
    End Set
  End Property
End Class

’親フォーム
Public Class Form1
  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim NewForm As New Form2()

    NewForm.ListName = "12345"  '親フォームの値を子フォームに渡す
    NewForm.ShowDialog()     '子フォームを表示
    MsgBox(NewForm.ListName)   '子フォームから値を受け取る
  End Sub
End Class


'子フォーム
Public Class Form2
  Private Sub Button1_Click(ByVal...続きを読む

QDataTableから条件を満たした行を別のDatatableへコピーしたい

VC#2005とSQLServer2005ExpressEditionでWindowsアプリケーションを作成しています。

データベースの中から1つのマスタテーブルのデータを呼び出すのにTableAdapterを使ってDataTableにデータをバインドしました。
そこから条件を満たしている行をすべて抽出して同じ型のDataTableにデータをコピーしたいのです。

ですから、DataTableは2つ用意しています。1つは上記の通りデータをバインドしていますが、もう1つは宣言しただけなのでまだ空っぽの状態です。
DataTableにはカラムが3列あり、その中の1列をグループIDとしています。
条件としてはグループIDが同じであるということです。
やりたいことは条件を満たしている行をすべて抽出して空のデータテーブルにコピーすることです。

どなたかご存知の方いらっしゃれば教えてください。
よろしくお願いします。

Aベストアンサー

C#だったんですね … さほど変わりないと思いますが

お使いのコードが提示されていないのでこちらで適当な変数をでっち上げております
現在お使いのコードを支障の無い範囲で提示しましょう

//元のデータテーブルがdtSourceとすると
// テーブル構造をコピー
DataTable dt = dtSource.Clone();
DataRow r = null;
foreach( DataRow dtRow in dtSource.Select("選択するための文字列"))
{
  r = dt.NewRow();
  for( int n = 0; n < dtRow.ItemArray.Length; n++ )
  {
    r[n] = dtRow[n];
  }
  dt.Rows.Add( r );
}
といった具合になると思います

# 前回の投稿中のstSorceはdtSourceの単なるミスです

QDataGridViewで指定したセルの値を取得

こんにちは。

VB2008のDataGridViewで指定したセルの値を取得をする方法がわかりません。
どなたか教えてください。

Aベストアンサー

こんばんは.

 Dim Data As String
 Data = Me.DataGridView(0, 2).Value
 MsgBox(Data)

みたいな感じで取れないですかね???

QVB.NET開発。ラジオボタンとコントロールの制御について教えてください

開発環境 : WindowsXP
      office2003
言語   : VB.NET

.NET初心者です。ご存知の方がおりましたらご教示御願いします。

今、ラジオボタンを10個と、
テキストボックスのコントロールを2個(AとB)置いた画面をつくっています。
ラジオボタンは1つしか選択できません。

分からないことは、
その内のラジオボタン5個はAのテキストボックスにのみ使用する、
残りのラジオボタン5個はBのテキストボックスにのみ使用する場合の
制御方法です。

一応、1つのラジオボタンに対して、1つのイベントを発生させるような形で制御はできているのですが、
もっと、効率的な書き方はないでしょうか。
(グループ化するとか?)


どうぞよろしくお願い致します。

Aベストアンサー

イベントハンドラは
Private Sub HandlerMethod(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ☆
上記の☆のところにイベントを捕らえるコントロール名とイベント名が入ります。

略) Handles RadioButton1.CheckedChanged, RadioButton2.CheckedChanged
のようにカンマで連結すれば、複数のコントロールをひとつのイベントハンドラで処理することができます。実際にイベントを発生させたコントロールはsenderで判別できます。

手作業でこれを追加してもできますが、フォームデザイナからであれば次の手順で行って下さい。

1. イベントハンドラをまとめるコントロールを選択
(今回の場合はラジオボタン5つ)
2. プロパティウィンドウの稲妻マークをクリック(イベント一覧に変わります)
3. CheckedChangedの欄にイベントハンドラ名(名前は任意。例:RadioChanged)を記入し、Enterキー

これで、複数選択したコントロールをひとつのイベントハンドラで受け取るコードが自動的に生成されます。

※当方VB2005環境で確認しているので、VB.NETが同じかどうかまでは不明です。

イベントハンドラは
Private Sub HandlerMethod(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ☆
上記の☆のところにイベントを捕らえるコントロール名とイベント名が入ります。

略) Handles RadioButton1.CheckedChanged, RadioButton2.CheckedChanged
のようにカンマで連結すれば、複数のコントロールをひとつのイベントハンドラで処理することができます。実際にイベントを発生させたコントロールはsenderで判別できます。

手作業でこれを追加してもできますが、フォームデザ...続きを読む


人気Q&Aランキング