• ベストアンサー

MSFrexGridの列幅について

maruru01の回答

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

ちょっとお聞きしたいんですが。 >(Q1).col毎に列を固定したりしなかったりするには、どうすればよいでしょうか。 これは、col毎に固定列数を変えるということですか?補足をお願いします。 Q2については、VB6(SP5)ではそのようなことはないですよ。(ちなみにWin2000(SP2)) なお、固定列のすぐ隣を隠すと、固定列と2列目の間の線が少しぼやけてしまいますが。 では。

keichapapa
質問者

お礼

(Q2)は原因が分りました。表示列と同様にColAlignmentで文字を中央に表示指定していたためでした。 指定を外してデフォルトのままにしたら”ヒゲ”は消えました。 お騒がせしました。 これからも、また宜しくお願いします。

keichapapa
質問者

補足

maruru01さん、はじめまして。 (Q1)はご指摘の通り1列目はflexResizeNone、2列目はflexResizeColumns、 3列目はflexResizeNone…というようなことができるか知りたいです。 (Q2)は(SP5)へのUPを検討してみます。とても参考になりました。 よろしくお願いします。

関連するQ&A

  • VBにて指定した通りにExcelの列幅が設定されません..

    こんにちは。 VBにて指定した通りにExcelの列幅が設定されず、困っております。 【現象】 VisualBasicから、Excelを起動し新規ブックを生成し、 ワークシートを指定して全列幅を「1.75ポイント」で 設定したいのですが、どうしても 列幅が「1.83ポイント」で設定されてしまいます。 VB側ソースでは、次のように書いております。 ワークシート(Index).Cells.ColumnWidth = 1.75 VB側で指定した列幅がExcel側で不都合というケースはあるのでしょうか..。 VB側で列幅を指定したにも拘らず、 Excel側で勝手に列幅を調整してしまう事はあるのでしょうか..? 【実行環境】 ・Visual Basic 6.0 ・Excel Ver2002 かなり急いでおります。 お忙しい中、恐縮ではございますが、 何かご存知の方、アドバイス等、頂戴できますと幸いです。  

  • エクセルVBAでSUM関数の位置をずらす

    いつもお世話になっております。 エクセル2013のVBAで質問です。 例えばJ192セルに =SUM($M192:$AX192) と入力されていたとします。 これの範囲の幅(38列分)はそのままで、下記のコードで得た end_col の列番号(CD)の位置まで列をずらすような指定の方法はありますか?ただし、end_col は一定ではありません。 VBAで位置をずらして、このような数式に範囲を変えたいです。 =SUM($AS192:$CD192) Sub test() Dim end_col As Long Cells(3, Cells(3, Columns.Count).End(xlToLeft).Column).EntireColumn.Select end_col = Selection.Column End Sub すいませんが、ご教授ください。

  • エクセル2003のVBAで列を指定

    エクセルで特定の列の2~10行目に対して、ある作業をする場合、列を指定する方法は以下のどれがいいでしょうか?あるいはもっといい方法があれば教えてください。 実際には列は約40列(固定)、行は1~2万行(変動)程度で、作業はもっと複雑です。 Sub test01() Dim col Dim i As Long, n As Long For Each col In Array(1, 3, 7, 8, 11) '列番号で指定 For i = 2 To 10 n = n + 1 Cells(i, col).Value = n Next i Next col End Sub Sub test02() Dim col Dim i As Long, n As Long For Each col In Array("A", "C", "G", "H", "K") '列の記号で指定 For i = 2 To 10 n = n + 1 Cells(i, col).Value = n Next i Next col End Sub Sub test03() Dim col Dim i As Long, n As Long For Each col In Range("A2,C2,G2,H2,K2") 'セルで指定 For i = 2 To 10 n = n + 1 col.Offset(i - 2).Value = n Next i Next col End Sub

  • 指定した文字列が含まれる行を削除する

    データの照合をしています。 指定した文字列が、「O列」に入っていたら、その行を削除し、 行をつめる というようなマクロを組みたいのですが、エラーがかかってしまいます。 (下のVBは、ネットで公開されていたのを使用させていただいております。) Sub Macro1() Const col As String = "A" '文字列が入力されている列 Dim idx As Long Dim keyWord keyWord = Application.InputBox("削除対象の文字列は?", Type:=2) If TypeName(keyWord) <> "Boolean" And Len(keyWord) > 0 Then   For idx = Cells(65536, col).End(xlUp).Row To 1 Step -1     If InStr(Cells(idx, col).Value, keyWord) > 0 Then '    If Application.CountIf(Rows(idx), "*" & keyWord & "*") > 0 Then       Rows(idx).Delete     End If   Next idx End If End Sub 「下から3行目のNEXTに対応するforがない」とエラーがでます。 ご教授、お願いいたします。

  • MSHFlexGridのスクロール

    リストボックスではListIndexを設定するだけで その項目まで自動的にスクロールしますが、 MSHFlexGridでもこのようなことをしたいのです。 すなわち、ROWまたはCOLプロパティを設定したら、 その位置までスクロールする。 よろしくお願いします Windows2000 SP4 + VB6.0 SP6

  • VBからVCへ渡す構造体の設定について

    VB2005からVCで作られたDLLをコールするときにエラーが出て困ってます。 関数のパラメータに構造体を指定して、構造体のメンバの文字列を渡したいけれど、なんかうまく行かないんですよね。 VB2005だと固定長文字列ってのがサポートされていないとか何とか言うのは分かったけれど、 解決方法が不明となっています。 アドバイスをお願いします。 コードはこんな感じ。 *VC2005******************************************************* typedef struct{  int iTemp;  char cTemp[256]; }tag_strTemp; void __declspec(dllexport) WINAPI TestFunction(tag_strTemp* pstrTemp) {  MessageBox(NULL, pstrTemp->cTemp, "", 0); } *VC2005******************************************************* *VB2005******************************************************* Moduel Module1  Public Structure tag_strTemp   Public iTemp as Integer   Public cTemp as String ←ここの定義に問題があるんだと思ってます。  End Structure End Module Public Class Form1  Private Sub Form1_Load(・・・)   Dim strTemp as tag_strTemp   strTemp.cTemp = "ABCDE"   TestFunction(strTemp)  End Sub End Class *VB2005*******************************************************

  • MSFlexGrid

    VB6SP6を用いています。MSFlexGridですが、固定行をラベルに用いています。このグリッドをクリックして処理を行っています。固定行では、クリックを無視してほしいのです。固定行をクリックしても、grid.Rowの値は0ではなく、押してもいない、1が返ってきます。本来はクリックしたくない場所ですが、処理を行う1行目をクリックしたことと同じになってしまいます。 ラベル部分をクリックしないようにと伝えていますが、やはり具合が悪いです。 良い、回避方法はないでしょうか。

  • vb.net web 動的に作成したTableが消える

    よろしくお願いします 現在、vs.net 2005 で web ページを作成しています そこで質問があるので、ご教授の程よろしくお願いします。 test.aspx Table コントロール配置:Table1 Button コントロール配置:Button1 Label コントロール配置:Label1 Label コントロール配置:Label2 test.aspx.vb Partial Class test Inherits System.Web.UI.Page Protected Sub form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles form1.Load Dim row As TableRow Dim col As TableCell If (Page.IsPostBack = False) Then Label2.Text = "aaa" row = New TableRow col = New TableCell : col.Text = "行0:列0" : row.Cells.Add(col) : col = Nothing col = New TableCell : col.Text = "行0:列1" : row.Cells.Add(col) : col = Nothing Table1.Rows.Add(row) row = New TableRow col = New TableCell : col.Text = "行0:列0" : row.Cells.Add(col) : col = Nothing col = New TableCell : col.Text = "行0:列1" : row.Cells.Add(col) : col = Nothing Table1.Rows.Add(row) End If End Sub Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click Label1.Text = "Rows.Count" & Table1.Rows.Count End Sub End Class ボタンを押すと、 Label2の "aaa" は保持されていて Table1が保持されないのはなぜなのでしょうか? Table1 の内容を保持させたいのですが その場合、どのようにすればよいのでしょうか

  • 再び印刷マクロを

    フィールド行はA列からT列までなのですが、途中のK列からN列までは印刷したくないために、2行のマクロ Range("K1:N1").EntireColumn.Hidden = True Range("A1:S1").PrintOut を挿入したのですが、エラーとなってしまいます。 印刷マクロは下のようになっています。 Sub 最終処理分印刷() '----- 印刷範囲 列指定 --------- Const Sh = "入力シート" '  <----- シート名指定 Const Left_Col = "A" '  <------ 印刷範囲の左端列 Const Right_Col = "S" '  <----- 印刷範囲の右端列 Const Target_Col = "T" ' <----- 印刷データ判定列(日付形式) Const Prev_Mode = 1 '  <----- 0 = 直接印刷 /  1 = プレビュー '------------------------------ Dim TopRw As Long Dim EndRw As Long Dim Target_Date As Date Dim N As Long With Worksheets(Sh)  EndRw = .Range(Target_Col & "65536").End   (xlUp).Row TopRw = EndRw Do While .Range(Target_Col & TopRw).Value = _ .Range(Target_Col & TopRw).Offset(-1).Value TopRw = TopRw - 1 If TopRw = 1 Then Exit Do Loop Range("K1:N1").EntireColumn.Hidden = True Range("A1:S1").PrintOut N = EndRw - TopRw + 1 .PageSetup.PrintArea = Range(Left_Col & TopRw & _ ":" & Right_Col & EndRw).Address If Err.Number > 0 Then Exit Sub End If If Prev_Mode = 1 Then .PrintOut preview:=True Else .PrintOut preview:=False End If .PageSetup.PrintArea = False End With End Sub

  • CCurの引値を文字列にする時と数値にするときの違い?!

    今VB6.0SP5を用いてPGを作成しているのですが、 【CCur】関数を用いて少数点の計算を行っていますが予想外の動きに戸惑っております CCurの引値に数値を指定したときと文字列をしてしたときの返値が異なるのですがどういうことなのでしょうか? 数値型  引値 0.0001 ※0.00005 0.0001 ※0.00015 0.0003 ※0.00025 0.0003 ※0.00035 0.0004 ※0.00045 0.0006 ※0.00055 0.0006 ※0.00065 0.0008 ※0.00075 0.0008 ※0.00085 0.0009 ※0.00095 文字列型       引値 0 ※0.00005 0.0002 ※0.00015 0.0002 ※0.00025 0.0004 ※0.00035 0.0004 ※0.00045 0.0006 ※0.00055 0.0006 ※0.00065 0.0008 ※0.00075 0.0008 ※0.00085 0.001 ※0.00095 ヘルプ等でも調べたのですが、引値は「オブジェクト」となっていて数値でも文字列でも構わない風なのですが返値が異なるので困っております。 文字列を指定した時は【丸め】が行われているは確認できたのですが、数値型の規則性がわかりません。 その辺りの情報をご教授お願いします。 環境 OS:Win2000 SP4 WinNT SP5 VB6.0 SP5