• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:グリッドについて,エクセルのアドインについて)

グリッドについて,エクセルのアドインについて

TAGOSAKU7の回答

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.4

学生さんなんですね。。。てっきりどこかの研究所だと思ってました。。。 向上心のある学生さん大歓迎です。 DataGridのサンプルです。 サンプル開発環境 VB6/SP5 開発参考用 Access2000 データはフィールドは関数creLogDbで「adInteger」で設定しているために、半角数字しか対応してません。 フィールドタイプを変更したい時は、 http://www.microsoft.com/JAPAN/developer/library/odeopg/deovrcreatingmodifyingaccesstables.htm を参考にしてください。 データ項目は常に上書きモードになってます。 編集/追加をする時はカレントのグリッドの上で数字を打ち込み、Enterで確定します。 カーソルキーで、データグリッド内のグリッドを移動します。 データの削除は、行ヘッダをクリックして、削除したい行を選択後に、「DELETEキー」でデータの削除が行えます。 Accessが入っていたら、定数logFileデータベース内のlogTblテーブルを編集することにより、データを直接編集することができます。 フォームに以下のコードを貼り付けてください。 必要なコンポーネント Microsoft ADO Data Control 6.0 (SP4) (OLEDB) Microsoft DataGrid Control 6.0 (SP5) (OLEDB) 必要な参照設定 Microsoft ActiveX Data Objects 2.5 Library Microsoft ADO Ext 2.5 for DDL and Security 必要なオブジェクト/コントロール フォーム[Form1] DataGrid[DataGrid1] ADODC[ADODC1] 各コントロールは適当に貼り付けてください。プログラム中で初期設定を行ってます。 Option Explicit 'アクセスDBとの接続のお決まり言葉 Private Const ConnectConst As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" 'ログDBファイル名 Private Const logFile  As String = "C:\LOG.mdb" 'ログテーブル Private Const logTbl  As String = "LogTbl" 'カレントグリッドが移った時に現在の位置をADODC1に表示する Private Sub Adodc1_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)   Dim wkCnt  As Long   Dim wkStr  As String   With Me     'レコードカウントを得る     wkCnt = pRecordset.RecordCount          'データが存在しない     If wkCnt = 0 Then       wkStr = "データが存在しません"          'データが存在するとき、ADODBにカレントレコード情報を表示     Else       wkStr = pRecordset.AbsolutePosition & "/" & wkCnt     End If     .Adodc1.Caption = wkStr   End With End Sub 'フォームロード Private Sub Form_Load()   Dim wkVal  As Variant      'ログDBファイルが存在しない時、ログDBファイルの作成を行う   If Not FileExt(logFile) Then     '項目名をセット     wkVal = Array("項目1", "項目2", "項目3")     Call creLogDb(logFile, logTbl, wkVal)   End If      With Me     'フォームの初期設定     .ScaleMode = vbPixels          With Adodc1       'ADODCをフォーム下に位置付ける       .Align = vbAlignBottom              'ログDBファイルに接続       .ConnectionString = ConnectConst & logFile       .RecordSource = "select * from " & logTbl       .Refresh     End With          'データグリッドの初期設定     With .DataGrid1       '追加/更新/削除の許可       .AllowAddNew = True       .AllowUpdate = True       .AllowDelete = True     End With          'データグリッドに反映     Set .DataGrid1.DataSource = .Adodc1     .DataGrid1.ReBind   End With End Sub 'フォームのサイズ変更時 Private Sub Form_Resize()   'フォームサイズが変更されたらデータグリッドのサイズも変更してあげる   With Me     .DataGrid1.Left = 0     .DataGrid1.Top = 0     .DataGrid1.Width = .ScaleWidth     .DataGrid1.Height = .ScaleHeight - .Adodc1.Height   End With End Sub '-------------------------------------------------------- '  関数名 : FileExt '  用途  : ファイルが存在するかどうか調べる '  引数  : strPathName ファイル・ディレトクリ(パス)名 '  戻り値 : True ファイルは存在する '       False ファイルは存在しない '-------------------------------------------------------- Public Function FileExt(strPathName As String) As Boolean      '引数のサイズを格納/ファイル番号を格納   Dim lngPNameSize As Long   'エラーを無効にしておく   On Error Resume Next   '引数のファイル名・パス名がセットされていない   If strPathName = "" Then     '関数を抜ける     Exit Function   End If   'パス名の最後にディレクトリ記号がある場合は削除   If Right(strPathName, 1) = "\" Then     'パスのサイズ-1を格納     lngPNameSize = Len(strPathName) - 1     '最後の一文字を取り除く     strPathName = Left(strPathName, lngPNameSize)   End If      'ファイルを開いて、エラーかどうか確かめる   '現在使用可能なファイル番号を割り振る   lngPNameSize = FreeFile      'では、開く   Open strPathName For Input As lngPNameSize   FileExt = (Err.Number = 0)   Close lngPNameSize      'エラー値を初期化   Err.Clear End Function 'ログDBファイルを作成 Private Sub creLogDb(inFileName As String, inTblName As String, valFieldAry As Variant)   Dim Cat As ADOX.Catalog   Dim Tbl As ADOX.Table   Dim valWork As Variant      'DBファイル作成   Set Cat = New ADOX.Catalog   Cat.Create ConnectConst & inFileName      'テーブル情報/フィールド作成   Set Tbl = New ADOX.Table   Tbl.Name = inTblName   For Each valWork In valFieldAry     'ここは整数型でデータフィールドを作成してます     Tbl.Columns.Append valWork, adInteger     Debug.Print Tbl.Columns.Count   Next valWork   'このタイミングでテーブル作成   Cat.Tables.Append Tbl      Set Tbl = Nothing   Set Cat = Nothing End Sub

関連するQ&A

  • MSFlexGridのスクロールバー位置

    VB5(SP3)です。 ある検索条件でMSFlexGridに100行表示させた後、垂直スクロールバーで50行ほど下方向にスクロールさせます。 この状態で違う検索条件で1行表示させた時、垂直スクロールバーの位置が変わらないため(TOPにこない)に何も表示されません。垂直スクロールバーを上方向にスクロールさせれば出てきます。 垂直スクロールバーをTOP位置に持ってくる方法はありませんか? MSFlexGrid.VscrollBar.Value=0とかあれば・・・・

  • excelでのアドインを使用しない回帰分析の求め方

    excelで回帰分析を使って将来の値をアドインを使わずに計算したいのですが、どうすればできますか? 与えられている情報は 日付    値段 11/1    3029 11/2    3038 11/3    2549 といった具合に11/30日まで続いています。

  • 階層フレキシブル グリッド コントロール のスクロールバーを表示しない状態でスクロールさせる方法は?

    VB6.0で階層フレキシブル グリッド コントロールを 3個をそれぞれ明細部・縦計部・横計部として使用して、 スクロールを連動させて表示したいと思っています。 ただ、グリッドコントロールのそれぞれにスクロールバー を表示させるのはあまり見栄えがよくないので、 垂直スクロールバーで、明細と横計の上下スクロール、 水平スクロールバーで、明細と縦計の左右スクロールを 制御しようと思い、 とりあえず、グリッドコントロールの ScrollBarsプロパティーをflexScrollNoneに設定してTopRowプロパティーとLeftColプロパティーの値を 適当に設定してみたのですが、左上のセルは(1,1) が表示されたままでした。 なんとか、うまくスクロールさせる方法はないでしょうか?

  • グリッドの使い方について

     VB初心者です。 Excelからデータをグリッドに取り込んでグリッドで計算しているのですが、x(i, j) = MSFlexGrid1.TextMatrix(i, j) の文がいろいろ入力してみたのですが、エラーが出てしまいます。  それと計算するときに最初のセルを(3,3)などにしたい時にどうすれば良いのかわかりません。 教えていただければ幸いです。よろしくお願いします。 Dim goukei(10) As Double Dim x(20, 10) As Double For i = 1 To 20 For j = 1 To 10 x(i, j) = MSFlexGrid1.TextMatrix(i, j) Next j Next i For j = 1 To 10 goukei(j) = 0 Next j For i = 1 To 20 For j = 1 To 10 goukei(j) = goukei(j) + x(i, j) Next j Next i For j = 1 To 10 Text1.Text = goukei(j) Next j

  • VB.net データーグリッドビューで余白を無くし

    VB.net 2010でプログラムを開発して居ます。 VB.net データーグリッドビューで余白を無くしたいのですが、何か良い方法はあるでしょうか。 アンカーで左右上下を設定して、オートサイズに設定すれば余白が無くなる様ですが、1つのプログラムで複数の表を作成して居る為、これだと各表のセルの幅が表によって異なってしまい、見栄えが良くありません。 各セルの幅とスクロールバー、及び一番左の列の幅を足して、その幅をデーターグリッドビューの幅とすれば余白は無くなると思うのですが、一番左の列とスクロールバーの幅の求め方が分かりません。 どなたか解決策をご存知の方、お教え下さい。 宜しくお願い致します。 添付のAの部分を無くしたいのです。 Bの幅とスクロールバーの幅が判れば何とか成ると思うのですが。

  • EXCELアドインファイル開けません

    こんにちわ。OS98SE Office2000personal EXCELで、藤本壱さんの株価テクニカル分析アドインを、 入れてるんですが、 最近、Access95で、EXCEL&ACCESSで、 遊んだからかなあ、 Microsoft Visual Basic ファイル開けません と、ご丁寧に、2回出てきます。 office再インストールしたんですが、 変わらず、 アドイン入れなおしても、無理なんです。 いい解決方法ないでしょうか? よろしく。

  • マウスのサムホイールに反応させるには

    VB5(SP3)のMsFlexGrid操作においてマウスのサムホイールでスクロールバー及び表を上下に動かす方法を教えていただけませんか。

  • Excel分析ツールが出せません

    Excel分析ツールで回帰分析をやりたいのですが、ツールの中にでていません。アドインをみて分析ツールにチェックを入れてOKにしても何も起こりません。どうしたらツールのメニューに分析ツールを出して使えるように出来るのでしょうか? 初歩的なことなのかも知れませんがよろしくお願いいたします。

  • エクセルの回帰分析はどこにあるのですか?

    重回帰分析をしたいです。 エクセルにおいて、メニューバーの「データ」→「データ分析」→「回帰分析」を選択するのですが,わたくしは見つけられませんでした。ありません。 わたくしは,データ分析が見つけられません。困っています。 どこにあるのでしょうか。 教えてください。よろしくお願い致します。 また,Kingsoft Spreadsheets では,重回帰分析ができないのでしょうか??? メニューバーの中の「データ」の中には データ分析が見つけられません。 教えてください。よろしくお願い致します。

  • EXCELのアドインを入れても重くならない方法は?

    下記の構成のパソコンを使用しています。 ある時から、EXCELの起動や処理が遅くなったので、 こちらのサイトで調べましたら、アドインが原因では?と 思い、アドインをはずしました。 すると、元のようにすぐに起動してくれるようになり、 操作中の処理も早くなりました。 ですが、分析ツールや条件付き合計ウィザード、VBAを使用したいので、アドインを入れた状態で使用したいのです。 アドインを入れても重くならない方法はないでしょうか? メモリは256MBですが、526MBに増やした方がいいのでしょうか? どなたかアドバイスをよろしくお願いいたします。 <自作> CPU:Pentium III 551MHz メモリ:256MB OS:XP Professional Version2002 SP1