お世話になっています。教えて下さい。

VBで作ったプログラムです。
デバッグ時には何の問題もなく、実行可能(完全コンパイル後に実行)で、コンパイルも問題なく通りますが、EXEにして実行すると、以下のエラーが出ます。

実行時エラー:'91'
object変数、またはwithブロック変数が設定されていません。

どなたか、原因に心当たりがある方、いらっしゃったら教えて下さい。
よろしくお願いします。

A 回答 (4件)

補足、早いですね。


問題の解決もこのまま進めば、時間の問題です。
shigeki-yyさんの補足の結果から判断すると、
SHELL周りが非常に怪しいです。
手元に資料がないので、(インターネットで探せば見つかるのですが、なまけものなのでお許しを)詳しいことは
書けませんが、確かWindows98とWindows2000では
SHELLの呼び方が違ったと思います。
まずは、その辺を調べてみてはいかがでしょうか?
補足の内容からコントロール関係は、あまり影響していないような気がしました。
SHELL周りで問題がないときにコントロールを調べたほうがいいと思います。
では。

この回答への補足

ありがとうございます。

SHELL関数について、Microsoftのホームページなどインターネットで調べてみたんですけど、Win98とWin2000での違いについての記述は見つかりませんでした。
shellで呼んでも、フォームの表示までは正常に動いているので、そこが原因ではないような気もしています。

もう少しコントロールと平行して調べてみます。

補足日時:2001/09/27 17:26
    • good
    • 0
この回答へのお礼

調べたところ、呼び出し方と言うよりShell関数を動かしているDLLが、win98とwin2000では違うみたいです。

いろいろ勉強になりました。
忙しい中、ありがとうございました。

お礼日時:2001/09/28 10:07

>SHELL周りが非常に怪しいです。



SHELL関数の代わりにAPI関数のShellExecuteを使うとか
もしかして、画面を沢山開いていますか?
    • good
    • 0
この回答へのお礼

ありがとうございます。
ShellExecute関数に変えたらうまくいきました。あれほどうまくいかなかったのに。

shell関数の仕様が違うのか、プロセスの扱いが2000と98で違うんですかね?
ちなみに画面はそれほど開いていないです。前のプログラムが処理終了する寸前にパラメータを渡して起動しています。

お礼日時:2001/09/27 18:43

追加でお答えします。



補足で記載されていることから予想されることは、
shigeki-yyさんが作成されているEXEは
Windows2000で作成されていて、そのEXEをWindows98
で、実行できないと読み取れるのですが正しいですか?
作成環境と試験環境がどのような関係になっているのかが
ちょっと文面から読み取れないので、何ともいえませんが、下記の文章を参考にしていただけると幸いです。
コマンドボタンを押したときの先頭にMSGBOXを入れてもそこまでたどり着けないという現象からわかることはwithブロック変数が設定されていないという項目はないと思います。
ですからobject変数の宣言が怪しいか、後は環境の違いでしょう。
とりあえず全体に対してOption Explicit(つづりあってましたっけ?)を入れて、エラーをチェックしてみてください。
それでも引っかかるときは、フォームに張ってあるコンポーネントを疑ってみてください。
例えば、IEに関連するコントロールやOffice関係のコントロール、ライセンスが必要なコントロール張ったりしていませんか?
その辺を疑ってみるといいと思います。
最後の手段で、Windows98で同じソースを使ってEXEを作成&デバッグすれば解決すると思います。
あまり回答にはなっていませんが、参考になればと思い書いて見ました。

この回答への補足

ありがとうございます。

おっしゃる通り、win2000でコンパイルしたEXEが98で動かないという事象です。(Win98でコンパイルしても同じ事象です。)
作成環境(Win2000)・実行環境(Win98SE)ともに同じバージョンのVisualStudio(V6.0SP5)がインストールされています。
OptionExplicitはデフォルトで入るようになっているので、その方面でのエラーはないようです。Win98でデバッグすると問題なく通ってしまうので、そこで原因も発見できませんでした。

もう少し、フォームに張り付いているコントロールの方を調べてみます。

あと、新たにわかったことは、別のVBからの呼び出し(SHELL関数)では同じ事象が起こりますが、単体(DOSコマンドラインから実行)だと動きます。呼び出しはSHELLで呼んでいるだけなので、そこに問題があるとも思えないのですが…。

補足日時:2001/09/27 16:03
    • good
    • 0

こんにちは。



質問内容から細かいことは何ともいえないのですが、
プログラミング&デバッグしたマシンとEXEを実行したマシンの環境が違うのではありませんか?
この場合は、フォームに張ってあるコントロールや、実行に必要なファイルが不足している恐れがあります。
VBのバージョンとか張っているコントロールもしくはエラーの原因となりそうなオブジェクトの名前もあわせて質問すると回答者の方は的確なアドバイスをくれると思います。
実行時のエラーが出る場合は、エラーの原因となりそうなところにメッセージボックスを表示させ、どこまで処理が進んでいるか確認して、ソースを見直すことをお勧めします。これを繰り返していくと、だんだんエラーの原因となっているobject変数またはwithブロックにたどり着きます。この方法で、エラーの発生している行を突き止めましょう。

この回答への補足

指摘の通りです。大雑把な質問ですみません。

バージョンはVB6.0SP5です。
普通のコマンドボタンのクリックイベントでの処理なのですが、先頭にMSGBOXをかませても、その処理までたどり着きません。フォームなどは正常通りに表示され、機能しているんですけど、そのボタンを押した瞬間にフリーズして、Cntl-Alt-Deleteを押すと、上記のメッセージが表示されます。
そのプロシージャに書かれているソースを全部消しても同様になります。他に原因があるのかな…とも思うのですが。

ちなみに新しくわかったことですが、Windows2000では正常に動作し、エラーとなるのは、Windwos98です。

補足日時:2001/09/27 13:23
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q404ERROR の 意味の統一はいつからですか?

こんばんは~! ネットワークのカテゴリーのエキスパートな方々!回答宜しく~^^

質問はタイトルの通りなのですが、『404 ERROR』はいつ頃から共通に利用されてるのですか?
仮に最初に統一した人がいるのなら、使用許諾や使用に当っての利点若しくは、お金が来てるの?

Aベストアンサー

HTTPエラーコード404。
Not Found:要求されたURIに対するマッチする情報が見つからない(RFC1945)
通信規約上の約束です。

RFC(Request For Comment:ご意見お待ちしてます)はインターネット標準案と標準規約を記述したメモで、誰でも参照して利用することが出来ます。

いつから?と問われればRFC1945に制定されたメモが発表された1996年からです。

Qマクロ初心者です。実行エラー'91になります。 今選択しているシートのコード名と別シートwk1の

マクロ初心者です。実行エラー'91になります。


今選択しているシートのコード名と別シートwk1のコード名が一致かつ、コード名がCから始まるなら
処理っていうのは下の文です。
...
For i = 〜
If 〜
For j = 〜
If Cells(i,Tcode).Value = wk1.Cells(j,15) And Left(wk1.Cells(j,1).Value,1) = ”C” Then

'処理(あるセル情報によって、出力位置が違う)
if Cells(i,m).Value = 1 Then
wk1.Cells(j,8).Value = Cells(i,out)
Else
wk1.Cells(j,15).Value = Cells(i,out)

ここまでは、社内で既に動かしているコードなので間違いはないです。

今回追加したいのが、
さらに、
wk1のシートの、例えばO列かP列どっちかに必ず番号が書いてるので、
その値を同じシートのA列から検索して
その行に同じようにCells(i,out)の値を出力(上記のように、セル情報によって出力位置が違うようにする)したい場合、

Kline= wk1.Range(”A:A”).Find(wk1.Cells(j,Num).Row
or wk1.Range(”A:A”).Find(wk1.Cells(j,Num2).Row

そして既存の処理のとこに
wk1.Cells(Kline,8).Value = Cells(i,out)
をTrueとElseそれぞれにいれましたが

Klineへ格納の時点でエラーになります。

Orはif文でしか使えないのかなと思い、
ifとOrを使い、
Trueは
Kline = Rows.Count

としましたがダメでした…

どうかご教示願います。

マクロ初心者です。実行エラー'91になります。


今選択しているシートのコード名と別シートwk1のコード名が一致かつ、コード名がCから始まるなら
処理っていうのは下の文です。
...
For i = 〜
If 〜
For j = 〜
If Cells(i,Tcode).Value = wk1.Cells(j,15) And Left(wk1.Cells(j,1).Value,1) = ”C” Then

'処理(あるセル情報によって、出力位置が違う)
if Cells(i,m).Value = 1 Then
wk1.Cells(j,8).Value = Cells(i,out)
Else
wk1.Cells(j,15).Value = Cells(i,out)

ここまでは、社内で既...続きを読む

Aベストアンサー

>実行エラー'91になります。
エラー発生場所を書いて下さい。
コード全体が書いてない以上、こちらで試すことも出来ません。

>コード名がCから始まるなら処理っていうのは下の文です。
何を言いたいのか分かりません。

>今回追加したいのが、
追加前はどんなコードですか?

質問する際は
・何をさせるマクロなのか
・可能な限りコード全体
・エラー内容(これは書いてますね)
・エラー場所
のように整理して書いて下さい。

Q404 Error Not Found と出てしまします

初めてホームページを作ろうとしている者なので、専門用語ではなく、わかりやすく教えて下さいませm(__)m
「HETEMULU」を使って、ホームページを作り、半年かけて、やっと完成しました^^;
そして、無料だと聞いたので、「忍者ホームページ」サイトで、
「NINJA TOOLS」?という所で、IDやパスワードを取得し、なんとか出来たと思ったのですが、

登録されているあなたのURL

とい所をクリックすると、

404 Error Not Found と出てしまします。

何故ですか??

色々触ってみたけど、わかりません^^;

もう一つ質問ですが、無料素材屋さんから、画像をダウンロードして、
「名前をつけて保存」と書いてあったので、例えば「鉢植え」と保存しました。「HETEMULU」で画像の挿入をクリックすると、「鉢植え」の後ろに.gifと付き、問題ないように思っているのですが、日本語で保存しているから、404 Error Not Found と出てしまうのでしょうか?それともそれはまったく関係ないのでしょうか?
慣れていらっしゃる方にはおバカな質問かもしれませんが、どうかどなたか教えて下さい!説明が足りなければ補足しますので、どうかよろしくお願いします!!!

初めてホームページを作ろうとしている者なので、専門用語ではなく、わかりやすく教えて下さいませm(__)m
「HETEMULU」を使って、ホームページを作り、半年かけて、やっと完成しました^^;
そして、無料だと聞いたので、「忍者ホームページ」サイトで、
「NINJA TOOLS」?という所で、IDやパスワードを取得し、なんとか出来たと思ったのですが、

登録されているあなたのURL

とい所をクリックすると、

404 Error Not Found と出てしまします。

何故ですか??

色々触ってみたけど、わか...続きを読む

Aベストアンサー

作成したHTMLファイルをサーバーにアップロード(転送)済みで
しょうか?
トップページは必ず「index.html」または「index.htm」である
必要があります。
「index.htm」にする場合は、元からある「index.html」を削除
(※下記ページ参照)
http://www.ninja.co.jp/faq/a/37/

おすすめのFTPソフト
「FFFTP」
http://www2.biglobe.ne.jp/~sota/

日本語ファイルは表示されない場合もあるので、英数字のファイル名
が推奨されています。
http://www.ninja.co.jp/faq/a/79/

QVBで作成したパッケージを実行すると実行時エラー'429'が発生してしまいます。

VBにてcsvファイルのデータをOracleデータベースにinsert、updateするプログラムを作成し、開発パソコンにて正常に動作することを確認しました。

開発パソコン
・Windows2000 Server(SP3)
・Visual Basic 6.0 Enterprise Edition
・Oracle 9i

本番パソコン
・Windows2000 Server(SP3)
・Oracle 9i

テストパソコン
・Windows2000 Professional(SP1)

今、上記のように3台のパソコンがあります。
開発パソコンで開発したVBのプログラムをコンパイルしてexeを作成し、開発パソコン上から開発パソコン上のオラクルに対してプログラムを実行すると正常に動作します。
本番パソコンには、Visual Basicをインストールしていないため、プログラムを実行できるようにするには開発パソコンにてディストリビューションウィザードを使ってセットアッププログラムを作成し、本番パソコンにインストールする必要があると思います(質問1.ここまでは正しいですよね??)。

そこでウィザードに沿ってセットアッププログラムを作成し、まずはテストパソコンにてインストール後に実行してみたのですが、エラーが出てしまいました。
「実行時エラー'429' ActiveX コンポーネントはオブジェクトを作成できません。」

質問2.どうすればエラーが発生することなくプログラムを実行できるようになるでしょうか?
テストパソコンにオラクルクライアントが必要?それとも何かDLLの更新などが必要?

もしおわかりの方いらっしゃいましたら教えて下さい。
よろしくお願いします。

VBにてcsvファイルのデータをOracleデータベースにinsert、updateするプログラムを作成し、開発パソコンにて正常に動作することを確認しました。

開発パソコン
・Windows2000 Server(SP3)
・Visual Basic 6.0 Enterprise Edition
・Oracle 9i

本番パソコン
・Windows2000 Server(SP3)
・Oracle 9i

テストパソコン
・Windows2000 Professional(SP1)

今、上記のように3台のパソコンがあります。
開発パソコンで開発したVBのプログラムをコンパイルしてexeを作成し、開発パソコン上から開発パソ...続きを読む

Aベストアンサー

>テストパソコンにオラクルクライアントが必要?
ん?クライアントにオラクルが入っていないのですか?

各クライアントのオラクルドライバはどうしているのか、ふと疑問を感じたんですが^^;

バージョンを問わない対応をするには、参照設定からはずし、AS OBJECTでコネクションを張ってあげたら消える場合もあるけど、何となくそれ以前の問題のような気がするのは、わたしだけでしょうか?

Q教えて下さい!なぜ【WebApp: Error 404】のページが出る?

JDK + apache + mod_webapp.so + tomcat + PostgreSQLをインストール・設定しました。

JDK     j2sdk-1_3_1_11-linux-i586
apache    apache1.3.31
mod_webapp.so
tomcat    jakarta-tomcat-4.1.30
PostgreSQL    postgresql-7.2.3

(1)
http://localhost:8080/index.jsp
【tomcat】のページが出ます。

(2)
http://localhost/
【あなたの予想に反して、このページが見えているでしょうか?】のページが出ます。

(3)
http://localhost:8080/examples/jsp/index.html
【JSP Samples】のページが出ます。

(4 問題点)
http://localhost/examples/jsp/index.html
【WebApp: Error 404】のページが出ます。
希望 → (3)と同じページが出る。

起動は tomcat → apache の順です。

なぜ【WebApp: Error 404】のページが出るのでしょうか?
教えて下さい。
お願いします。
(初心者なので出来ればわかりやすくお願いします)

JDK + apache + mod_webapp.so + tomcat + PostgreSQLをインストール・設定しました。

JDK     j2sdk-1_3_1_11-linux-i586
apache    apache1.3.31
mod_webapp.so
tomcat    jakarta-tomcat-4.1.30
PostgreSQL    postgresql-7.2.3

(1)
http://localhost:8080/index.jsp
【tomcat】のページが出ます。

(2)
http://localhost/
【あなたの予想に反して、このページが見えているでしょうか?】のページが出ます。

(3)
http://localhost:...続きを読む

Aベストアンサー

設定内容が書いていないので
いかんともあれなんですが。。。(^^;
以下の手順をご確認下さい。

1.mod_webapp.soをapacheのlibexecに配置している。

2.apacheのhttpd.confに以下を記述している。
------------------------------------------------------
LoadModule webapp_module libexec/mod_webapp.so
AddModule mod_webapp.c

<IfModule mod_webapp.c>
WebAppConnection warpConnection warp localhost:8008
WebAppDeploy examples warpConnection /examples
WebAppInfo info
</IfModule>
------------------------------------------------------

3.tomcatのserver.xmlに以下を記述している。
------------------------------------------------------
<Service name="Tomcat-Apache">

<Connector className="org.apache.catalina.connector.warp.WarpConnector"
port="8008" minProcessors="5" maxProcessors="75"
enableLookups="true" appBase="webapps"
acceptCount="10" debug="0"/>

<Engine className="org.apache.catalina.connector.warp.WarpEngine"
name="Apache" debug="0">

<Logger className="org.apache.catalina.logger.FileLogger"
prefix="apache_log." suffix=".txt"
timestamp="true"/>

<Realm className="org.apache.catalina.realm.MemoryRealm" />

</Engine>

</Service>
------------------------------------------------------

4.tomcat、apacheの順で再起動

どう?

設定内容が書いていないので
いかんともあれなんですが。。。(^^;
以下の手順をご確認下さい。

1.mod_webapp.soをapacheのlibexecに配置している。

2.apacheのhttpd.confに以下を記述している。
------------------------------------------------------
LoadModule webapp_module libexec/mod_webapp.so
AddModule mod_webapp.c

<IfModule mod_webapp.c>
WebAppConnection warpConnection warp localhost:8008
WebAppDeploy examples warpConnection /examples
WebAppInfo info
</IfModule...続きを読む

Q実行時エラー '8021'とはどんな内容のエラーでしょうか?

VB6 でプログラムを作成していますが、たまに"実行時エラー'8021':DCB (Device Control Block)の取得時に、ポートで内部エラーが発生しました。"というメッセージが表示されプログラムが止まってしまいます。どういった内容のエラーなのか分かりませんので、しっている方がいらっしゃいましたら教えて頂きたいのですが。よろしくお願いします。

Aベストアンサー

誰も回答していないようなので、参考までに。

エラー番号8021を発生させたところ、当方の環境ではそのようなメッセージは表示されず、そのエラーは定義されていないと表示されました。
その事から、そのエラーはVB6標準ではないクラスまたはコントロール等を利用して発生していると思われますので、
その環境をもっと記載しなければ、他の人も回答できないと思います。
(エラーメッセージを見る限りでは、特殊なものを利用しているっぽいので補足説明があっても、私には回答できなさそうですが・・・)

QError!! HTTP status code=404

Error!! HTTP status code=404

いつもお知恵拝借、ありがとうございますm(_ _)m

さて、最近当社で中古XP (prof.)パソコンを2台導入しました。sp3にupしております。

取引先のサイトにアクセスし、IDとpasswordでログインして「取引明細」をダウンロードしようとしましたが、ファイルのアイコンをクリックしたら上記のようなエラーメッセージが出ます。

2台とも同じエラーが出ます。

「教えてgoo」や他のサイトで検索してもなかなか、コレというページが見あたりません。

以前からあるもう一台のXPからはアクセスでき、見ること・プリントすることが出来ます。

アクセスしようとしたファイルは拡張子が".ilf"で、検索の結果どうやら電子帳票のファイルのようです。

このようなトラブルは初体験なので、皆さんのお知恵を是非拝借したいと思います。どうかよろしくお願いいたしますm(_ _)m

Aベストアンサー

ILFのことについてはわかりませんが、単純にHTTP のエラーコード404は、
Not Foundですね。

要するに、指定のページやファイルが見当たらないということ。

先方のシステム内で、指定されたファイルがないということではないですか?
それを先方のWEBサーバーと連携したILFのシステムが応えていると・・・

先方の担当者に聞いた方がいいと思いますが。
特定のシステム内のことですので、担当者以外は本当のことはわかりません。

Q実行時エラー'1004': アプリケーション定義またはオブジェクト定義のエラーです。

Excel VBA(Excel2000)について質問です。
セルの入力規則を設定するvalidationプロパティ設定時に表記エラーが起こるのですが、どういった原因なのか知りたいです。
そのエラーを起こす手順ですが、
1. 新規ブックを作成する
2. Visual Basic Editorを使用して、Sheet1に以下のコードを埋めこむ:

Private Sub Worksheet_Activate()
  With Cells(1, 1).Validation
    .Delete
    .Add Type:=xlValidateList, Formula1:="test1,test2"
  End With
End Sub

3. Sheet1 ←→ Sheet2 or Sheet3をタブで切り替える
  → 問題なく作動する
4. Sheet1の任意の場所に、コントロール ツールボックスのコマンドボタンを配置する
5. Sheet1 ←→ Sheet2 or Sheet3をタブで切り替える
  → これも問題なく作動する
6. 4.で配置したコマンドボタンを押す
7. Sheet1 ←→ Sheet2 or Sheet3をタブで切り替える
  → 表題のエラーが発生する

といったように、ボタンやチェックボックス等を配置したシートにおいてvalidation.addメソッドを使用すると、何故かエラーが発生します。この発生パターンが見つかるまでずっと悩んでいました。
今現在は、一応、他の方法で回避できてはいますが、どうしてこのエラーが出るのかはっきりしたいので、ご存知の方はどうぞご指導お願い致します。

Excel VBA(Excel2000)について質問です。
セルの入力規則を設定するvalidationプロパティ設定時に表記エラーが起こるのですが、どういった原因なのか知りたいです。
そのエラーを起こす手順ですが、
1. 新規ブックを作成する
2. Visual Basic Editorを使用して、Sheet1に以下のコードを埋めこむ:

Private Sub Worksheet_Activate()
  With Cells(1, 1).Validation
    .Delete
    .Add Type:=xlValidateList, Formula1:="test1,test2"
  End With
End Sub

3. Sheet1 ←→ Sheet2 or S...続きを読む

Aベストアンサー

> 6. 4.で配置したコマンドボタンを押す

この操作でコマンドボタンがアクティブ状態になってしまうのが原因のようですね。これはチェックボックスとかリストボックス等でも起こると思います。
最も簡単な対処方法としては、Cells(1,1).SelectとかRange("A1").SelectをWith Cells(1, 1).Validation の前に記述し、特定のセルをアクティブにする方法でしょう。

QHTTP 404 error

Vine Linux,Tomcat5で
(1)webapps/conf/server.xml
...
<HOST>
<Context path="/apress" docBase="apress" debug="0" reloadable="true" />
...
(2)webbapps/apress/login.jsp
...
<table width="500" border="0" cellspacing="0" cellpadding="0">
<form name="loginForm" method="post" action="servlet/chapter2.login">
<tr><td width="402"><div align="right">User Name: </div></td>
<td width="399"><input type="text" name="username"></td>
</tr>
...
(3)webapps/apress/WEB-INF/web.xml
...
<servlet>
<servlet-name>login</servlet-name>
<servlet-class>chapter2.login</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
...
(4)webapps/apress/WEB-INF/classes/chapter2/login.java
package chapter2;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;

public class login extends HttpServlet {
private String target = "/welcome.jsp";
private String getUser(String username, String password) {
// Just return a statice name
// If this was reality, we would perform a SQL lookup
return "Bob";
}
....
(4)現象:
http://xxx.xxx.xxx.xxxx:8080/apress/login.jsp
でsubmit action 後、次のエラーが出てきました:
HTTP 404 error,
The requested resource (/apress/servlet/chapter2.login) is not available.

この問題はどこにあるでしょうか教えてください。

Vine Linux,Tomcat5で
(1)webapps/conf/server.xml
...
<HOST>
<Context path="/apress" docBase="apress" debug="0" reloadable="true" />
...
(2)webbapps/apress/login.jsp
...
<table width="500" border="0" cellspacing="0" cellpadding="0">
<form name="loginForm" method="post" action="servlet/chapter2.login">
<tr><td width="402"><div align="right">User Name: </div></td>
<td width="399"><input type="text" name="username"></td>
</tr>
...
(3)webapps/apress/WEB-INF/web....続きを読む

Aベストアンサー

パスの指定が間違ってるからだと思いますが。

/apress/servlet/chapter2.login

このパスにちゃんと存在してますか?

Q実行時エラー’2164’

アクセスVBAで、実行時エラー’2164’
コントロールがフォーカスを取得しているときは、
コントロールを無効にすることはできません
と言うメッセージが出てしまいます。
何が原因なのでしょうか?

Aベストアンサー

例えば下記のようなプログラムは駄目よ。て事

更新後に自分自身のコントロールを使用不可にするようなプログラム

例:テキストボックスで同テキストボックスの内容が更新された場合に同テキストボックスを使用出来ないようにする。
Private Sub テキスト0_BeforeUpdate(Cancel As Integer)
テキスト0.Enabled = False
End Sub

簡単にいうとフォーカスを失っていない状態で自身のコントロールのイベントプログラムで自分自身を使用不可にするような事はしたらあかんて事


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング