人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルについて質問です。

基データのシートがあるのですが、データの量が膨大なのでデータの閲覧がしやすいように別のシートに条件があうものだけを閲覧できるようにしたいと考えています。

行いたいことのイメージは以下のURLです。

http://oskuni7.sakura.ne.jp/hatena/question14/question14.htm

上記のように条件にあったデータを基データを基に簡単に閲覧できるようにしたいです。

そして今回は、閲覧だけではなく、もしシート2で あ のデータ1のデータ を変えると、基データの あ データ1も同じようにデータが切り替わることをしたいと考えています。

このような設定をエクセルに持たせる事はVBAで可能でしょうか?

●質問者: aiomock
●カテゴリ:コンピュータ インターネット
✍キーワード:URL VBA イメージ エクセル データ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● SALINGER
●100ポイント ベストアンサー

1行目は判別とデータのタイトルが入っているとして、実際のデータは2行目からになるでしょうか。

実行する前にSheet1以外のシートを削除してください。

Sub Macro1()
 Dim lastRow As Long
 Dim i As Long
 Dim sh As Worksheet
 Dim f As Boolean
 Dim r As Range
 Dim lastRow2 As Long
 Dim SheetCount As Integer
 
 SheetCount = 2

 With Sheet1
 lastRow = .Cells(Rows.Count, 1).End(xlUp).Row
 For i = 2 To lastRow
 f = False
 For Each sh In Worksheets
 If sh.Name <> "Sheet1" Then
 If sh.Range("A2").Value = .Cells(i, 1).Value Then
 Set r = sh.Range("B:B").Find(.Cells(i, 2).Value)
 If r Is Nothing Then
 lastRow2 = sh.Cells(Rows.Count, 1).End(xlUp).Row
 sh.Cells(lastRow2 + 1, 1).Value = .Cells(i, 1).Value
 sh.Cells(lastRow2 + 1, 2).Value = .Cells(i, 2).Value
 .Cells(i, 1).Formula = "=" & sh.Name & "!A" & lastRow2 + 1
 .Cells(i, 2).Formula = "=" & sh.Name & "!B" & lastRow2 + 1
 End If
 f = True
 Exit For
 End If
 End If
 Next
 
 If Not f Then
 Worksheets.Add
 ActiveSheet.Name = "Sheet" & SheetCount
 ActiveSheet.Range("A1").Value = .Range("A1").Value
 ActiveSheet.Range("B1").Value = .Range("B1").Value
 ActiveSheet.Range("A2").Value = .Cells(i, 1).Value
 ActiveSheet.Range("B2").Value = .Cells(i, 2).Value
 .Cells(i, 1).Formula = "=Sheet" & SheetCount & "!A2"
 .Cells(i, 2).Formula = "=Sheet" & SheetCount & "!B2"
 SheetCount = SheetCount + 1
 End If
 Next i
 End With
End Sub
◎質問者からの返答

ご回答ありがとうございます。

プログラム実行されました。

このような機能をエクセルに持たせることができるのですね。

とても参考になりました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ