Excel VBA質問箱 IV

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

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


11856 / 13645 ツリー ←次へ | 前へ→

【13651】max関数の拾い方 hisao 04/5/10(月) 16:35 質問[未読]
【13652】Re:max関数の拾い方 IROC 04/5/10(月) 17:02 回答[未読]
【13659】Re:max関数の拾い方 hisao 04/5/10(月) 19:23 質問[未読]
【13653】Re:max関数の拾い方 Jaka 04/5/10(月) 17:27 回答[未読]
【13658】Re:max関数の拾い方 hisao 04/5/10(月) 19:16 質問[未読]
【13661】Re:max関数の拾い方 ちゃっぴ 04/5/10(月) 19:32 回答[未読]
【13750】Re:max関数の拾い方 hisao 04/5/12(水) 16:47 お礼[未読]

【13651】max関数の拾い方
質問  hisao E-MAIL  - 04/5/10(月) 16:35 -

引用なし
パスワード
   お世話になります。
例えば"入力"sheetがactiveになったとき、
Private Sub Worksheet_Activate()に次のマクロを入れて"集計表"sheetのA列最大値+1を読み取りたいのですが、たまたま"集計表"sheetがソートされていると
正確に読めません。

Range("c3").Value = Application.WorksheetFunction.Max(Sheets("集計表").Range("a1:a" & a)) + 1

"集計表"sheetから、別のsheetに変わったときに全て表示出来ればと思って
集計表sheetに

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
ActiveSheet.ShowAllData

と入れたのですが、これは"集計表"がactiveになった時に全表示になるだけで
効果がありません。
Private Sub Worksheet_Deactivate()に入れても駄目です。

"入力"sheetをactiveにした時"集計表"sheetを全表示にする方法は無いでしょうか。

【13652】Re:max関数の拾い方
回答  IROC  - 04/5/10(月) 17:02 -

引用なし
パスワード
   >例えば"入力"sheetがactiveになったとき、
>Private Sub Worksheet_Activate()に次のマクロを入れて
これは問題ありません。

>"集計表"sheetのA列最大値+1を読み取りたいのですが、
>たまたま"集計表"sheetがソートされていると
>正確に読めません。
ソート(並べ替え?)されているかは関係ないと思いますが・・?

>Range("c3").Value = Application.WorksheetFunction.Max(Sheets("集計表").Range("a1:a" & a)) + 1

マクロを使わなくても、一般式でも出来るように思えますが・・


>"集計表"sheetから、別のsheetに変わったときに全て表示出来ればと思って
>集計表sheetに
>
>Private Sub Worksheet_Change(ByVal Target As Range)
>On Error Resume Next
>ActiveSheet.ShowAllData
>
>と入れたのですが、これは"集計表"がactiveになった時に全表示になるだけで
>効果がありません。
>Private Sub Worksheet_Deactivate()に入れても駄目です。
>
>"入力"sheetをactiveにした時"集計表"sheetを全表示にする方法は無いでしょうか。

「"集計表"sheetを全表示」とは、どのような意味ですか?

【13653】Re:max関数の拾い方
回答  Jaka  - 04/5/10(月) 17:27 -

引用なし
パスワード
   こんにちは。

THisWorkBookにこんな感じでいけました。

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
a = 10
Sh.Range("c3").Value = Application.Max(Sheets("集計表").Range("a1:a" & a)) + 1
End Sub

【13658】Re:max関数の拾い方
質問  hisao E-MAIL  - 04/5/10(月) 19:16 -

引用なし
パスワード
   ▼Jaka さん:
jakaさん いつも有り難う御座います。
ThisWorkbookを使えば 選択状態でもOKですね。
ただ 開いたシート全てに入ってしまうとちょっとまずいのです。
sheet("入力")の所定の位置にだけ MAX+1の数値を入れたいのですが。

>こんにちは。
>
>THisWorkBookにこんな感じでいけました。
>
>Private Sub Workbook_SheetActivate(ByVal Sh As Object)
>a = 10
>Sh.Range("c3").Value = Application.Max(Sheets("集計表").Range("a1:a" & a)) + 1
>End Sub

【13659】Re:max関数の拾い方
質問  hisao E-MAIL  - 04/5/10(月) 19:23 -

引用なし
パスワード
   ▼IROC さん:
申し訳ありません。
並べ替え状態でなく、シートが選択状態になっている場合です。
例えば sheet("集計表")のA列に1から10が入力されていると
MAX+1は11ですが、たまたまA列の5以上が選択されていると6になってしまいます。選択状態解除のマクロを実行させればよいのですが、
sheet("集計表")からsheet(入力")に変えるだけで(意識せずに)集計表の選択状態を解除して11を選びたいのです。

>>例えば"入力"sheetがactiveになったとき、
>>Private Sub Worksheet_Activate()に次のマクロを入れて
>これは問題ありません。
>
>>"集計表"sheetのA列最大値+1を読み取りたいのですが、
>>たまたま"集計表"sheetがソートされていると
>>正確に読めません。
>ソート(並べ替え?)されているかは関係ないと思いますが・・?
>
>>Range("c3").Value = Application.WorksheetFunction.Max(Sheets("集計表").Range("a1:a" & a)) + 1
>
>マクロを使わなくても、一般式でも出来るように思えますが・・
>
>
>>"集計表"sheetから、別のsheetに変わったときに全て表示出来ればと思って
>>集計表sheetに
>>
>>Private Sub Worksheet_Change(ByVal Target As Range)
>>On Error Resume Next
>>ActiveSheet.ShowAllData
>>
>>と入れたのですが、これは"集計表"がactiveになった時に全表示になるだけで
>>効果がありません。
>>Private Sub Worksheet_Deactivate()に入れても駄目です。
>>
>>"入力"sheetをactiveにした時"集計表"sheetを全表示にする方法は無いでしょうか。
>
>「"集計表"sheetを全表示」とは、どのような意味ですか?

【13661】Re:max関数の拾い方
回答  ちゃっぴ E-MAIL  - 04/5/10(月) 19:32 -

引用なし
パスワード
   If文でフィルタリングすればいいのでは

サンプル
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
  If Sh.name = "入力" Then
    a = 10
    Sh.Range("c3").Value = _
      Application.Max(Sheets("集計表").Range("a1:a" & a)) + 1
  End If
End Sub

【13750】Re:max関数の拾い方
お礼  hisao E-MAIL  - 04/5/12(水) 16:47 -

引用なし
パスワード
   ▼ちゃっぴ さん:
有り難う御座いました。今後も宜しくお願いします。

>If文でフィルタリングすればいいのでは
>
>サンプル
>Private Sub Workbook_SheetActivate(ByVal Sh As Object)
>  If Sh.name = "入力" Then
>    a = 10
>    Sh.Range("c3").Value = _
>      Application.Max(Sheets("集計表").Range("a1:a" & a)) + 1
>  End If
>End Sub

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