cj_mover の回答履歴

全798件中481~500件表示
  • VBAのスピードについてご教示ください

    下記マクロは、シートAに氏名、郵便番号、住所・・・、と横に住所録を整理していて、列11番目に「対象」と入力されている行を順番にコピーして、シート「送付先一覧」に貼り付けるマクロをコピーしてエクセル2010で使用させていただいてるのですが、職場のエクセル2007では極端にスピードが遅くなります。 エクセル2007では、2010のように早くはならないのでしょうか? 2007を使用してるパソコンが、少し古いからでしょうか? 素人でよくわかりません。 遅くなる理由、また早くする方法があればご教示ください。 Sub 対象抽出() Dim i, LastRow As Long LastRow = Cells(Rows.count, 11).End(xlUp).Row For i = 1 To LastRow If Cells(i, 11) = "対象" Then Rows(i).Copy Sheets("送付先一覧").Cells(Rows.count, 1).End(xlUp).Offset(1, 0) End If Next i End Sub

  • VBAのスピードについてご教示ください

    下記マクロは、シートAに氏名、郵便番号、住所・・・、と横に住所録を整理していて、列11番目に「対象」と入力されている行を順番にコピーして、シート「送付先一覧」に貼り付けるマクロをコピーしてエクセル2010で使用させていただいてるのですが、職場のエクセル2007では極端にスピードが遅くなります。 エクセル2007では、2010のように早くはならないのでしょうか? 2007を使用してるパソコンが、少し古いからでしょうか? 素人でよくわかりません。 遅くなる理由、また早くする方法があればご教示ください。 Sub 対象抽出() Dim i, LastRow As Long LastRow = Cells(Rows.count, 11).End(xlUp).Row For i = 1 To LastRow If Cells(i, 11) = "対象" Then Rows(i).Copy Sheets("送付先一覧").Cells(Rows.count, 1).End(xlUp).Offset(1, 0) End If Next i End Sub

  • エクセル マクロで教えて下さい。

    入力されたセルの値で、フリーフォーム(図形)の色を変えるマクロを作成しました。 (色々の方のお力をお借りしておりますが。。。) Private Sub Worksheet_Change(ByVal Target As Range) Dim mShp As String, SCol As Integer Select Case Target(1).Address(0, 0) Case "A1": myShp = "フリーフォーム 1" Case "A8": myShp = "フリーフォーム 8" Case "B3": myShp = "フリーフォーム 3" Case Else: Exit Sub End Select Select Case Target(1).Value Case 1: SCol = 10 Case 2: SCol = 13 Case 3: SCol = 12 Case 4: SCol = 11 Case 5: SCol = 15 Case Else: SCol = -1 End Select With Me.Shapes(myShp).Fill If SCol = -1 Then .Visible = msoFalse Else .Visible = msoTrue .ForeColor.SchemeColor = SCol End If End With End Sub A1,A8,B3に直接値を入力すると色が変化しますので、問題ないのですが、VLOOKUP等で別シートの値を、A1,A8、B3に表示させても色が変わらない事がわかりました。 そこで、このマクロでVLOOKUP等で引っ張って来た場合でも対応出来る様に変更する事は可能でしょうか? それが出来ない場合は、別シートのセルを直接参照し色を変化出来る様に変更する事が出来ないでしょうか? これを作成するのに聞いた人間はマクロに詳しい方々ですが、当方は、マクロは素人同然です。 詳しく説明していただければ幸いです。 何卒よろしくお願い致します。

  • Excel VBA 配列の開始添字について

    Excel VBAで、「Option Base 1」により配列の添字を1開始にしない場合、セルの値を取り込んだ配列の処理に凄く困らないでしょうか?例えば Dim A,B A=Range(Cells(1,1),Cells(100,500)).value B=Array(1,3,5,7) とかいう場合、どうしてもAは添字が1開始になり、Bの方は0開始になりますよね? AとBについて、ループであれこれ処理する場合、開始添字の違いをイチイチ意識しながらコーディングするのは明らかに間違いの元だと思います。こういうのって、どう対処すれば良いのでしょうか?

  • Excel VBA 配列の開始添字について

    Excel VBAで、「Option Base 1」により配列の添字を1開始にしない場合、セルの値を取り込んだ配列の処理に凄く困らないでしょうか?例えば Dim A,B A=Range(Cells(1,1),Cells(100,500)).value B=Array(1,3,5,7) とかいう場合、どうしてもAは添字が1開始になり、Bの方は0開始になりますよね? AとBについて、ループであれこれ処理する場合、開始添字の違いをイチイチ意識しながらコーディングするのは明らかに間違いの元だと思います。こういうのって、どう対処すれば良いのでしょうか?

  • エクセル マクロで教えて下さい。

    入力されたセルの値で、フリーフォーム(図形)の色を変えるマクロを作成しました。 (色々の方のお力をお借りしておりますが。。。) Private Sub Worksheet_Change(ByVal Target As Range) Dim mShp As String, SCol As Integer Select Case Target(1).Address(0, 0) Case "A1": myShp = "フリーフォーム 1" Case "A8": myShp = "フリーフォーム 8" Case "B3": myShp = "フリーフォーム 3" Case Else: Exit Sub End Select Select Case Target(1).Value Case 1: SCol = 10 Case 2: SCol = 13 Case 3: SCol = 12 Case 4: SCol = 11 Case 5: SCol = 15 Case Else: SCol = -1 End Select With Me.Shapes(myShp).Fill If SCol = -1 Then .Visible = msoFalse Else .Visible = msoTrue .ForeColor.SchemeColor = SCol End If End With End Sub A1,A8,B3に直接値を入力すると色が変化しますので、問題ないのですが、VLOOKUP等で別シートの値を、A1,A8、B3に表示させても色が変わらない事がわかりました。 そこで、このマクロでVLOOKUP等で引っ張って来た場合でも対応出来る様に変更する事は可能でしょうか? それが出来ない場合は、別シートのセルを直接参照し色を変化出来る様に変更する事が出来ないでしょうか? これを作成するのに聞いた人間はマクロに詳しい方々ですが、当方は、マクロは素人同然です。 詳しく説明していただければ幸いです。 何卒よろしくお願い致します。

  • .Add Type:=xlValidateInpu

    VbaでA列のみ入力規則でひらがなにしたいのですが、 Sub test() With Columns(“a”).Validation .Delete .IMEMode = xlIMEModeHiragana End With End Sub にすると、実行時エラー1004になります。 .Delete .Add Type:=xlValidateInputOnly .IMEMode = xlIMEModeHiragana にすると、問題ないです。 .Add Type:=xlValidateInputOnly がどういう意味なのか知りたいのですが Validationのヘルプを見ても、 Add Typeに関する記載がありません。 なぜ、Add Typeがないとエラーになるのでしょうか?

  • エクセル VBA 新しいブックを作成したいのです。

     VBを記述した親ワークブックから子ワークブックを作成したいのですが、下記コードでは次の障害があるのです。 1.2003バージョンでは開けない。 2.2007バージョンで開こうとすると、メッセージが出る。   「~ファイル拡張子が示す形式と異なります。~」 3.不要なワークシートが残る。   “基本設定/新しいブックの作成/ブックのシート数”に依存している。 【シートを1枚だけにし、2003バージョンで保存したいのです。】 ShName = ThisWorkbook.ActiveSheet.Name Set objWorkBook = Workbooks.Add objWorkBook.ActiveSheet.Name = "○○商事" Call 処理 Set WSH = CreateObject("Wscript.Shell") Path = WSH.SpecialFolders("Desktop") & "\" On Error Resume Next '上書き保存をキャンセルした時の取り合えずの回避策(宿題(^^;)) ActiveWorkbook.SaveAs Path & "○○系_" & ShName & ".xls" Set WSH = Nothing Set objWorkBook = Nothing  新しいブックを作成後、シート数を数えて2枚目以降を消すのも出来るかと思いますが、作成時には既に1枚、しかも2003バージョンで作成する事は可能なのでしょうか?  皆様、よろしく御教示下さいませ・・・。

  • .Add Type:=xlValidateInpu

    VbaでA列のみ入力規則でひらがなにしたいのですが、 Sub test() With Columns(“a”).Validation .Delete .IMEMode = xlIMEModeHiragana End With End Sub にすると、実行時エラー1004になります。 .Delete .Add Type:=xlValidateInputOnly .IMEMode = xlIMEModeHiragana にすると、問題ないです。 .Add Type:=xlValidateInputOnly がどういう意味なのか知りたいのですが Validationのヘルプを見ても、 Add Typeに関する記載がありません。 なぜ、Add Typeがないとエラーになるのでしょうか?

  • Excelでの、2つ以上の等しい文字列について。

    Excelで作った表で、表内に等しい同じ文字が2つ以上ある場合に違うセルに抽出するということは出来るのでしょうか。 例えば果物の表があって、その表に「りんご」という文字が3つあった場合に指定してるセルに「りんご」と表示され、等しい数まで抽出されるようにしたいのです。 説明下手なので画像でアップします。画像みたいな感じのをExcelで出来るなら、ご伝授頂きたい。 http://uploda.cc/img/img5193fd1c509d3.PNG

  • Excelでの、2つ以上の等しい文字列について。

    Excelで作った表で、表内に等しい同じ文字が2つ以上ある場合に違うセルに抽出するということは出来るのでしょうか。 例えば果物の表があって、その表に「りんご」という文字が3つあった場合に指定してるセルに「りんご」と表示され、等しい数まで抽出されるようにしたいのです。 説明下手なので画像でアップします。画像みたいな感じのをExcelで出来るなら、ご伝授頂きたい。 http://uploda.cc/img/img5193fd1c509d3.PNG

  • エクセルで重複データの内容を右の列に増やす方法は?

    エクセル2007で、表(1)のようなレコードがあります。 B列とC列の両列をキー列として、両列が次の行と同じ場合、表(2)のように一行にまとめるVBAを、どなたかご教示お願いします。 過去ログ等で重複データの行削除は理解できたのですが、キー列が2列の場合や、表(2)のように右の列にデータをどんどん増やす方法がわかりません。 条件は、レコードは1000行以上、市idと社idは昇順に並んでいるため重複データは必ず上下に連続している、商品の種類は50以上あり、どれ位右に列が増えるか不明、などです。 VBA初心者です。よろしくお願いします。 表(1)(sheet1) 県名|市id | 社id|社名|商品|空白|空白・・ 秋田|0001|0001|A株|青大|空白 秋田|0001|0001|A株|赤小|空白 東京|0002|0003|B株|黒中|空白 大阪|0004|0001|C有|赤中|空白 大阪|0004|0001|C有|白大|空白 大阪|0004|0002|D株|赤大|空白 大阪|0004|0002|D株|黄中|空白 大阪|0004|0002|D株|緑小|空白 ・ ・ 表(2)(sheet2) 県名|市id| 社id|社名|商品|商品|商品・・ 秋田|0001|0001|A株|青大|赤小|空白 東京|0002|0003|B株|黒中|空白|空白 大阪|0004|0001|C有|赤中|白大|空白 大阪|0004|0002|D株|赤大|黄中|緑小 ・ ・

  • エクセルで重複データの内容を右の列に増やす方法は?

    エクセル2007で、表(1)のようなレコードがあります。 B列とC列の両列をキー列として、両列が次の行と同じ場合、表(2)のように一行にまとめるVBAを、どなたかご教示お願いします。 過去ログ等で重複データの行削除は理解できたのですが、キー列が2列の場合や、表(2)のように右の列にデータをどんどん増やす方法がわかりません。 条件は、レコードは1000行以上、市idと社idは昇順に並んでいるため重複データは必ず上下に連続している、商品の種類は50以上あり、どれ位右に列が増えるか不明、などです。 VBA初心者です。よろしくお願いします。 表(1)(sheet1) 県名|市id | 社id|社名|商品|空白|空白・・ 秋田|0001|0001|A株|青大|空白 秋田|0001|0001|A株|赤小|空白 東京|0002|0003|B株|黒中|空白 大阪|0004|0001|C有|赤中|空白 大阪|0004|0001|C有|白大|空白 大阪|0004|0002|D株|赤大|空白 大阪|0004|0002|D株|黄中|空白 大阪|0004|0002|D株|緑小|空白 ・ ・ 表(2)(sheet2) 県名|市id| 社id|社名|商品|商品|商品・・ 秋田|0001|0001|A株|青大|赤小|空白 東京|0002|0003|B株|黒中|空白|空白 大阪|0004|0001|C有|赤中|白大|空白 大阪|0004|0002|D株|赤大|黄中|緑小 ・ ・

  • エクセルで重複データの内容を右の列に増やす方法は?

    エクセル2007で、表(1)のようなレコードがあります。 B列とC列の両列をキー列として、両列が次の行と同じ場合、表(2)のように一行にまとめるVBAを、どなたかご教示お願いします。 過去ログ等で重複データの行削除は理解できたのですが、キー列が2列の場合や、表(2)のように右の列にデータをどんどん増やす方法がわかりません。 条件は、レコードは1000行以上、市idと社idは昇順に並んでいるため重複データは必ず上下に連続している、商品の種類は50以上あり、どれ位右に列が増えるか不明、などです。 VBA初心者です。よろしくお願いします。 表(1)(sheet1) 県名|市id | 社id|社名|商品|空白|空白・・ 秋田|0001|0001|A株|青大|空白 秋田|0001|0001|A株|赤小|空白 東京|0002|0003|B株|黒中|空白 大阪|0004|0001|C有|赤中|空白 大阪|0004|0001|C有|白大|空白 大阪|0004|0002|D株|赤大|空白 大阪|0004|0002|D株|黄中|空白 大阪|0004|0002|D株|緑小|空白 ・ ・ 表(2)(sheet2) 県名|市id| 社id|社名|商品|商品|商品・・ 秋田|0001|0001|A株|青大|赤小|空白 東京|0002|0003|B株|黒中|空白|空白 大阪|0004|0001|C有|赤中|白大|空白 大阪|0004|0002|D株|赤大|黄中|緑小 ・ ・

  • VBAで単一ブック複数窓を閉じるイベント

    Excel VBAで単一ブックで複数のウィンドウを開いている時、その片方を閉じるイベントは Sub Workbook_WindowDeactivate(ByVal Wn As Window) End Sub で、良いのでしょうか。 単一ブックで複数のウィンドウを開いている時は、エクセル本体の右上×をクリックすると1つずつしかウィンドウが閉じず、面倒なので、1つ閉じたらエクセル自体(若しくはブック一つ)が閉じるようなプロシージャを組みたいのです。 よろしくお願いします。

  • Excel2003でSheets1をExport

    Excel2003でSheets1をExportして他のExcel2003でInportするとクラスモジュールに入ってしまいます。 Objects Sheetsの中に入れたいのですが入れることができますか? よろしくお願いします

  • Excel2003でSheets1をExport

    Excel2003でSheets1をExportして他のExcel2003でInportするとクラスモジュールに入ってしまいます。 Objects Sheetsの中に入れたいのですが入れることができますか? よろしくお願いします

  • 「Navigate」のNが小文字になってしまう

    InternetExplorerを参照設定し、 Sub aaa() Dim objIE As InternetExplorer objIE. End Sub とした後に、Navigateを入力すると、自動でnavigateにかわってしまいます。 一覧が表示される時は、大文字です。(画像をご覧ください) なぜ小文字になってしまうのでしょうか? 参照設定は、HTMLオブジェクトライブラリにもチェックを入れてますが、 それが原因でしょうか?

  • VBA 類似シート名 処理

    シート名が、「一覧 (2)」、「一覧 (3)」、・・・・・「一覧 (n)」、と連続する各シートの表データを「一覧」という名前のシートにまとめたいのですが、やり方が分かりません。 For Each を使えば出来るんじゃないかと調べましたが、見付けられませんでした。 シート処理以外は、   Dim CoR As Long, PaR As Long, PaR2 As Long CoR = Worksheets(???).Cells(Rows.Count, 1).End(xlUp).Row PaR = Worksheets("一覧").Range(Rows.Count, 1).End(xlUp).Row PaR2 = CoR + PaR + 1 Worksheets(???).Range(Cells(2, 1), Cells(CoR, 12)).Copy Worksheets("一覧").Range(Cells(PaR, 1), Cells(PaR2, 12)).PasteSpecial Paste:=xlPasteValues こんな感じで作っています。 作り方、もしくは参考になるサイトがありましたら、教えていただければありがたいです。 よろしくお願いします。

  • VBA 類似シート名 処理

    シート名が、「一覧 (2)」、「一覧 (3)」、・・・・・「一覧 (n)」、と連続する各シートの表データを「一覧」という名前のシートにまとめたいのですが、やり方が分かりません。 For Each を使えば出来るんじゃないかと調べましたが、見付けられませんでした。 シート処理以外は、   Dim CoR As Long, PaR As Long, PaR2 As Long CoR = Worksheets(???).Cells(Rows.Count, 1).End(xlUp).Row PaR = Worksheets("一覧").Range(Rows.Count, 1).End(xlUp).Row PaR2 = CoR + PaR + 1 Worksheets(???).Range(Cells(2, 1), Cells(CoR, 12)).Copy Worksheets("一覧").Range(Cells(PaR, 1), Cells(PaR2, 12)).PasteSpecial Paste:=xlPasteValues こんな感じで作っています。 作り方、もしくは参考になるサイトがありましたら、教えていただければありがたいです。 よろしくお願いします。