• ベストアンサー

VBA EXCELの並び替え機能

WindowsXP Pro 32bit - Office2003 Pro SP3 の組合せの エクセルにVBAで、「Application.SendKeys ("%ds")」と記入し ボタンを押すと「並び替え」のダイヤログが表示されるように作成しました。 今回、同プログラムを Windows7 Pro 32bit - Office2003 Pro SP3 の組合せにて 使用したところ、無反応となりました。 どんな原因が考えられるでしょうか? 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.1

手作業で[Alt][d][s]は問題なく動くのですか? だとしたら >どんな原因が考えられるでしょうか? 元々SendKeysメソッドはキーコードを送るだけなので不安定だし、 PCの処理性能によっては上手くいかないケースもあるのでしょう。 Application.SendKeys ("%d"), True Application.SendKeys ("s") などと分割してやってみてもダメなようだったら別の方法をおすすめします。 CommandBars.FindControl(ID:=928).Execute や CommandBars.FindControl(ID:=928).accDoDefaultAction または On Error Resume Next Application.Dialogs(xlDialogSort).Show など。

precious84
質問者

お礼

ご回答、有り難うございます。 SendKeysは使用できませんでしたが、 CommandBars.FindControl(ID:=928).Executeにて解決しました。 大変助かりました!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ACCESS97 VBA のSendKeys

    以前Windows2000ProやWindowsXP Pro ACCESS97のVBAでShell関数を利用し 別のソフトを起動 その後Timerイベントで SendKeysを実行し別のソフトを操作していました。 しかし最近購入したパソコン(WindowsXP Pro)で 実行したところ別のソフトは起動しますが Sendkeysの操作が実行されません。 なぜでしょうか? 以前のパソコンと最近購入したパソコンの違いは 以前のパソコンは購入時SP1で Windows UPdateでSP2にしたこと セキュリティーソフト(Nortonを使用しています)の バージョンが異なるぐらいです。 ( もちろん起動する別のソフトは、許可にしています) Sendkeysの操作が実行されるようにする 設定を教えてください。 よろしくお願いします。

  • Excel VBA で CTRLキーを送る方法

    EXCEL VBA で他のアプリケーションにキーをコードを送り制御したく、Sendkeys を使ってみましたが、CTRLキー(単一キー)の送信が出来ません。Sendkeys "^", 1 では無反応。 制御されるアプリは右のCTRLキーと左のCTLキーではことなった動作をします。出来れば右のCTRLキー、左のCTLキーの送信方を教えてください。 VBAで負荷でしたら、Shell関数で呼び出せるようなものはありませんでしょうか。

  • VBAでエクセルの表をワードに入力

    Excel/Word2002使用です。 ワードへの入力を自動化するためにVBAを使用してエクセルの表をワードのテンプレートに渡したいのですが。 エクセルのA1:C8のセルに表として値が入力されています。 この表をコピーしてワードに貼り付けます。 ワード側は何も入力されていない文書ですが、 テンプレートが用意されているので、このテンプレートを指定してワードを立ち上げます。 ワードに貼り付けられる表はタブ区切りです。 具体的には下記コード3行目の”winword.exe”を具体的なテンプレートのパス名にしたいのですが・・・ Sub word貼り付け() Dim mytskID As Double Range("A1:C8").Copy  mytskID = Shell("winword.exe", vbNormalFocus)  Application.Wait Now + TimeValue("00:00:10")  Application.SendKeys "^v", True  Application.Wait Now + TimeValue("00:00:10")  Application.SendKeys "%fa", True  Range("A1").Copy  AppActivate mytskID  Application.SendKeys "^v", True  Application.SendKeys "~", True  Application.Wait Now + TimeValue("00:00:05")  Application.SendKeys "%fx", True  Application.CutCopyMode = False MsgBox "完了しました" End Sub なお、上記コードも教科書通りにしたはずなのですが、 何故か「名前をつけて保存」のSendKeys "%fa"のときだと思うのですが、 ワード側ではファイルメニューの罫線が反応してしまいます。 あわせてご教授いただければ幸いです。 よろしくお願いします。

  • 既存Excel VBAソフトがOffice2007でマクロエラーが発生

    初めて投稿させて頂きました。 Excel VBAで開発されたソフトの改造を行っているのですが、初めてのVBAで悪戦苦闘しております。 <開発環境> ・WindowsXP Pro SP3 ・Celeron 540(1.8GHz) ・メモリ1GB ・Microsoft Office2007 SP1 改造元ソフトはOffice2000で開発されており、Office2007で動作するとマクロエラーが発生する処理があります。 因みにまだソフト改造はしてなく、そのままOffice2007で動作させるだけでマクロエラーが発生します。 発生する箇所はVBAコードで定義されており、下記のマクロ実行時です。 Application.Run ("macro1") マクロエラーの内容は下記になります。 ------------------------------- マクロエラー [dbg.xls]マクロ(excel4.0)BV25 ------------------------------- この「macro1」はVBAのコードにはありません。 Excelの開発タブのマクロ一覧にはあります。 マクロ一覧で「macro1」を選択して、"編集"ボタンを押しても、マクロ一覧画面が消えるだけで何も表示されません。 この「macro1」がどこに定義されているか調べても全く判らず、ここで質問させて頂いた次第です。 Office2000やOffice2003ではマクロエラーが発生せずに正常に動作します。 Office2007のマクロセキュリティ設定を「すべてのマクロを有効にする」にしてます。 開発者向けのマクロ設定を「VBAプロジェクトオブジェクトモデルへのアクセスを信頼する」にチェックしても改善しません。 Office2000やOffice2003では動作しているので「macro1」はどこかに定義されているのだと思いますが、VBAコードにはありませんでした。 マクロ一覧にありますが、マクロ一覧の編集ボタンを押してもマクロが表示されません。 このマクロ「macro1」はどこで定義されているか、ご教授して頂けると助かります。 判りにくい説明で申し訳ありませんが、よろしくお願いします。

  • Windows7 & VB6(SP6) & office2010(Bata)

    WindowsXP & VB6(SP5) & office2003の組み合わせで プログラミングをしておりました。 Windows7 & VB6(SP6) & office2010(Bata)の組み合わせで テストをしております。 Dim wApp As Excel.Application ここで、 コンパイルエラー ユーザー型は定義されていません。 と、なってしまいます。 解決方法を教えて下さい。宜しくお願い致します。

  • ExcelのVBAでアクセスファイルをopen

    エクセル2002(win)のVBAについて質問します。 Workbooks.OpenDatabase Filename:= _ \file.mdb, CommandText:=Array( _ "table1"), CommandType:=xlCmdTable というコマンドでaccessのファイルを開きたいと 思っています。しかしアクセスのファイルには パスワードが設定されていて、 「データベースパスワード」というパスワード 入力のダイアログが表示されます。 今は、事前にパスワードをクリップボードに コピーしておき、CTRL+Vでペーストして、「OK」を 押しているのですが、このペースト+OKの 作業を自動化することはできないでしょうか? 試しにVBA中の上記openコマンドの直後に Application.SendKeys "^V" を記入してみたのですが 動きませんでした。 以上よろしくお願いいたします。

  • [VBA]標準機能のみでパス付zipファイルの解凍

    いつもこちらの識者の皆様にはお世話になっております。 VBAのことで質問させてください。 環境はwindows7 Pro Excel2010(14.0.7128.5000) 32bit です。 掲題のとおり、パスワード付のzipファイルを解凍しいたいのですが、調べてもやり方が分からず困っています。 ■やりたいこと 外部アプリケーションを使わずにWindows7の標準機能のみで"C:\aaa\bbb.zip"をパスワード"111"で解凍する 会社で使っているのですが、アプリケーションのインストールが禁止されており、 毎日複数のパスワード付zipファイルを手動で解凍して処理をしています。 効率を考えVBAで処理したいのですが、どなたか上記内容の場合どのようなコードが適しているか 教えていただけませんでしょうか。 よろしくお願いいたします。

  • Access VBA での Null と "" 

    以前組んだAccessVBA(ADPファイルにて使用)でのコードの中に、入力値のチェックとして -------------------------- Dim value as String If me!TextBoxA = "" then 'ここでテキスト未入力時の処理 Else   ’テキストが入力されているのでここで正常な処理 value = me!TextBoxA.value End If --------------------------- という記述をしていました。 今でしたら、これに加えてIsNullや他の仕組みを併用するのですが、 今まで上のものでも問題なく使えていました。つまり、  If me!TextBoxA = "" then  だけで、テキストボックスの未入力をきちんと検出していました。 ところが、最近新しいPCを導入したところ、  「Nullが不正です」 のメッセージが出るようになりました。 恐らくIf文で入力値の””が検出されず、Elseの部分で、Valueに代入しようとしたため、「Nullが不正」となったのだと思います。 本来はこちらの方が正しいと思うのですが、わからないのは今までなぜ Nullが不正とならなかったのか、です。 因みに、問題なく使えていたPCの組み合わせとしては、  ・XP(SP3) Office2010Pro(Access2010)   ・XP(SP3) Office2002Pro(Access2002) + AccessRuntime2007  ・XP(SP3) Officeなし + AccessRuntime2010  ・・・など、あらゆる組み合わせで10台ほど、問題なく動いていました。  (OSはすべて32Bit.エデイションはProやHomeなど混在) そして、問題となったPCは  ・XP(SP3)Pro Office2010Pro(Access2010) です。しかも、購入した直後は問題なかったものの、つい先日急にダメになったとの事でした。 何かきっかけとなった事はなかったか聞いてみましたが、心当たりはないとの事。 また、ネットワーク上にある同一ファイルをそれぞれのPCで個別に開いてみても、 やはり、Nullを検出するのは今回の新しいPCだけです。 何が原因なのかが気になって仕方ありません。 このような違いが起こる要因としてどのようなことが考えられるでしょうか。

  • ACCESS VBAから(ADO以外の参照設定を行わずに)エクセルのセルを操作する方法

    ACCESS VBAから(ADO以外の参照設定を行わずに)エクセルのセルを操作する方法を教えてください。 参照設定を行わずにAccessVBAから特定のEXCELファイルを開いてセルの書式設定などを編集する方法を教えてください。 環境は以下です。 OS:WindowsXP sp3 Office 2003 sp3

  • Excelを立ち上げると何もしていないのにエラーが出る

    おはようございます。 今、Excelを立ち上げると「VBAライブラリ(1004)の初期化でエラーが発生しました」というメッセージが出て困っています。 何度か他のキーを押していると動き出し作業は可能なのですが原因がわからず気持ち悪いのです。 OSは、XP-PRO SP2です。 Excelは、OFFICE2003です。