• ベストアンサー

SPREAD SHEETでの複数行の削除処理

SPREAD SHEETでの複数行の削除処理の方法をどなたか御存知ないでしょうか? バージョンはSPREAD Sheet3.0Jです。 次のようにしたんですがうまく行きません・・・ Me.vaSpread1.Row = Row Me.vaSpread1.Row2 = Row + 1 Me.vaSpread1.BlockMode = True Me.vaSpread1.Action = SS_ACTION_DELETE_ROW Me.vaSpread1.BlockMode = False よろしくお願い致します。

noname#16472
noname#16472

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

  • ベストアンサー
  • guruguru2
  • ベストアンサー率29% (39/132)
回答No.1

こんにちわ(^^)。 Ver6.0Jしか使用したことがないのですが、私は行削除のときは下記のものを使用していました。 オンラインヘルプより: 対  象 fpSpreadコントロール 機  能 指定の行または行範囲を削除します。 書  式 fpSpread1.DeleteRows(ByVal lRow As Long,                 ByVal lNumRows As Long) 引  数 lRow 削除する行範囲の最初の行番号      lNumRows 削除する行数 戻 り 値 なし 解  説 行を削除しても、MaxRowsプロパティで設定した行数は減少しません。DeleteRowsメソッドを呼び出して行を削除すると、スプレッドシートの最後に空白行が自動的に追加されます。 サンプル 次のサンプルコードは、スプレッドシートの4行目を削除します。 fpSpread1.DeleteRows 4, 1 Ver3.0Jで使えるかどうかはわからないのですが…。(環境がないため) 1度ヘルプで確かめてみてください。 すみません。

noname#16472
質問者

お礼

こんにちは。 回答ありがとうございます。 Ver3.0ではこの関数はありませんでした・・・ やっぱり最新版を使うべきなんでしょうかね・・・ 参考になりました。ありがとうございました。

関連するQ&A

  • GrapeCityのSpreadについて

    いつもお世話になっております。 VB6.0、Spread3.0を使っています。 下記コードで罫線の色を変えようとしているのですが、 うまくいきません。 Me.vaSpread3.Col = Me.vaSpread3.ActiveCol Me.vaSpread3.Row = Me.vaSpread3.ActiveRow Me.vaSpread3.CellBorderType = 16 Me.vaSpread3.CellBorderStyle = 5 Me.vaSpread3.CellBorderColor = MyColor Me.vaSpread3.Action = SS_ACTION_SET_CELL_BORDER おわかりのかたがおられましたらよろしくお願いいたします。

  • Spreadの選択行の取得について

    いつもお世話になっております。 VB6、Spread3.0の環境でコーディングしています。 Spreadを単一行モードにして、1行だけ選択された 状態で選択された行の行番号を取得したいのです。 Me.vaSpread1.Row = Me.vaSpread1.SelModeIndex Me.vaSpread1.Col = 1 で取得しようとしても、うまくいきません。 どのようにすれば、行番号を取得できるのでしょう? ご存知のかたがおられましたら、よろしくお願い します。

  • SPREADの行の削除

    VB6.0 SPREAD3.0 OS:2000 SPREADでカレント表示した行を削除ボタンを押したら 削除したいのですがやり方がうまくわかりません。 クリックしたらカレント表示 Private Sub oSpmain_Click(ByVal Col As Long, ByVal Row As Long) With oSpmain .ReDraw = False .Row = -1: .Col = -1: .BackColor = vbWhite .ForeColor = RGB(255, 300, 0) .BlockMode = True .Row = Row: .Row2 = Row .Col = 1: .Col2 = .MaxCols .BackColor = .ForeColor .ForeColor = vbWhite Xor .ForeColor .BlockMode = False .ReDraw = True End With End Sub ここまではできたのですが、削除が思うようにできません。アドバイスお願いします。

  • VBのスプレッドシートについて

    VBのフォーム上にスプレッドシートをとりこみ、 ボタンをクリックすると、アクティブになっている 行を削除したいです。 スプレッドシートではデザイナで、事前に単一選択を選んでおき、1行単位でアクティブになるように設定しています。 スプレッドシートのヘルプを参考に、 Private Sub Command1_Click() With vaSpread1 .Row = ActiveRow .BlockMode = False .Action = SS_ACTION_DELETE_ROW .BlockMode = True End With End Sub このように記述したのですが、 うまくいきません。 処理は通るだけで、行の削除がされません。 何が原因なのでしょうか?お願いします。

  • 選んだ行の削除

    VB6.0 SPREAD3.0 SPREADで何行か表示している時に削除したい行をクリックし、その行に色(黄色)をつけ、その色のついた行を削除ボタンを押したら削除する・・・という仕様にしたいと思っております。 そして以下のように書いてみたのですが、問題があり、 (1)クリックした行の色が変わると同時に何故だか最終行の文字の色が黄色に変わってしまう。 (2)例えば一行目をクリックしてから3行目をクリックすると一行目の文字の色が黄色になってしまい、もとに戻らない。 (3)行を選択しないまま削除ボタンを押すと下から順に行が削除されてしまう。 という3つの問題があり、解決できないでいます。 なにかアドバイスがありましたらよろしくお願いします。 '---クリックした行の色を反転--- Private Sub spread_Click(ByVal Col As Long, ByVal Row As Long) With oSpmain .ReDraw = False .Row = .Row: .Col = -1: .BackColor = vbWhite .ForeColor = RGB(255, 300, 0) .BlockMode = True .Row = Row: .Row2 = Row .Col = 1: .Col2 = .MaxCols .BackColor = .ForeColor .ForeColor = vbWhite Xor .ForeColor .BlockMode = False .ReDraw = True End With End Sub '---削除ボタン--- Private Sub sakujyo_Click() With spread .BlockMode = True .Action = ActionDeleteRow .BlockMode = False .MaxRows = .MaxRows - 1 End With End Sub

  • vaSpreadのチェックボックスとコマンドボタンについて

    VBの初心者です。よろしくお願いします。 VB6.0&vaSpread3.0を使用しています。 Spreadの同一行にコマンドボタンとチェックボックスを配置しています。 コマンドボタンをクリックすると1行削除するようにしたいと思っています。 ButtonClickedにて1行削除できるよう、記載したのですが、 チェックボックスをクリックしてもButtonClickedが反応し、1行削除されてしまいます。 コマンドボタンとチェックボックスを使い分けたい場合、どのように記載したらよろしいでしょうか? 下記にコードを記載します。 Private Sub vaSpread1_ButtonClicked(ByVal Col As Long, ByVal Row As Long, ByVal ButtonDown As Integer) With vaSpread1 .Row = Row .Row2 = Row .BlockMode = True .Action = ActionDeleteRow .BlockMode = False .MaxRows = .MaxRows - 2 End With End Sub よろしくお願いいたします。

  • SPREAD使用について

    いつもお世話になっています。 SPREADを使用しているのですが、 redraw=false にしていても表示が更新される理由がわからないのです。 なにか考えられることはありますか? SPREAD.ReDraw = False   Do Until (ファイルの終わりまで) '◆◆◆◆スプレッドへ表示データセット◆◆◆◆ '◆◆◆◆スプレッドの行を追加◆◆◆◆ '◆◆◆◆次のレコードへ◆◆◆◆ DoEvents Loop SPREAD.ReDraw = True ソースは普通だと思いますが…。

  • spread6.0でShiftキードラッグの行選択

    VB6、spread6.0Jで開発をしております。 spreadの行ヘッダをマウスのドラッグで複数選択した場合に、コード上で行番号を取得したいのですが、どのようにすればいいのか検索しても分からなかったので、教えてください。 ctrlで複数選択するのも必要なので、オペレーションモードは「拡張選択モード」にしているのですが、shiftキーで行選択した状態で、コードで行番号を取得しようとすると、1行分しか取得できていないでいます。 どうか、宜しくお願いいたします。

  • VBA2003: 選択された複数シートを削除したい

    複数のワークシートを選択した状態で、次のマクロを動かすと1つのシートしか削除されません。 選択した全てのワークシートを削除したいのですが、コードのどこが間違っているのでしょうか。 Sub TOOL1() Dim objWs As Worksheet Application.DisplayAlerts = False For Each objWs In ActiveWindow.SelectedSheets objWs.Delete Next Application.DisplayAlerts = True End Sub

  • エクセルVBAの別sheetの空白行削除について

    エクセルVBAでBOOK1のsheet1とsheet2とsheet3があり、 sheet1とsheet2の全ての情報をsheet3にコピーしてまとめるようにしました。 マクロを実行するには、Visual Basicを開いてF5を押しています。 それをsheet1かsheet2の中身の一部分でも変更すると そのときに自動的にマクロが実行されるようにしたいです。 sheet1とsheet2(sheet3は空白のまま)に Private Sub Worksheet_Change(ByVal Target As Range) Call マクロ() End Sub を入れ、 次に、標準モジュールに Sub マクロ() '下記よりsheet1とsheet2の内容をsheet3にコピーする Worksheets("sheet1").Range("C1:BE50").Copy _ Destination:=Workbooks("BOOK.xlsm").Worksheets("sheet3").Range("C1:BE50") Worksheets("sheet2").Range("C1:BE100").Copy _ Destination:=Workbooks("BOOK.xlsm").Worksheets("sheet3").Range("C51:BE150") '下記より上記sheet3の状態から余分な空白行を削除する Dim UsedCell As Range Dim Max_Row, RowCount As Integer Set UsedCell = ActiveSheet.UsedRange Max_Row = UsedCell.Cells(UsedCell.Count).Row Application.ScreenUpdating = False For RowCount = Max_Row To 1 Step -1 If Application.WorksheetFunction.CountA(Rows(RowCount)) = 0 Then Rows(RowCount).Delete End If Next Application.ScreenUpdating = True End Sub をやって、sheet1かsheet2のセルを変更すると エクセルが固まってしまいます。 デバックでは Rows(RowCount).Delete がよくないようです。 書き方が間違っているのでしょうか?

専門家に質問してみよう