Excel VBA 質問スレ Part55

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2018/07/22(日) 14:13:18.78ID:/fuF+goF
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK


※前スレ
Excel VBA 質問スレ Part54
https://mevius.5ch.net/test/read.cgi/tech/1527334657/
90デフォルトの名無しさん
垢版 |
2018/07/29(日) 18:03:41.01ID:3KthijbH
>>89
でもお前無職じゃん
2018/07/30(月) 20:07:26.47ID:L4iRteYk
シートからデータを抜き出して重複しないリストを作ろうとしています。
For
If Cells(i+1,1) = .List(i) then
中略
Next
で重複の判定をさせているのですが、エラーが出ます。
InStrで判定させると期待通りに動きます。
検索しているのは数字なのですが、エラーの原因がわかりません。
挙動としては問題ないので、ひとまず満足はしているのですが、もし原因エスパーして頂けるようなら教えてください。
2018/07/30(月) 20:33:15.09ID:d+TLGZef
このスレの質問らしいw
エラーが出てるってだけでどんなエラーがどこで出てるのか言わない www
9391
垢版 |
2018/07/30(月) 20:40:42.50ID:L4iRteYk
>>91
今確認し直したらエラーが出ているのではなく、重複の判定ができていませんでした。
デバッグで変数を追っていましたが、表面上は同じ数字が入っているように見えるのですがifの中身を読みに行ってくれません。
例えば100〜110の数字を重複なしでリスト化したいのですが、
100
100
101…
といった表示になってしまいます。
質問の仕方もわからないような有様で申し訳ありませんが、よろしくお願いします。
2018/07/30(月) 21:22:34.72ID:bLz+Q6Zv
>>91
重複なしのリストは、フィルタをうまく使えば一瞬でできるぞ


あと色々とめんどくさいから
・どういうリストを
・どうしたい
を書いてくれ
コードを書くから、それとどう違うかを照らし合わせると良い
95デフォルトの名無しさん
垢版 |
2018/07/30(月) 21:27:58.45ID:MdDdO1Hd
まず質問する前にちゃんとデバッグしようぜ。。
2018/07/30(月) 21:33:24.66ID:mAgRmfNY
>>91
>検索しているのは数字なのですが
まずこれがあやしい
エクセルは表示されてる物と実際の値は違うぞ

そもそもそのコードで重複除去できると思えんけどな
1重ループで重複除去できるアルゴリズムあるなら教えて欲しいわ
9791
垢版 |
2018/07/30(月) 22:26:44.11ID:L4iRteYk
>>94
         納入日…
納入先1 納入先1' 製品名 納入額
納入先1 製品名1'' 製品名 納入額
納入先2 納入先2' 製品名 納入額
このような元データから納入先1と2をそれぞれリスト化してUserFormのリストボックス1と2に表示、そこから納入先のデータを引き渡して別途データまとめるものを作ろうとしてました。
納入先については数字で管理されています。
納入先1にはさらに細かくいくつかの納入先2があり、リストボックス1に納入先1のリストを表示、選択された納入先1に紐付いている納入先1'を表示させるのが目標です。
ExcelVBA逆引き辞典とネット参考に関係しそうなコードを自分で打っていくと上記のようなコードが出てきたので使ってました。重複除外のコードは本から流用してます。
よろしくお願いします。

>>96
なんとなくそこが原因だとは思うのですが、具体的にどうなっているのかわかりません。
cellsでは数値を返して、listでは文字列として見ているような理解でいいのでしょうか。

>>95
一行ずつ動かしてみましたが、cellsと.listの中身は同じ表示をするのにifの中に入ってもらえなかったのでどうなっているのかもわかりませんでした。
2018/07/30(月) 22:28:08.17ID:lLAVt4bp
Dim d As New Dictionary(Of String, MyClass)

なぜかエラーが出るのですがなぜでしょうか???
2018/07/31(火) 06:55:09.36ID:hnMeVpcj
>>97
vba リストボックス 重複除去
辺りで検索すれば山程出てくるよ
2018/07/31(火) 07:13:22.38ID:hnMeVpcj
>>98
エラーの内容は書こう

多分参照設定してない
http://itref.fc2web.com/vb/vba/dictionary.html
2018/07/31(火) 07:15:42.13ID:viAsjoyM
やはりVBAばかりやるとプログラミングの基礎がおろそかになるね
見た目を意識したスプレッドシートをそのままデータとして使う、といった発想は基礎ができてないVBAer特有の現象
Excel VBAは入門用と宣伝されることが少なくないが、正直、特殊な環境だから初心者は避けたほうがいい
102デフォルトの名無しさん
垢版 |
2018/07/31(火) 07:18:36.03ID:9D920yGd
と、VBA利権にたかるウジ虫がほざいてます
2018/07/31(火) 07:21:50.77ID:hnMeVpcj
>>101
誰もvbaでプログラミングの基礎なんて覚えないでしょ
よっぽどで無い限りフレームワークは無料

vb6以前なら仕方ないけどね、あの頃は色々と有料だった
2018/07/31(火) 07:22:29.70ID:R/dSWHzC
VBAerて…また新語作りやがったな
2018/07/31(火) 08:10:41.76ID:QKgssm6F
どの言語でも言えることをさもVBAでのみ起こるかのように言うw

CだろうがPythonだろうが誰かが頓珍漢なことをした時に言えば良いんだから
2018/07/31(火) 08:25:14.43ID:JoTrRiyA
星持ちは荒らしてばっかりか
2018/07/31(火) 08:26:46.09ID:7/S9zeio
専ブラJune使ってるんだけど何の設定もしてないのにあぼーんされてるのってなんで?
デフォでNGワード登録されてる単語あるの?
2018/07/31(火) 08:46:49.23ID:CQebd+HR
>>107
> デフォでNGワード登録されてる単語あるの?
当然ある。 このスレで確認できる

NGワード絞り込みスレッド★117
https://agree.5ch.net/test/read.cgi/mango/1532726276/

最後に「This is Original」と出ればOK
「Rock54ed.」とでればNGワードが含まれている
2018/07/31(火) 16:04:06.73ID:v6ZYNw/G
レベルが低いから質問しに来てるのに
質問者のレベルが低いとあざ笑うだけの書き込みしに来る人ってのは
やっぱりVBAプロなんでしょうか
2018/07/31(火) 16:07:23.76ID:+P8Kb7lC
>>109
え?質問をする理由はレベルが低いから「だけ」だと思ってるの?馬鹿なの?
111デフォルトの名無しさん
垢版 |
2018/07/31(火) 19:23:40.75ID:9D920yGd
>>110
答えになってない!
2018/07/31(火) 21:26:26.03ID:viAsjoyM
セル関数だけで今開かれているWorkbookのWorksheetの一覧を作れるかい?
2018/07/31(火) 21:29:34.12ID:hnMeVpcj
>>109
質問内容を変に隠すのが嫌われてるだけだよ
あと、わかったフリ
2018/07/31(火) 21:29:56.81ID:hnMeVpcj
>>112
セル関数って何?
2018/07/31(火) 21:53:17.28ID:viAsjoyM
>>114
=aaa()みたいにセルに関数入力するやつ
2018/07/31(火) 22:34:16.53ID:HEdj3l67
>>112
できるっちゃできるし、現にSheet1をメニューのように使って
Sheet追加したりも可能 それはすぐにメニューに反映されるし
文字で説明するよか現物Upした方が早いだろうから あした
2018/07/31(火) 22:37:03.15ID:hnMeVpcj
これ?
https://www.tipsfound.com/excel/01306
2018/08/01(水) 18:45:11.44ID:/7P6ICDY
質問です
画像みたいにSheet2の氏名と県名から数値を検索してSheet1の黄色セルを埋めることは関数でできますか?
https://i.imgur.com/VtolpQf.jpg
2018/08/01(水) 19:29:44.50ID:bLi+fVsi
できる。
120118
垢版 |
2018/08/01(水) 19:37:48.99ID:CrgSL/Mw
>>119
アホ。
やり方を聞いておるんじゃ。
2018/08/01(水) 20:05:31.66ID:KK2iEEgZ
「できますか?」としか聞いていないだろ
2018/08/01(水) 20:09:04.73ID:SDXNPz2D
お金を頂きます
2018/08/01(水) 20:47:02.77ID:Cx2XTKqG
あの説明じゃ何したいんだかさっぱり判らんけど出来るかってんなら出来るんだろうなぁ w
2018/08/01(水) 20:49:54.52ID:atM50NE9
>>121
日本語に不慣れな外人ならその言い訳は通用かもだね
(普通の常識というか社会経験があれば、外人であっても通用しないと思うけど)
125デフォルトの名無しさん
垢版 |
2018/08/01(水) 20:58:32.29ID:ADJFw6Sc
( )の中が長すぎる
2018/08/01(水) 21:01:06.09ID:sbkooZWR
>>118
vlookup キー 2つ
とかで検索するといい

ただ、普通に作業列作ったほうが良い
127デフォルトの名無しさん
垢版 |
2018/08/01(水) 21:14:43.63ID:dwiwmIsf
つーかVBAスレで関数とはどういうことよ
WorksheetFunction?
2018/08/01(水) 21:16:08.42ID:htMziwx3
pivotじゃだめなのん?
129デフォルトの名無しさん
垢版 |
2018/08/01(水) 21:56:40.95ID:714hG0Tb
>>121
文は文脈に関係なく不変の意味を持つという形式意味論の立場ですね

一方で、自然言語の解釈は文脈や発話者の意図と密接に関係しているという
立場をとるのが語用論です

夏目漱石は「I love you」を「月が綺麗ですね」と訳しなさいと
言ったらしいですがこれなんかは文脈を考えないとわからない言葉です

それでは問題です

最初にりんごが3個あります、あと2個りんごを買ったらいくつになるでしょう?
2018/08/01(水) 23:19:06.30ID:sbkooZWR
>>129
スレチなんでそろそろ帰って
2018/08/01(水) 23:56:36.26ID:sS7kLAAW
>>129
お前みたいな馬鹿が質問するとおかしくなる
馬鹿なら何をしてもいいわけじゃない
132デフォルトの名無しさん
垢版 |
2018/08/02(木) 07:19:05.05ID:M9+gUzRN
>>131
文脈を理解してないあなたの方が馬鹿です
死んでどうぞ
133デフォルトの名無しさん
垢版 |
2018/08/02(木) 07:19:41.69ID:M9+gUzRN
>>130
ただいま
2018/08/02(木) 08:12:15.27ID:2BgkbQH+
こうして回答も得られず、何も叶わず、¥無駄な人生を歩むのでした
2018/08/02(木) 10:09:33.51ID:kHzgrEZ3
>>118
の者です
なんだかお騒がせしてしまってすいません
Sheet2の別の列に検索キーとして氏名と県名の結合文字列を作ってvlookupで参照するようにしました
もっとスマートなやり方があれば一番良いのですが…
2018/08/02(木) 19:14:12.00ID:dYoMhZad
>>135
sheet1のデータの持ち方がはっきりしないとむずかしいかも
各人名でどれか1つの値しか持たないなら最初の表から簡単にできる
2018/08/02(木) 21:04:52.53ID:TLBzkUIv
複数シートのデータを3次元配列に格納する効率の良いコードを組みたいんだけど、
サンプルコードをお願いできない?

条件
・三次元配列は(シートのインデックス番号,行,列)を想定
・対象のシートはインデックスの二番目から最後までで、現状5シートだが10シート程度まで増える見込み
・一枚のシート内におけるデータ数は、列数は30程度で固定、行数はシート毎に可変で現状は100程度だが1000程度まで増える見込み
2018/08/02(木) 21:39:08.04ID:2BgkbQH+
>>137
行、列、シートで三次元になってるから、
sheets(1).cells(2,3)
みたいに配列にいれずそのまま扱うのは駄目なの?

効率がいいかどうかは知らんけど、
二次元配列ならセルを直接保折り込めばok
これをシートの数だけ回せば瞬殺
Sub foo()
a = Range("a1:b2")
End Sub
2018/08/02(木) 22:04:18.70ID:rqIgowuq
>>137
max_row = 0 : max_col = 0 : result = array() : jug = array()
for i = 1 to Worksheets.Count
buf = Worksheets(i).UsedRange.Value
Redim Preserve jug(ubound(jug) + 1) : jug(ubound(jug)) = buf
if max_row < ubound(buf, 1) then max_row = ubound(buf, 1)
if max_col < ubound(buf, 2) then max_col = ubound(buf, 2)
next

redim result(ubound(jug) + 1, max_row, max_col)

for i = 0 to ubound(jug)
for row = 1 to max_row
if row > ubound(jug(i), 1) then exit for
for col = 1 to max_col
if col > ubound(jug(i), 2) then exit for
result(i + 1, row, col) = jug(i)(row, col)
next
next
next
これで result(1, 2, 3) で取り出せるし
インデックスが0オリジンでよければ jug(0)(2, 3) でも取り出せる
UsedRangeのとこは適当に書き換えてね
140
垢版 |
2018/08/02(木) 23:16:22.80ID:XQFP0WAE
>>139
こういう感じになるから三次元配列に複数シートのデータを入れようと考えること自体が無駄。
素直に二次元配列をdictionaryにシート名つけて打っ込むのが一番効率的かと。
2018/08/02(木) 23:18:46.98ID:2BgkbQH+
>>140
綺麗
2018/08/03(金) 00:40:38.97ID:A1FDqy6b
>>139
こういう馬鹿はすぐにクビ
2018/08/03(金) 05:28:19.46ID:wa60SFcl
ユーザ定義型に対してforeach的なことってできないの?
Dictionaryやcollectionじゃないとだめかね
2018/08/03(金) 08:10:11.78ID:FdAoJ/Ly
>>143
クラスにすればええやん。
145デフォルトの名無しさん
垢版 |
2018/08/03(金) 10:48:59.11ID:efvhV3fR
VBAで多態性(ポリフォーリズム)が実現できることを発見した。
ただし親オブジェクトはObjectクラスのみ。
これ以外に方法ないよね?

あとどうしてもコンストラクタを実現したいけど方法ある?
Class_Initializeのブロシージャは使えるんだけど引数が取れないという致命的な欠陥がある。
146デフォルトの名無しさん
垢版 |
2018/08/03(金) 10:49:43.01ID:efvhV3fR
ポリモーフィズム
147デフォルトの名無しさん
垢版 |
2018/08/03(金) 11:24:42.37ID:WNWnteXi
>>145
ないんじゃないの
諦めて初期化メソッド作ってそれを利用してるわ、面倒だけど

あー早く.NET化かPythonにならないかなあ
2018/08/03(金) 12:10:29.95ID:7xkrIrco
>>145
オブジェクトをNEWして初期化メソッドを呼ぶ
でオブジェクトを返す関数を作るぐらいしか回避策が思いつかない
2018/08/03(金) 18:29:30.81ID:Jes/PhJV
>>148
みんなそうしてると思う。
定番でしょ。
150デフォルトの名無しさん
垢版 |
2018/08/03(金) 19:49:24.72ID:GOZ9L8DI
>>145
VBAはインターフェースを定義できたりするよ
オブジェクトの生成はオブジェクト指向らしくファクトリクラス作るとか
151デフォルトの名無しさん
垢版 |
2018/08/03(金) 20:07:46.13ID:EY4tsGwx
VBAは手軽だって言ってた人いたけど上のような事をするならVBAでする必要ある?
VBAでするには面倒だよね
2018/08/03(金) 20:18:21.80ID:V7pxWvhe
そうだねPowerShellなら(ry
2018/08/03(金) 20:21:52.83ID:Jes/PhJV
インターフェースを定義するか、そこまではしなくても良いかと考えるかだな。
どっちもあり有り得るけど、大きなプログラムなら定義して小さなプログラムなら定義しないって感じ。
でも、クラス作るべきって思うこともそんなに多くない。

VBAでするのは面倒とか感じることは無いな。
VBAでクラス作るのにピッタリな時は作って得られる恩恵が多いから感じないし、ピッタリな時は少ないから普段は無理して作らん。
154デフォルトの名無しさん
垢版 |
2018/08/03(金) 20:36:12.66ID:P22i9c3x
VBAでクラス設計ってなんかうさんくさい感じがして使わないんだけどC#みたいな感覚で設計出来るの?
2018/08/03(金) 20:54:03.97ID:TQSHsawm
>>145>>149
一体エクセルで何を作っているんだ?
156デフォルトの名無しさん
垢版 |
2018/08/03(金) 20:55:51.99ID:EY4tsGwx
気になる
何作ってるの?
2018/08/03(金) 22:16:03.36ID:19fg4Hec
ひと昔前ならともかく今はいろんなツールが無料だからねぇ
excelはさくっと一覧表やグラフを作るときにしか使ってないや
ちょっとした作業が1週間くらいの見積もりで入ったけど、Redmine立てるのめんどくせーな、
一人作業だしタスク100以下ならエクセル一覧表で管理すりゃ、まあいーかポチポチー、みたいな感じ
こうなるともうVBAは大した役にはたたんのだな
プログラム書くほどの込み入った仕事なら、別の手段で楽に、収穫を大きくしようかってなる

何でも揃ってるこの時代に、あえてVBAを主力で使ってる人たちが、
普段Excelでどんな仕事してるのか興味ある
158デフォルトの名無しさん
垢版 |
2018/08/03(金) 22:24:24.13ID:GOZ9L8DI
Excelより優れた表計算ソフトはいまだにないからのお
2018/08/03(金) 22:44:29.83ID:qP1+Mw6P
知らないだけかもよ
2018/08/03(金) 22:51:02.21ID:TQSHsawm
例えあったとしても、デファクトスタンダードという地位はもう揺るぎないものだろう
2018/08/03(金) 23:02:27.33ID:IVrK95Nj
ハンバーガーとコカコーラは世界で一番売れてるから一番優秀な食品だとかいう話を思い出した
2018/08/03(金) 23:05:21.62ID:19fg4Hec
バーガーとコーラだけじゃあっという間に病気だよ
2018/08/03(金) 23:50:22.61ID:19fg4Hec
相変わらず具体例でねえなぁこのスレ
お前らほんとにVBA使ってんのか?www
2018/08/04(土) 00:14:17.09ID:HKzLzVCj
>>155
何作るってエクセル単独で何かするか
Accessに繋いでなんかするかぐらいだけど
Accessに繋ぐならクラス使った方がキレイにまとまるからクラス使うよ
2018/08/04(土) 07:34:19.25ID:h4pZIq0i
>>164
接続部分だけクラスにまとめるって感じ?
それならまぁ、わからんでもないけど・・・うーん
166デフォルトの名無しさん
垢版 |
2018/08/04(土) 08:36:12.58ID:hMaWSw1n
エクセルは簡単な関数までで出来ることに使う
定期で使ってコードを書くような事ならC#でWinアプリかWebアプリにする
そんな使い分けです
2018/08/04(土) 08:59:40.72ID:Pz55ajO/
ある文字が文字配列の要素の中に存在するかどうかを調べるには
for i = 0 to Ubound(配列)〜のようにして
添え字を使ったループで一個ずつ比較するしかないですかね?
Pythonなどのように、 値 in 配列 とかで一発で判定できると楽なのだが
2018/08/04(土) 09:27:21.51ID:iY2bfIdC
for eachあるよ
2018/08/04(土) 14:03:53.24ID:d9q3+5Xm
Worksheet Functionのmatchなら一発でしょ、インデックスはわからんけど
filter関数のほうが早いんだっけ?
てか職場の老害が作るコードがいちいちforでぶん回すコード書いててイライラ
2018/08/04(土) 14:10:44.90ID:AEBP847j
filterやmatchも中でforでぶん回してるよ
2018/08/04(土) 14:20:20.63ID:vm6Y2AFh
パフォーマンス無視でコードをシンプルにしたいだけなら Instr(Join( ))
2018/08/04(土) 14:50:32.42ID:MinsDCPQ
>>164
自分はAccessに繋ぐ所はクラス作らないからどんな所が上手くまとまると思うのか知りたいな。

自分はマ―クシートの管理と実際の用紙との比較をしやすいように管理上の結果(Excelシート)をForm上の用紙レイアウトに再現するようなプログラムでクラスを使ったのが良かった。
用紙上に配置するのはImageコントロールを使ったラジオボタンのようなものとテキストボックス、ラべル、他でユーザーが使う用紙にあわせて好きな位置に配置出来る編集モ―ドと配置後にデ―タにあわせてチェック状態を表示編集できる運用モードを持ったもの。
種類の違う可変個数のコントロールを同じように扱うのに便利。
2018/08/04(土) 15:05:27.11ID:iY2bfIdC
>>172
普通に接続して切断する処理はクラス使った方がキレイにまとまるよ
ファイル処理も同じ。
2018/08/04(土) 15:43:02.15ID:rFYImZyl
質問なのだが、エクセル関数とvba の使い分ける基準ってどうしてる?
2018/08/04(土) 16:55:00.51ID:K8sTmQ88
>>174
シート上で使うとき?
なければ作る。

コード上で使うとき?
簡潔に書けるほう、またはパフォーマンスのいい方。
>>174
2018/08/04(土) 17:18:02.49ID:/poCSM2A
>>167
文字配列ってなに?
Stringのことですか?
2018/08/04(土) 17:43:58.28ID:Pz55ajO/
>>176
このコードでいう test_string のことです
複数の値を取りうる入力項目のチェックなんかはいつもこうしています

Sub test()
Dim test_string As Variant
test_string = Array("one", "two", "three")

Dim i As Integer
For i = 0 To UBound(test_string)
If "one" = test_string(i) Then
MsgBox "one" & "はありまーす"
End If
Next
End Sub
2018/08/04(土) 17:49:50.34ID:rFYImZyl
シート上で使うとき!
2018/08/04(土) 17:51:01.98ID:/poCSM2A
>>177
ループで検索する、でいいじゃないですか。
一致(=)だけじゃなく Like での合致とかも選べるように汎用化しとくとなおよい
2018/08/04(土) 19:29:54.74ID:h4pZIq0i
>>174
重い時やミスしそうな処理が絡む時はvba
もちろん関数で実現できない時もvba

関数を使うのはビジュアルで見たい時

まぁ基本的には関数だな
2018/08/04(土) 19:58:42.71ID:FI6ie7QF
>>177
こういう処理は関数化した方がよい

Sub test()
  Dim test_string As Variant
  test_string = Array("one", "two", "three")

  If あるかな(test_string, "one") Then
    MsgBox "one" & "はありまーす"
  End If
End Sub

Function あるかな(a, b)
  If InStr(Join(a, "&"), b) Then
    あるかな = True
  Else
    あるかな = False
  End If
End Function
2018/08/04(土) 20:00:16.54ID:FI6ie7QF
バグ修正

Function あるかな(a, b)
If InStr("&" & Join(a, "&") & "&", "&" & b & "&") Then
あるかな = True
Else
あるかな = False
End If
End Function
2018/08/04(土) 20:08:45.16ID:ClJJf5ah
Functionの戻り値を関数名に代入する構文が最高に気持ち悪いんだけどどうにかならんの?
2018/08/04(土) 20:39:40.48ID:A9MJ7JgF
はじめまして。
下記のようなマクロを組もうと考えています。

x人の生徒がいます。
この生徒を1グループあたりy人となるようにzグループにわけます。
このときグループ毎の生徒のテストの平均点の差が小さく、またグループ毎の標準偏差の差も小さくしたいです。

このようなマクロを作るのにあたって、どのような方向性で作成していけば良いでしょうか。
2018/08/04(土) 21:04:07.47ID:nAdkHQiH
>>184
マクロ?
186デフォルトの名無しさん
垢版 |
2018/08/04(土) 21:04:16.50ID:u8rcbYXZ
>>184

→→→
←←←
→→→

こう割り振ればいんじゃないかな

A B C
-----
9 8 7
4 5 6
3 2 1
2018/08/04(土) 21:22:04.15ID:AH7fLvgn
>>177
> Dim test_string As Variant
> test_string = Array("one", "two", "three")
なんとなくだが名前はtest_stringsにして欲しいな

>>181
> If InStr(Join(a, "&"), b) Then
>  あるかな = True
> Else
>  あるかな = False
> End If
なんで
あるかな = InStr(Join(a, "&"), b)
って書かないんだろう…
2018/08/04(土) 21:33:22.58ID:BuSBdH9D
>>187
ほんこれ
ture/falseしか代入しないのに分岐する必要性がわからない。
2018/08/04(土) 21:38:34.48ID:h4pZIq0i
>>183
グローバル変数にでも代入してみるとか?
他の言語にも気持ち悪いとこいっぱいあるから気にしなくていいよ
C言語のint main()もそのint 0はどこへ返すんだよって気になるし
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況