OtenkiAme の回答履歴

全171件中101~120件表示
  • Excel VBA:

    A1~AB11542 (先頭はタイトル行) の表をマクロでピボットテーブルを作りたいです。データを追加して範囲が変わっても、ピボットテーブルの範囲が変わってくれません。下記のマクロの意味が分からないのですが、どう修正すればいいのでしょうか。お願いします。 Range("A1").Select Selection.CurrentRegion.Select ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ "'200804~累計'!R1C1:R10501C28").CreatePivotTable TableDestination:="", _ TableName:="ピボットテーブル1", DefaultVersion:=xlPivotTableVersion10 ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1) ActiveSheet.Cells(3, 1).Select ActiveWorkbook.ShowPivotTableFieldList = True With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("仕入先名称") .Orientation = xlRowField .Position = 1 End With With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("仕入検収月") .Orientation = xlColumnField .Position = 1 End With ActiveSheet.PivotTables("ピボットテーブル1").AddDataField ActiveSheet.PivotTables( _ "ピボットテーブル1").PivotFields("合価"), "合計 / 合価", xlSum ActiveSheet.Name = "月別集計" ActiveWorkbook.ShowPivotTableFieldList = False

  • 日付抽出でエラーします、教えてください。

    s1シートB列に日付が連続1月~数ヶ月分入っています(書式日付は 「3/13」の形式で入力されてます) この中から例えば3月分だけをフィルタして、それを別ブック保存したいのです。 インプットボックスで「09/03」yy/mmと入力すると フィルターを掛けるところでデバックエラーになります 3/13形式の入力を、どのようにして09/03と認識させるのか 上手く抽出させるには、どうしたらいいのでしょうか?悩んでいます。 ご指導ねがいますm(_ _)m Private Sub CommandButton1_Click() Dim Wh As Worksheet, ws As Worksheet Dim Hiduke As Variant, Uwagaki As Integer, Owarimsg As Integer Dim umu Dim dumu '日付入力 Hiduke = Application.InputBox("年月データ入力", , Format(Hiduke, "yy/mm")) If Hiduke = "Boolean" Or Hiduke = False Or Hiduke = " " Then Exit Sub Do While Hiduke = "" Hiduke = Application.InputBox("日付入力されてません", , Format(Hiduke, "yy/mm")) Loop 'sheetからの日付データ抽出 Worksheets("s1").Activate Range("B6").AutoFilter Field:=1, Criteria1:="=" & Format(Hiduke, "yy/mm") Worksheets("s1").AutoFilter.Range.SpecialCells(xlCellTypeVisible).Copy '有無確認 Set dumu = Range("B7").CurrentRegion umu = dumu.Columns(1).SpecialCells(xlCellTypeVisible).Cells.Count - 1 If umu = 0 Then MsgBox "日付データなし" GoTo Syuryo Else '保存 Syori: Application.ScreenUpdating = False Application.DisplayAlerts = False Set wb = ActiveWorkbook wb.SaveAs Filename:="C:\お仕事\年月度別" & "\" & Format(Hiduke, "yymm") & ".xls" Application.CutCopyMode = False ActiveWorkbook.Save ActiveWorkbook.Close Application.DisplayAlerts = True Application.ScreenUpdating = True End If Syuryo: Worksheets("s1").AutoFilterMode = False Application.CutCopyMode = False Worksheets("s1").Activate Range("A1").Select End Sub

  • 日付抽出でエラーします、教えてください。

    s1シートB列に日付が連続1月~数ヶ月分入っています(書式日付は 「3/13」の形式で入力されてます) この中から例えば3月分だけをフィルタして、それを別ブック保存したいのです。 インプットボックスで「09/03」yy/mmと入力すると フィルターを掛けるところでデバックエラーになります 3/13形式の入力を、どのようにして09/03と認識させるのか 上手く抽出させるには、どうしたらいいのでしょうか?悩んでいます。 ご指導ねがいますm(_ _)m Private Sub CommandButton1_Click() Dim Wh As Worksheet, ws As Worksheet Dim Hiduke As Variant, Uwagaki As Integer, Owarimsg As Integer Dim umu Dim dumu '日付入力 Hiduke = Application.InputBox("年月データ入力", , Format(Hiduke, "yy/mm")) If Hiduke = "Boolean" Or Hiduke = False Or Hiduke = " " Then Exit Sub Do While Hiduke = "" Hiduke = Application.InputBox("日付入力されてません", , Format(Hiduke, "yy/mm")) Loop 'sheetからの日付データ抽出 Worksheets("s1").Activate Range("B6").AutoFilter Field:=1, Criteria1:="=" & Format(Hiduke, "yy/mm") Worksheets("s1").AutoFilter.Range.SpecialCells(xlCellTypeVisible).Copy '有無確認 Set dumu = Range("B7").CurrentRegion umu = dumu.Columns(1).SpecialCells(xlCellTypeVisible).Cells.Count - 1 If umu = 0 Then MsgBox "日付データなし" GoTo Syuryo Else '保存 Syori: Application.ScreenUpdating = False Application.DisplayAlerts = False Set wb = ActiveWorkbook wb.SaveAs Filename:="C:\お仕事\年月度別" & "\" & Format(Hiduke, "yymm") & ".xls" Application.CutCopyMode = False ActiveWorkbook.Save ActiveWorkbook.Close Application.DisplayAlerts = True Application.ScreenUpdating = True End If Syuryo: Worksheets("s1").AutoFilterMode = False Application.CutCopyMode = False Worksheets("s1").Activate Range("A1").Select End Sub

  • VBA でテキストファイルに読み書き

     エクセル2000のVBAを使用しています。 ブックAファイル名をブックBのセルに入力して、ブックAをインデックスの様な扱いのファイルを作成使用としたのですが、ブック間で変数のやり取りは出来ないと思います。できるんですか??  その為、txtファイルを変数代わりに使おうと思っているのですが、 入出力の方法が良くわかりません。  簡単にブックBのセルの値をtxtファイルに書き込んでブックAで、 そのtxtファイルを読み込む様なVBAのコード教えて下さい。 初心者ですけど・・。

  • excel 2003でCSVファイルを読み込むVBA

    現在CSVファイルを読み込むマクロを作成してますが、レベルが低く下記載のコードで作業を行ってます。 皆様の技術をお借りしたいので、ご教授宜しくお願い致します。 ※現在のコードです。 CommandButton1でフォルダーを開いてcsvファイルを選択し、toolをsheetに追加してます。それから、CommandButton3で追加されたtoolからB14:C14)を選択し最終行までコピーしSheet1の(B12)に数値のみを貼り付けています。 結構手間が係り作業に時間がかかってしまいます。 そこで、改良をしたいと思いますのでご教授お願い致します。 ※改良したいポイント (1)同じフォルダー内のTOOL.CSVをフォルダーを開かず直接commandButton1でSheetに追加する。 (2)Sheet2にコピーされたデーターから(B14:C14)を選択し最終行までコピーしSheet1の(B12)に数値のみを貼り付ける。 (commandButton3はなくしたいと思ってます) 以上です。 宜しくお願い致します。 --------------------------------------------------------- Private Sub CommandButton1_Click() Application.Calculation = xlCalculationManual Application.ScreenUpdating = False Myname = ActiveWorkbook.Name CSV_Filename = Application.GetOpenFilename("CSVファイル(*.CSV;*.prn),*.CSV;*.prn", , "CSVファイルを開く") If CSV_Filename = False Then Exit Sub Workbooks.Open CSV_Filename CSV_SheetName = Worksheets(1).Name Sheets(CSV_SheetName).Move after:=Workbooks(Myname).Sheets(Sheets.Count + 1) Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True End Sub ---------------------------------------------------------------- Private Sub CommandButton3_Click() Application.Calculation = xlCalculationManual Application.ScreenUpdating = False Sheets("(TOOL)").Select Sheets("(TOOL)").Range("B14:C14").Select Sheets("(TOOL)").Range(Selection, Selection.End(xlDown)).Select Selection.copy Sheets("CSV Road").Select Sheets("CSV Road").Range("B12").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True End Sub -------------------------------------------------------------

  • マクロを使ってexcel2007でテキストボックス内をセンタリングしたい

    以前、excel2000でマクロの児童記録で記録し、それを利用して 下のようなマクロを使っていました (列ボックス1は変数) ActiveSheet.Shapes.AddTextbox(msoTextOrientationVerticalFarEast, 列ボックス1, 205 , 15, 105).Select Selection.Characters.Text = 顧客名 With Selection.Characters.Font .Name = "MS Pゴシック" .FontStyle = "標準" .Size = 8 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = 3 End With With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlTop .Orientation = xlVertical .AutoSize = False .AddIndent = False End With Selection.ShapeRange.Fill.Visible = False Selection.ShapeRange.Fill.Solid Selection.ShapeRange.Fill.Transparency = 1# Selection.ShapeRange.Line.Weight = 0.75 Selection.ShapeRange.Line.DashStyle = msoLineSolid Selection.ShapeRange.Line.Style = msoLineSingle Selection.ShapeRange.Line.Transparency = 0# Selection.ShapeRange.Line.Visible = msoFalse Selection.ShapeRange.TextFrame.MarginLeft = 0 Selection.ShapeRange.TextFrame.MarginRight = 0 Selection.ShapeRange.TextFrame.MarginTop = 0 Selection.ShapeRange.TextFrame.MarginBottom = 0 これで問題なく動作していたのですが excel2007で動作させると テキストボックス内が水平方向にセンタリングされていません。 excel2007でテキストボックスをかく記録をしてもマクロには何も残らず 困っています。 excel2007でも、センタリングさせる方法を教えて下さい どうかよろしくお願いします

  • Excelマクロ 重複データの件数と合計

    いつも参考にさせていただいております。 仕事で行き詰ってしまい、質問しました。 アドバイスをいただきたくお願いいたします。 エクセルのマクロをVBで作成したいのですが、 以下のような操作を行いたいと考えております。 Aシートが存在します。 ■Aシート ID 名前 光熱費 001 上田 100 001 上田 300 002 丸本 300 002 丸本 0 002 丸本 200 003 土井 100 これをBシートに重複しているデータをまとめて、 件数と金額の合計をもっていくような操作を考えています。 ■Bシート ID 名前 件数 光熱費 001 上田 2 400 002 丸本 3 500 003 土井 2 0 また、さらにC・D・EシートにはBシートの詳細を記載します。 ■Cシート ID 名前  光熱費 001 上田   100 001 上田   300 ■Dシート ID 名前  光熱費 002 丸本 300 002 丸本 0 002 丸本 200 (Eシートの同様に記載します) VBA初心者のためなかなか思うようにいかず、質問させていただきました。よろしくおねがいいたします。

  • エクセルVBAで入力番号をつけるやり方を教えてください

    品名の種別が10種類ありその種別ごとに行入力するシートがあります。 下記のように種別ごとに入力されると通し番号をつけるマクロを教えてください。IFとMAX関数の組み合わせでやりましたが動きが重たくなるのでマクロで実行したいと思います。通しNo.は3桁 ~999位まで入力行は1万行になります。 よろしくお願いします。 入力No.    種別    種別通しNo.  1        1      1-1  2        1      1-2  3        2      2-1  4        4      4-1  5        2     2-2  6        3     3-1  7        4      4-2  8        1      1-3  :        :       : 

  • VBA処理速度の向上(配列?)

    いつもお世話になっております。 エクセルVBA勉強中の初心者です。 書籍などを参考に、下記コードを作成し、セル内データを計算しています。 セル数が少ない場合には良かったのですが、将来的には、 約30,000行×100列程度になる予定で、処理に時間がかかってしまっています。 (現状で10,000行×50列程度、データは増えていきます。) 過去ログ、HPなどを調べると、配列に入れれば、処理速度が格段に上がると あったのですが、如何せん私には難しく、理解できませんでした・・・ 配列に限らず、処理速度が上がる方法をご教授、添削頂ければ助かります。 よろしくお願いいたします。 Sub test() Dim Gyo As Long, Retu As Long For Gyo = 3 To Range("A65536").End(xlUp).Row For Retu = 1 To Range("D3").End(xlToRight).Column Cells(Gyo, Retu).Value = Cells(Gyo, Retu).Value / 1000000 Next Retu Next Gyo End Sub

  • ピボットのマクロで

    エクセルでピボットのマクロを自動記録で作ったのですがフィールドのアイテムは全部で30以上あるのですが表示は5個くらいだけなので非表示のステートメントばかりが続きます。 とりあえずはいいと考えていたのですが、今後のためにも表示のアイテムだけを選ぶマクロにするにはどうすればいいのでしょうか

  • エクセルでのクロス集計について教えてください

    お世話になります。 現在、講座受講者の集計に困っております。 1人の人が2つ、3つ受講するケースが多く、 1人の人がどんな講座を受講しているか傾向が見たいため、 クロス集計でまとめようと思っています。      A講座   B講座   C講座 A講座   5     8     10 B講座   9     7     6 C講座   8     11    4 上記のような感じでまとめたいのですが、 ピポッドでできますでしょうか? その他、良い方法があれば教えてください。

  • Excelのピボットテーブルのデータ統合の詳細

    ピボットテーブルで支店ごとにシートを分け、データの統合で総合計を出しています。 統合したシートでは下記のようになっているのですが A B C D F 2 りんご みかん もも めろん 3 4月 106166 101325 198822 173844 4 5月 153010 110551 107573 218124 5 6月 151545 98240 77057 175297 6 7月 161000 100350 89016 77553 7 8月 ・ ・ ・ ・ 8 9月 ・ ・ ・ ・ 9 10月 ・ ・ ・ ・ これを例えばB4の5月のりんごの合計のところでダブルクリックすると 新たにシートが出来て、 行 列 値 H20.5 りんご 5135 H20.5 りんご 4120 H20.5 りんご 3339 H20.5 りんご 6214 H20.5 りんご 7333 H20.5 りんご ・ H20.5 りんご ・ H20.5 りんご ・ H20.5 りんご ・ H20.5 りんご ・ こんな感じで各シートの詳細が出ていくるのですが これではどこの支店のものかわかりません。 これをシート名を出てくるようには出来ないでしょうか? 項目を例えば、りんごの部分をりんご(東京)とすることも考えたのですが それだとデータ統合ができません・・ お知恵をお貸し下さい。

  • VBAで数値グループをCOUNTする方法

    お世話になっております。 VBAを勉強中の初心者です。 過去ログを検索したのですが、どうしても見つからなかったため、質問させていただきました。 現在、下記のようなexcelデータをVBAで処理しようと考えているのですが、方法が分からなく、困っています。 処理したいデータ例は、下記の通りです。     A列 1行目 空白 2行目 3 3行目 4 4行目 5 5行目 4 6行目 3 7行目 空白 8行目 空白 9行目 空白 10行目 7 11行目 10 12行目 12 13行目 8 14行目 6 15行目 空白  ・  ・ 上記のようなデータが、A列のみ約1000行程度、高さが異なる山の数が、50程度あります。 (A列を折れ線グラフで見たときに、データは必ず山状になるので、山の数と表現しております。) 今回、処理したいのは、上記のような山の数、2行目~6行目を一山、10行目~14行目を二山として、合計で何山あるのかをCOUNTしたいと考えています。 この山の数を次のVBA処理で活用したい為、COUNTしたいのですが、山(群)の、COUNT方法が分かりません。 このとき、空白行の数、数値データ入力行の数は区々ですが、各区間空白行が必ず、1~10行迄入力されている状況です。 とても分かりにくい質問で大変恐縮ですが、上記のような山を1群と見たときの、山のCOUNTは、VBAで可能なのでしょうか? ご検討を宜しくお願いいたします。

  • ピボットグラフについて

    ピボットはわりと使うのですが、グラフは分からないことだらけなので、初歩的な質問かもしれませんが… (1)グラフの色を最初から変えることはできますか? というのもピボットの更新をかけると基の色に戻ってしまうので、更新しても変わらないようにしたいのですが。。 (2)データラベルを常に表示できますか? これもピボットを更新してしまうと消えてしまうので、表示させたままにしたいです。。 よろしくお願いしますm(_ _)m

  • エクセル2007が重いんですが・・

    エクセル2007で、数千から数万個のデータを一つのグラフにしたいです。 しかしそうすると、できたグラフを選択して書式を変更したりしようとするとものすごく重くなって、かなりの確率でフリーズしてしまいます。 なにかよい対策はないでしょうか? PCのスペックは vista C2D8400 メモリ4G です。ほぼ同等の別PCで試しても重くなったのでPCの不調ではないと思います。 よろしくお願いします。

  • Excel ピボットテーブル フィールド 合計をデフォルトにしたい

    ピボットテーブルを作成するとフィールドが、[データの個数]になってしまいます。 フィールドの設定で[合計]になおせるのは、知っています。 おそらくデータに空欄がある為だと想定されますが、デフォルトで[合計]に設定は、不可能なのでしょうか? おわかりの方教えてくださーい!

  • Excleピボットでデータのない部分も時系列で表示したい

    初めて質問いたします。同様の質問が既にあったらすいません。 たとえば、 4/1  100 4/3  200 4/7  150 といったデータがあるとします。 このように日付の抜けた時系列データをピボットテーブルで集計する際、ピボットですと自動的に空白部分を詰めてしまいます。 これを「データがないときは、ないときで4/1~4/7まで連続で表示したい。」と思っているのですが、手作業で「データのない日を特定して、空のデータをフィールドに入力する」作業は煩雑です。 どのようにすればピボットで自動的に空のデータも時系列で連続して表示できますでしょうか? もし原理的に無理なようでしたら、そのような機能が付いている同様のソフトをお教えいただくと助かります。(マクロなどはよくわかってないので…。) どうぞよろしくお願いします。

  • ピボットに行列追加したデータを反映させるには

    ピボットの元データで行列が追加された場合、自動的にピボットに データが更新されるようにしたいと思っています。 調べていたところOFFSET関数と「行」の追加の仕方は見つけたのですがこれが 「行列」の追加にも使えるのかがよくわかりません。。 行列の追加を反映させる方法は何かありますでしょうか?? よろしくお願いします。

  • ピボットテーブルレポートが使用できない理由を教えてください。

    Excel2003でピボットテーブルでデータを集計しています。 品名別に実績時間・人数・原価などをまとめている表です。 仕事で前の方から引き継いだデータなのですが、 前年や何ヶ月か前のピボットテーブルの機能を使おうと思っても機能が使えません。「このピボットテーブルレポートは使用できません」というメッセージが出ます。 ちなみにフィールドリストを表示するボタンを押すとフィールドリストは出てきましたが、やはり機能は使えません。 どうしてなんでしょうか?

  • ピボットテーブルレポートが使用できない理由を教えてください。

    Excel2003でピボットテーブルでデータを集計しています。 品名別に実績時間・人数・原価などをまとめている表です。 仕事で前の方から引き継いだデータなのですが、 前年や何ヶ月か前のピボットテーブルの機能を使おうと思っても機能が使えません。「このピボットテーブルレポートは使用できません」というメッセージが出ます。 ちなみにフィールドリストを表示するボタンを押すとフィールドリストは出てきましたが、やはり機能は使えません。 どうしてなんでしょうか?