Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4254 / 13646 ツリー ←次へ | 前へ→

【57671】Bordersの消去の仕方 ゆう 08/9/8(月) 15:26 質問[未読]
【57675】Re:Bordersの消去の仕方 りん 08/9/8(月) 15:58 回答[未読]

【57671】Bordersの消去の仕方
質問  ゆう  - 08/9/8(月) 15:26 -

引用なし
パスワード
   worksheet2に描かれた縦線があります。

そして、worksheet1に戻って、また、worksheet2を見た時に、
始めに描かれていた縦線が消えるようにするにはどのようにしたらよいのでしょうか・・。

Worksheet_Activate()

で行えるようにしています。


アドバイスよろしくお願いします。

【57675】Re:Bordersの消去の仕方
回答  りん E-MAIL  - 08/9/8(月) 15:58 -

引用なし
パスワード
   ゆう さん、こんにちわ。
>worksheet2に描かれた縦線があります。
>
>そして、worksheet1に戻って、また、worksheet2を見た時に、
>始めに描かれていた縦線が消えるようにするにはどのようにしたらよいのでしょうか・・。

Bordersということは、縦罫線ですよね。

複数のシートがある、または複数のブックを開いていたりする場合は、Sheet_ActivateよりもWorkbook_SheetActivateでシートの移動を確認しながら処理したほうがらくだと思います。
↓Thisworkbookに全部書きます。
'//////////////////////////////////////////
Dim sh2 As Object
'
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
  Set sh2 = Sh 'さっきまでアクティブだったシートを取得する
End Sub
'
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
  If Sh.Name = "Sheet2" And sh2.Name = "Sheet1" Then
   'たて線を消す
   With sh.UsedRange
     .Borders(xlEdgeRight).LineStyle = xlLineStyleNone
     .Borders(xlEdgeLeft).LineStyle = xlLineStyleNone
     .Borders(xlInsideVertical).LineStyle = xlLineStyleNone
   End With
  End If
  Set sh2 = Nothing '用が終わったので解放
End Sub
'//////////////////////////////////////////

こんな感じです。

4254 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free