12/07/28 21:35:05.52
前スレ
Excel総合相談所 103
スレリンク(bsoft板)
▼━ 質問のしかた ━━━━━━━━━━
★1 質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★2 要望は具体例や図を使って明確かつ具体的に。
★3 質問テンプレ(雛形)は必須じゃないけど、出来れば使ってね
▼━質問テンプレ (出来れば使ってね) ━━━━━━
【1 OSの種類 .】 Windows**
【2 Excelのバージョン 】 Excel**
【3 VBAが使えるか .】 はい・いいえ
【4 VBAでの回答の可否】 可・否
※【4】は、VBAはわからないけどコード書いてくれるならVBAでもいいって場合は「可」
VBAを使うのは避けたいって場合は「否」にしましょう。丸投げする場合は、必要に応じてブックをアップすること。
▼━質問時の注意・決まり事━━━━━━━━━━
・1 現行スレ内で既出の質問が無いか、ページ内検索をしよう。(Ctrl+F)
・2 図やコードを書く場合、TABや連続する半角スペースは無視されるので注意
・3 VBAコードを貼る場合は、部分的に伏せたり省略したりせずに全て貼りましょう。何レス使っても構いません。
・4 2回目以降の質問では名前欄に初回質問の番号を入れよう。
・5 回答内容でわからない部分があっても、すぐに聞き返さずにヘルプやGoogleなどで検索しましょう。
・6 バグ・動作上の不都合・仕様に関する質問などはマイクロソフトのサポートを受けましょう。
ここは技術的な質問のみで。
2:名無しさん@そうだ選挙にいこう
12/07/28 21:46:35.74
▼━質問時の注意・決まり事━━━━━━━━━━
・1 現行スレ内で既出の質問が無いか、ページ内検索をしよう。(Ctrl+F)
・2 図やコードを書く場合、TABや連続する半角スペースは無視されるので注意
・3 VBAコードを貼る場合は、部分的に伏せたり省略したりせずに全て貼りましょう。何レス使っても構いません。
・4 2回目以降の質問では名前欄に初回質問の番号を入れよう。
・5 回答内容でわからない部分があっても、すぐに聞き返さずにヘルプやGoogleなどで検索しましょう。
・6 バグ・動作上の不都合・仕様に関する質問などはマイクロソフトのサポートを受けましょう。
ここは技術的な質問のみで。
・7 VBAはプログラム言語のVisualBasic(6以前)に近い処理が可能で Excelに関係ないことも出来ます。
Excelの操作に関係ない部分は、スレ違いなのでここで聞かずにVB言語やAPI、COMについて自分で勉強し、
どうしてもわからない部分はVBスレやAPIスレなどの該当スレで質問しましょう。
但し向こうはプログラマのスレなので、構文規則などの最低限の事は覚えてから質問しましょう。
ここみたいに丸投げはダメですよ。
・8 うまくいかなかったにしても自分でやってみたこと(組んだ数式やコード)は書きましょう。
例えエラーになる式やコードでも、何をやりたいのかを的確に把握する手がかりになります。
その上で、どううまくいかないのかを具体的に書きましょう。
エラーが出るなら、何処でどういうエラーが出るのか、
想定外の結果が出るなら、条件と想定上の結果、実際の結果などを詳しく書いてください。
・9 マルチはダメ。一度マルチしたら、謝っても他のスレの質問を取り下げても回答は得られないと思ってください。
・A テキストボックス(エディトボックス)、コンボボックス(ドロップダウンリスト)、リストボックス、コマンドボタン、
チェックボックス、オプションボタン(ラジオボタン)、スピンボタン、スクロールバー、等の質問をするときは、
ユーザーフォーム、コントロールオブジェクト、フォームオブジェクトのどれなのかを必ず書くこと。
・B 書籍や解説サイトの紹介以来はスレ以外。ここは技術的な質問のみで。
3:名無しさん@そうだ選挙にいこう
12/07/28 21:46:51.48
★ルールを無視すると…
>>1-2あたりのルールに従うか否かは自由だけど、従わないと以下のような不利益があるよ
★1.マルチをしてしまったら…
A.謝っても他での質問を取り下げても、以後その質問に対する回答は付かない物と思ってください。
それが嫌なら初めからマルチなんてしないように。>>2にマルチ禁止と書いてあり、
マルチの意味が分からなければ検索すれば出てくるので、「知らなかった」は通用しません。
★2.>>1★4に従わず、必要な情報を出さないと…
A.自分の使用しているバージョンで使えない機能を答えられたり、VBA使えないとか使いたくないと書かないと
VBAでの解決OKで自分でコード書けるものと勝手に解釈されて、「VBAで出来るから自分でコード書いて」程度の
適当な回答を返されたりします。また、ここではVBAコード書けない人の丸投げ依頼を許可してますが
これはきちんとルールに従って質問、依頼した人のみの特権です。
★3.情報・条件を後出しすると…
A.後から出された情報は意図的に無視されたり、質問自体を放置されたりします。
>>1★4の必須情報はもちろんのこと、要望や条件、既に試したことなどは、
長文になってもいいので詳細かつ明確かつ具体的に書きましょう。
★VBAについて
VBAとは、『Visual Basic for Application』の略で
Application
├Workbooks
|└Workbook
| ├Worksheets
| |└Worksheet
というApplication以下のオブジェクトを、VB言語で操作するものを指します。
例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、
セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。
4:名無しさん@そうだ選挙にいこう
12/07/28 21:47:13.32
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)
▼環境・書式
・ 列数を256列以上、行数を65'536行以上に増やす (Excel2007以降では16'384列、1'048'579行扱える)
・ Excel2003以前で条件付き書式を3つ以上設定する (文字色だけなら、入力規則でも3つ設定可能。それ以外はVBA)
・ 行の高さを0.25きざみ以下の単位で指定する
・ セル内の文字を○で囲む、一部のみ2段にする (オートシェイプ、オブジェクト)
・ オートフィルタで英字の大小文字を区別する (小文字 → 半角、大文字 → 全角、と使い分ける)
・ 祝日を判断する (作業セルに祝日を列挙、VBA)
・ 同一列内でセル(行)ごとに列幅を変える、同一行内でセル(列)ごとに列高を変える (セルの結合)
・ ヘッダー・フッターのページ番号の開始番号任意指定、ページ番号演算、同シート内で違ったものを指定など
・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する
・ 罫線幅の自由指定
・ 表示形式で「10/ 1」といった書式を指定し、日付が一桁の場合のみ日付の前にスペースを入れる (TEXT関数、VBA)
・ 書式設定の「折り返して全体を表示する」と「縮小して全体を表示する」を同時に使う (折り返しを有効にして、手動で文字サイズを調整)
▼操作
・ ファイラーの右クリックメニューからの新規作成で、Excelで設定したシート数のブックを作る (任意のシート数のテンプレートを作成)
・ 複数シートを選択して入力規則やシートの保護を設定する (VBA)
・ オートコンプリート機能を、別列や離れたセルで動作させる (VBA)
・ 選択範囲から一部を除く、Ctrlを押しながらの複数選択で一部を取り消す (VBA)
・ 優先キーを3つ以上指定しての並べ替え (優先度の低い方から順に並べ替える)
・ 1セルを分割 (分割したいセル以外を結合)
5:名無しさん@そうだ選挙にいこう
12/07/28 21:47:35.09
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)
▼数式・関数
・ 表示形式以外の書式の取得設定、書式情報を条件とする数式 (ユーザー定義関数)
・ 関数式でセルの選択状態を取得する (VBA)
・ セルの値でパスを補完して、開いてないブックのセルを参照する (VBA)
・ 入力したセルに結果を返す (VBA)
・ 範囲を引数にしての文字列連結 (ユーザー定義関数)
・ 値の書き換え、値の保持 (VBA)
・ 複数の結果を抽出、不定な数の結果を返す (VBA、結果の最大数が解っていれば最大数以上の式を論理式で組む)
・ 空白のセルの部分を上詰め、左詰めなどで表示する (作業セルを使って別セルに詰めて表示なら可能、それ以外はVBA)
・ VLOOKUP,HLOOKUP,MATCH等の関数で、検索語を全半角両方にマッチさせる (ユーザー定義関数)
▼VBA
・ ExecuteExcel4Macroの参照で空セルと0値を区別する
・ セルの値や変数値で直接変数名を指定する (配列、コレクション)
・ VBのコントロール配列と同じような操作をしたい
(イベント以外ならコントロール名を「同名+連番」にしてControls(名前 & インデックス)で処理、イベントはクラスでWithEvents)
▼ユーザーフォーム
・ フォーム上から変更したプロパティ値の保持 (シートや外部ファイルに書き出して、次回読み込む)
▼グラフ
・ 棒グラフでひとつだけ突出したデータがあった場合に波線を入れて位置を合わせる
(オートシェイプなどで見た目だけそうなるように弄る、別アプリでグラフを作り、オブジェクトとして挿入)
┌┐
~~
||
6:名無しさん@そうだ選挙にいこう
12/07/28 21:47:58.28
上記 「Excelで出来ないこと、仕様上の制限」 は、一般的に出来ないとされていること、出来ないと思われるものです。
間違いがある可能性もあるので、上記に挙がってるもので「コレはこうすれば出来るよ」というものがあったらご指摘ください。
Excel2010についても未確認な項目が多いので変更点が有ればご指摘下さい。
また、ここに書かれてないことでも、Excelで出来ないことはたくさんあります。
ここに書かれてないからといって必ず出来るはずだなんて思わないように。
>▼環境・書式
> ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する
補足
2007以降ではページレイアウトビューの表示時に限り、幅・高さともcm単位で表示され、
指定も同じくcm単位でできる。
ただし大元がインチ系なのでなかなかピタリの値は出ない。1cm→0.98cmのように
近い値に勝手に丸められる。
7:名無しさん@そうだ選挙にいこう
12/07/28 22:06:02.59
<<1-6
おつ
8:名無しさん@そうだ選挙にいこう
12/07/28 22:07:29.27
>>7
>>7
9:名無しさん@そうだ選挙にいこう
12/07/28 22:17:25.96
>>1は乙
>>2-6
勝手にテンプレを追加するな
ということで以降>>2-6は守る必要なしです
(守りたい人は各自勝手に守れば良いが他人へ強制するものではない)
10:名無しさん@そうだ選挙にいこう
12/07/28 22:36:08.79
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel2010
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
VLOOKUP関数みたいに表示したいセル内に関数を入れないで、範囲からコピーしてくるみたいなVBAってありますか?
VLOOKUP関数だと表示した文章を編集できないので、VLOOKUP関数みたいに検索して表示する機能でかつ、表示したものをセル内で編集できるようにするには
どういうVBAを学べばいいですか?
11:名無しさん@そうだ選挙にいこう
12/07/28 22:48:59.32
Set A = Workbooks("WB1.xls").Worksheets("WS1")
A.Select
Selectできないのは何故なんだ?
12:名無しさん@そうだ選挙にいこう
12/07/29 00:07:15.64
>>10
ヘルプ読め
13:名無しさん@そうだ選挙にいこう
12/07/29 00:15:54.60
>>11
「Selectできない」ってのは何かエラーが出るってことか?
端折らずありのままを書いてくれんか
エスパーなんて世の中にはいないと思ったほうがいい
14:名無しさん@そうだ選挙にいこう
12/07/29 01:44:24.76
>>12
ヘルプで解決できるならこんなところこないだろ
15:名無しさん@そうだ選挙にいこう
12/07/29 06:11:07.75
>>11
エラー番号9「インデックスが有効範囲にありません」なら、シート名かブック名の間違いってとこ。その内容なら1だけ全角半角
間違ってるとかそんな感じの予感。
16:名無しさん@そうだ選挙にいこう
12/07/29 11:11:31.03
前スレ>>996
アクセスは必要ないよ。ただOSによってプロバイダーへの接続文字列が変わるので注意。
あとアクセスから引っ張ってくる部分を質問しても、スレ違いだといわれると思うよ。
17:名無しさん@そうだ選挙にいこう
12/07/29 12:03:37.75
>>10
ctrl + f で十分じゃん。
18:名無しさん@そうだ選挙にいこう
12/07/29 13:10:58.84
>>10
> VLOOKUP関数みたいに表示したいセル内に関数を入れないで、範囲からコピーしてくるみたいなVBAってありますか?
worksheetfunction.vlookup
> 表示したものをセル内で編集できるようにするには
意味がよくわからん?
19:名無しさん@そうだ選挙にいこう
12/07/29 16:22:41.83
【1 OSの種類 .】 Windows7 64ビット
【2 Excelのバージョン 】 Excel2010
【3 VBAが使えるか .】 はい(少しは)
【4 VBAでの回答の可否】 可・否
ブック名 インデックス.xlsx
シート名 index1
A列 ランク
B列 ネタデータ
データファイル
I列 ネタ
記載させたい列はH列
H列にI列のネタに対応するランクをインデックス.xlsxのindex1シートから
拾って記載させたい
I列が空白の時は勿論H列の空白で、またインデックス.xlsxのネタデータに無いのも
有ったりするんで、そういう時も空白で構わない
というものなんですがお願いします
20:名無しさん@そうだ選挙にいこう
12/07/29 16:53:22.36
>>19
match関数とindex関数を組み合わせればできる
21:11
12/07/29 18:30:59.77
>>13 >>15
┌───────────┐
| 実行時エラー'1004': |
| Worksheet クラスの Selelct メソッドが矢敗しました。|
└───────────┘
22:名無しさん@そうだ選挙にいこう
12/07/29 18:43:23.09
>>21
シートが非表示なんじゃね?
まぁ本気で解決したいと思ってるなら対象のブックをアップしろ
23:名無しさん@そうだ選挙にいこう
12/07/29 18:47:13.76
>>9
ヒント:勝手に追加ではなく、3スレ前に1,2人の意見で勝手に消されただけで、元から有ったもの
24:名無しさん@そうだ選挙にいこう
12/07/29 18:55:03.74
で今回また勝手に増やすと
25:名無しさん@そうだ選挙にいこう
12/07/29 19:03:23.10
あれどっか増えてた?
そこまでよく見てなかったけど
26:名無しさん@そうだ選挙にいこう
12/07/29 19:03:54.92
テンプレなんかどうでもいい
27:11
12/07/29 19:05:00.70
>>22
URLリンク(nullpoarchives.orz.hm)
28:名無しさん@そうだ選挙にいこう
12/07/29 19:11:36.27
>>26
だよね
>>9とか何ムキになってるんだろうな
29:名無しさん@そうだ選挙にいこう
12/07/29 19:16:32.72
>>27
ちゃんと、selectされたよ
30:名無しさん@そうだ選挙にいこう
12/07/29 19:23:06.40
>>28
テンプレ盾にしてスレチだ何だとうるさい馬鹿が出てくるのがウザイ
31:名無しさん@そうだ選挙にいこう
12/07/29 19:25:11.97
>>27
こちらも問題ない。
他のBookが開かれていないか?
WB1がactivebookじゃないとだめだよ
32:11
12/07/29 19:28:32.66
>>29
ファイルが間違ってたのに、本当にSelectできましたか?
謎ですね・・・
修正版を再うp
URLリンク(nullpoarchives.orz.hm)
33:11
12/07/29 19:29:20.77
>>31
>WB1がactivebookじゃないとだめだよ
もうね(ry
34:11
12/07/29 19:32:12.72
てゆーか、
>他のBookが開かれていないか?
他のBookを開いてるから、Set A = Workbooks("WB1.xls").Worksheets("WS1")と
書いてるわけで、他のBookを開いてなかtt(ry
35:名無しさん@そうだ選挙にいこう
12/07/29 19:36:34.03
>>32
やっぱり、selectできたよ
というか、同じファイルに思えるんだが?
36:名無しさん@そうだ選挙にいこう
12/07/29 19:46:19.14
テンプレ、会ってもなくてもいいけどいくらなんでも長すぎる
誰も読んでないと思うぞ
37:名無しさん@そうだ選挙にいこう
12/07/29 19:50:02.93
同じファイルというか同じURLだね
38:11
12/07/29 20:20:00.18
>>37
同じファイル名だけど中身は違います。
うp先のロダは、削除しても欠番にはならないので
このような現象が起きます。
実際に>>11のマクロで実行せず、まともに答えようとしてない
人たちばかりなので、これ以上のことは求めません。
39:名無しさん@そうだ選挙にいこう
12/07/29 20:21:49.68
>>38
だからselectされるって
40:名無しさん@そうだ選挙にいこう
12/07/29 20:42:07.96
>>38
SETはできたけど、selectできないってことか。
41:名無しさん@そうだ選挙にいこう
12/07/29 21:46:32.52
URLリンク(nullpoarchives.orz.hm)
10984がおもいっきり欠番になってて笑った
間違えて同じURLを書いてしまったなら素直にそういえばいいのにね
42:名無しさん@そうだ選挙にいこう
12/07/29 21:47:05.80
10948か、まぁいいか
43:名無しさん@そうだ選挙にいこう
12/07/29 22:07:34.01
>>36
別に最初に読ませる為のテンプレじゃないんだから、
質問前の段階では誰も読んでなくて医院で内科医?
例えば「コンボボックスでこんなこと出来ますか?」なんて質問が来た時に
「>>2・A読んでどれなのかちゃんと書いて」だけで、毎度同じ説明しなくて済む
そういう使い方が出来れば良いだけで、スレ違いはまだしも>>2の情報不備とかは
一度反したら訂正しても以後全く答えてもらえないとかってわけじゃないんだし
44:名無しさん@そうだ選挙にいこう
12/07/29 22:09:54.55
>>38
再現するマクロも含めたブックをアップしろよ、アホか
45:11
12/07/29 22:25:45.50
>>41
書き方を間違えたな。
①一度うpしたらファイルナンバーが10948になった。
②間違えたので10948を削除
③修正を再うpしたらファオルナンバーが10948だった。
④マトモな回答がナカタから10948を削除 ←今ココ
>>44
11に書いてあるだろ?
ブックまでうpしないと分からないおバカちゃんか?
46:名無しさん@そうだ選挙にいこう
12/07/29 22:27:10.18
>>45
環境を揃えるのは基本中の基本。
47:名無しさん@そうだ選挙にいこう
12/07/29 22:30:34.76
Set A = Workbooks("WB1.xls").Worksheets("WS1")
A.Activate
A.Select
でいいんじゃね?
48:名無しさん@そうだ選挙にいこう
12/07/29 22:59:50.31
>他のBookが開かれていないか?
WB1.xlsにマクロを書いてselectさせるってことかw
49:名無しさん@そうだ選挙にいこう
12/07/29 23:02:04.34
>>33
意味わからないんだけど。
結局、WB1がActiveなの?
50:名無しさん@そうだ選挙にいこう
12/07/29 23:08:11.18
>>48
そうだよ
selectするだろ?
51:名無しさん@そうだ選挙にいこう
12/07/29 23:10:06.40
>>48
もう原因はわかっただろ
52:名無しさん@そうだ選挙にいこう
12/07/29 23:18:55.64
WB1.xlsにマクロを書いて
Set A = Workbooks("WB1.xls").Worksheets("WS1")って無駄じゃね?
53:名無しさん@そうだ選挙にいこう
12/07/29 23:22:00.77
>>52
無駄とかじゃなくて、それでエラーにならないのは何故かってこと
54:名無しさん@そうだ選挙にいこう
12/07/29 23:25:26.73
Set A = Workbooks("WB1.xls").Worksheets("WS1")と書くなら
WB1.xls以外にマクロを書くだろ?(jk
今宵の先生はレベルが低い自己中ばかり(一人数役?)だから
質問者の意図がわかってないようだ
55:名無しさん@そうだ選挙にいこう
12/07/29 23:41:00.92
>>54
いやだから>>31で答えが出てるってばw
仕様だよ
回答が出てるのに聞くからおかしなことになる
ちなみにsheet1を選択してる状態で
Worksheets("sheet2").Range("a1").Select
これもエラーになる
理由?マイクロソフトに聞いておくれ
俺はselectを滅多に使わないので知らないし困らない
56:名無しさん@そうだ選挙にいこう
12/07/29 23:47:36.07
>>54
>>11に答えてやってくれよ。
Selectできないのは何故なんだ?
57:名無しさん@そうだ選挙にいこう
12/07/29 23:55:54.02
>他のBookが開かれていないか?
こんなことを書くのもおかしいって気付けよ。
うpされた10948.xls(WB1.xls)にはマクロが書かれてなかった。
つまり、別のブックに>>11のマクロを書いてるから、他のBookは開いてることになる。
58:名無しさん@そうだ選挙にいこう
12/07/29 23:57:51.05
仕様だけど しょうがない
59:名無しさん@そうだ選挙にいこう
12/07/29 23:59:25.33
>>57
ごめんね。
60:名無しさん@そうだ選挙にいこう
12/07/30 02:37:02.19
質問者がまともに情報開示せず
回答者が駄目とか誹謗する流れって前スレでもあったな
61:名無しさん@そうだ選挙にいこう
12/07/30 02:38:27.93
多分いつでもどこでも、この流れはあるのだろう。
特に今は時期が時期だし。気にしないのが一番。
62:名無しさん@そうだ選挙にいこう
12/07/30 07:30:50.46
>>16
ありがとう。
アクセスなくてもいいなら勉強してみます。
63:名無しさん@そうだ選挙にいこう
12/07/30 15:14:02.64
URLリンク(nullpoarchives.orz.hm)
列番号、行番号のフォントってどこで変更できるんでしょうか?
64:名無しさん@そうだ選挙にいこう
12/07/30 15:22:33.49
>>63
オプションの全般タブの標準フォントを変える。
65:名無しさん@そうだ選挙にいこう
12/07/30 15:24:52.85
>>64
できました、ありがとうございます!
66:名無しさん@そうだ選挙にいこう
12/07/30 20:03:59.93
60 2012/07/30(月) 02:37:02.19 句読点なし
61 2012/07/30(月) 02:38:27.93 句読点あり
同じ野郎が句読点の有無で誤魔化してもバレバレだぞw
もうちょっと工夫しろよw
67:名無しさん@そうだ選挙にいこう
12/07/30 20:11:42.54
>>66
すごい!よく同一人物だって見抜いたね!神!!
68:名無しさん@そうだ選挙にいこう
12/07/30 20:21:49.15
今度はageとsage?
69:名無しさん@そうだ選挙にいこう
12/07/30 20:26:26.39
>>66
おれ>>60だけど>>61はおれじゃないよ
70:61
12/07/30 20:44:35.57
60を書いたのは俺です。
すいませんでした。
71:名無しさん@そうだ選挙にいこう
12/07/30 21:01:09.80
誰がどれ書いたとかマジどーでもいー
11がくそやろうだという事実には何の影響も無い
72:名無しさん@そうだ選挙にいこう
12/07/30 21:22:36.33
>>71
エクセルの能力が高いと思って天狗になっていたのと、読解力が足りなかっただけ。
エクセル基準で人を見下す>>71の方がよほど人間として劣っている。
73:11
12/07/30 21:45:35.44
おいおい、過去ログを読み直してみろ。
何で俺が叩かれなきゃならんのだ?
ブックをうpしろっていうから、わざわざうpをし、
具体的なマクロを示したのに、
「シートが非表示なんじゃね?」とか
「他のBookが開かれていないか?」とか
トンチンカンな回答するバカ先生を非難しろよ。
>>29なんて、俺が間違ったブックをうpしたのに
「ちゃんと、selectされたよ」なんて書く始末。
もうね(ry
「SETはできたけど、selectできないってことか」とか
「WB1.xlsにマクロを書いてselectさせるってことか」なんて
書いてるバカもいた。
極めつけは>>60だ。
具体的に書いて、要望通りブックもうpしたのに
「質問者がまともに情報開示せず」とかよく書けたもんだな。
お前らのバカ自慢もほどほどにしてくれ。
74:名無しさん@そうだ選挙にいこう
12/07/30 22:16:43.75
だよな。
75:名無しさん@そうだ選挙にいこう
12/07/30 22:27:41.33
>>73
よく飽きないなw
76:名無しさん@そうだ選挙にいこう
12/07/30 22:36:15.48
>>11
間違えたファイルUpしといてどの口で言ってんだか・・・
言っとくが俺はそのファイル見てないからどんなんだか知らんけど
ここまでのやり取りを見て>>11がコミュ障なのは分かった
77:名無しさん@そうだ選挙にいこう
12/07/30 22:36:57.31
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel2010
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
DAVERAGE関数は、表から指定条件の平均を求めるじゃないですか。
これのMAX関数バージョン(最大値を表示する)ありますか?
78:名無しさん@そうだ選挙にいこう
12/07/30 22:40:40.69
>>73
とりあえず前提として、間違ってる回答は無視して、
正しい回答のみをクローズアップすることは許してもらいたい
2chだしな。まぁここは諦めてくれ。
この前提を許せないならエクセル教室でもヤフー知恵袋でも言って下さいまし。
で、>>31で、正しい回答をしているのもかかわらず
(ry
などをつけたふざけた回答をしたのは事実だよね。
念のため言っておくと、(ry はバカにしている表現だよね。
別にそのつもりがなくても聞く方はそう感じます。
あと、>>21でもなぜかわざと誤字二回してるよね。
ついでにいうと>>45でも一回誤字。明らかに直してないよね。まぁこれはどうでもいい。
ここまでわざと反感を買わせる言動をしながら、
言い方を変えれば喧嘩を売りながらも回答をしてくれたことに対してお礼もしてないよね
別にこのスレで礼がないことに対して、今更何も感じない。むしろ礼を求める変態を諌めてるんだけど。
79:名無しさん@そうだ選挙にいこう
12/07/30 22:42:03.08
>>77
DMAXじゃあかんのか?
80:名無しさん@そうだ選挙にいこう
12/07/30 22:48:12.88
2ちゃんで誤字を指摘とか
81:名無しさん@そうだ選挙にいこう
12/07/30 22:52:24.81
>>78
それは正論だがいかんせん相手はコミュ障
暖簾に腕押しですよ
82:名無しさん@そうだ選挙にいこう
12/07/30 22:52:52.86
>>78
回答をしてくれたことに対してお礼もしてない とチクリと釘を刺すも
むしろ礼を求める変態を諌めてる とは恐れ入った。
83:78
12/07/30 22:54:48.54
投稿してしまった。
でも今回は、解決したからいい、と考えたほうがいいよ。現実ではともかく、2chだしね。
誤字の件は恐らく、スレを荒らそうとしたんだろうね。それか相手して欲しかったのか?
これはどっちでもいいがな。
今までの発言から、小学生?中学生?中学生かな。まぁでも、中学生でvba使えるというのは、良スキルの持ち主だよ。
恐らく今は周りから変人扱いされてるようだけど、
もうちょっと頑張ればみんなを見返せるようになる。まぁ10年後だがな・・・
小学生ならもっとすごいぞ。
「継続は力なり」だ。詳しくはぐぐれw
大体、元々がselect、エクセルの仕様というどうしようも無いところが原因なだけで、
考え方としては悪くないんだ
君が悪いわけではない。これは経験をつまないと絶対に納得出来ないと思う。
ちなみに俺は>>55ね。
もしアプリを作りたくなったら一度作ってみて欲しい
バグが怒った理由がすぐに分かると思う。
もう一度
「継続は力なり」だ。
頑張れよ!
84:名無しさん@そうだ選挙にいこう
12/07/30 23:09:00.93
>>83
誤字の件は恐らく、スレを荒らそうとしたんだろうね。それか相手して欲しかったのか?
85:11
12/07/30 23:10:15.54
>>76
俺をコミュ障と言うのは構わんが、お前は何?
ファイルを見てないなら教えてやるが、間違えたファイルはシート名だ。
したがって、Set A = Workbooks("WB1.xls").Worksheets("WS1")では動かない。
だからなぜ>>29が「ちゃんと、selectされたよ」って書いたのか俺には
理解できないのだが、これについてお前はどう思う?
>>78
正しい回答をしていると書いてるが、他のBookを開いてる状態だから
31は間違ってる。>>34を読め。書いてあるから。
(ry っていうのは(略 または (省略 であって、別に小馬鹿にしてる
わけではない。
てか、バカ相手に疲れた。
寝るわ
86:名無しさん@そうだ選挙にいこう
12/07/30 23:12:27.33
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel2010
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
曜日あわせについてです
毎月の売上を、前年比、前月比を出したいのですが、日にちベースとですと同日で日曜日と月曜日だった場合に前年比にだいぶ差がでます。
そこで、前年同曜日と比較したいのですが、どのようにすればよいでしょうか?
イメージ的には
コレが
URLリンク(i.imgur.com)
コウなるとうれしいです。
URLリンク(i.imgur.com)
B~F列は作業スペースなので実際には表示させません。
他に作業列が増えても全然問題ありません。
google検索した感じだと、-364日すればいいとかありましたがよくわかりませんでした。
よろしくおねがいします。
87:名無しさん@そうだ選挙にいこう
12/07/30 23:17:25.93
>前年同曜日と比較したい
あぁ、そうですか
88:名無しさん@そうだ選挙にいこう
12/07/30 23:22:38.45
>>86
URLリンク(i.imgur.com)
のK~Mの日付とN~Pの曜日には何らかの関係性があるの?
比較しやすいようにあなたの好きなようにデータを入力すればいいと思うけど
どこで悩んでるのかわからん
89:名無しさん@そうだ選挙にいこう
12/07/30 23:48:02.34
>>85
>(ry っていうのは(略 または (省略 であって、別に小馬鹿にしてる
>わけではない。
>てか、バカ相手に疲れた。
こういう書き方しかできないの?
あるいはこういう書き方に問題があると気づいてないの?
そういう部分を指してコミュニケーション障害と呼ぶわけですよ。
まぁ理解できないだろうからこれ以上は言わないけど。
90:78
12/07/30 23:56:46.25
>>85
おk,おk
自覚がないなら痛い大人であり、単に要領の悪い方です。
相手にした俺が悪かった。
これから>>11>>85が何をいっても>>78を叩いて下さい。
全て相手にした俺が悪かった。申し訳ない。
91:名無しさん@そうだ選挙にいこう
12/07/31 00:01:00.17
11氏もアレだが、それに勝るとも劣らぬ78氏もアレだな
まだ続けるなら、こっち↓でやってくれ
スレリンク(bsoft板)
92:名無しさん@そうだ選挙にいこう
12/07/31 00:01:42.35
教えてちゃんですみません。
行の引き算でオートサムを用いて
1行目)100
2行目)200
3行目)400
4行目)800
の1行目-2行目、2行目-3行目、~10行目-11行目、11行目-12行目のような連続した引き算を自動的にし続ける関数は何でしょうか?
93:名無しさん@そうだ選挙にいこう
12/07/31 00:13:02.60
自動的にし続けたら、やがてオーバーフローになってまう~
94:名無しさん@そうだ選挙にいこう
12/07/31 00:24:33.05
>>86
こういうことでいいのかな?
=IF(WEEKDAY(A1,1)=WEEKDAY(DATE(YEAR(A1),MONTH(A1)-1,DAY(A1)),1),
WEEKDAY(DATE(YEAR(A1),MONTH(A1)-1,DAY(A1)),1),DATE(YEAR(A1),
MONTH(A1)-1,DAY(A1))+(7-(ABS(WEEKDAY(A1,1)-WEEKDAY(DATE(YEAR(A1),MONTH(A1)-1,DAY(A1)),1)))))
とりあえ先月分のみの計算。
95:94
12/07/31 00:28:49.82
あ、よく見たらなんか違うわ
96:名無しさん@そうだ選挙にいこう
12/07/31 01:01:25.41
こうか。
=IF(WEEKDAY(A1,1)=WEEKDAY(DATE(YEAR(A1),MONTH(A1)-1,DAY(A1)),1),
DATE(YEAR(A1),MONTH(A1)-1,DAY(A1)),DATE(YEAR(A1),MONTH(A1)-1,DAY(A1))
+IF(WEEKDAY(A1,1)>WEEKDAY(DATE(YEAR(A1),MONTH(A1)-1,DAY(A1)),1),WEEKDAY(A1,1)-WEEKDAY(DATE(YEAR(A1),MONTH(A1)-1,DAY(A1)),1),
7-(ABS(WEEKDAY(A1,1)-WEEKDAY(DATE(YEAR(A1),MONTH(A1)-1,DAY(A1)),1)))))
結論から言うと作業列を使えだなw
97:名無しさん@そうだ選挙にいこう
12/07/31 01:18:26.22
>>91
すまんかった
98:名無しさん@そうだ選挙にいこう
12/07/31 01:20:53.71
>>92
オートサムってのがよくわからない、というか多分無い
sum関数のことかな?
そして結果がどこに入るのかもよくわからない
言ってる意味がわからなければ、どこのセルに、どういう結果を入れたいかを詳しく書いて欲しい
99:名無しさん@そうだ選挙にいこう
12/07/31 01:27:02.76
=A1-A2
つうことじゃないのか。A列に累計の売り上げが入るから
差分で日ごとの売り上げを逆算するとかそういうことをしたいのかと思った。
100:名無しさん@そうだ選挙にいこう
12/07/31 03:22:28.79
【1 OSの種類 .】 Windows 7
【2 Excelのバージョン 】 Excel2012
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
日ごとに発注される商品(金額バラバラ)があってそれの金額を日ごとに集計したいのですが
今現在下記スクリーンショットのような感じで
URLリンク(cdn.uploda.cc)
発注金額以下のセルには
=(C3*$C$2)+(D3*$D$2)+(E3*$E$2)・・・・
として、表示しています。
これだと、商品が増える度に修正しないとダメなので非常にめんどくさいです。
また商品数が膨大になると上記の式がA、B、C、D・・・AA、BB、CCと、かなり長い式になってしまうので
もっとスマートに表示させる方法は無いでしょうか?
よろしくお願い致します。
101:100
12/07/31 03:23:21.97
すいません。
>>100はExcel2012ではなく2010の間違いです。
102:名無しさん@そうだ選挙にいこう
12/07/31 03:30:13.52
>>101
=SUMPRODUCT(C7:G7,$C$2:$G$2)
103:名無しさん@そうだ選挙にいこう
12/07/31 04:04:15.35
>>102
ありがとうございます!
思い通りの事が出来ました。
104:名無しさん@そうだ選挙にいこう
12/07/31 06:33:40.11
エクセル2007・2010のテーブルとVBAについて質問
2007からあるテーブルと構造化参照を、VLOOKUP等の関数でよく使ってます。列・範囲の指定が楽なのと自動的に範囲が変わるのが便利なので。
VBAにおいてはこのテーブルを扱う関数などは何も追加されてないのでしょうか?
データの追加・削除・検索など何か便利な機能あるなら教えてほしいです。
現状で不便を感じている事が一件
1行目見出し・2行目空状態の新しいテーブルに下記の方法でデータを入れようとするとテーブルの外に入ってしまいます。
Dim R as long
R = .cells(rows.count,1).end(xlup).row + 1
.cells(r,1).value = "データ"
.cells(r,2).value = "データ"
テーブルに1件以上データが入ってる場合はテーブルの最下行・テーブルの中にデータが追加されるが、空の場合3行目のテーブルの外
に追加されます。現状ではダミーデータ1件入れて、運用後にダミーを消してますが、データを消して新規に運用始める時に忘れていたら
問題が出てしまいます。
かと言って毎回テーブルが新規かどうかの判断処理をするのもなにか無駄な気がします。
105:名無しさん@そうだ選挙にいこう
12/07/31 14:39:51.68
まとめ.xls
JAN 商品名 A店 B店 C店
490101~ シャーペン |
490000~ マジック
490110~ えんぴつ
…
…
実績.xls
JAN 商品名 A店 B店 C店
490110~ えんぴつ 100 200 300
490101~ シャーペン 150 250 400
490000~ マジック 200 300 100
…
…
実績.xls から まとめ.xls に数値を移し変えるのに
=VLOOKUP($A2,'[実績.xls]Sheet1'!$A$1:$S$100,3,FALSE)
を使ってます。
この数式で右にフィルしたときにFALSEの前の3という値が変わりません。
3をオートフィルで変化させる方法は何かありませんか?
106:名無しさん@そうだ選挙にいこう
12/07/31 14:57:44.90
>>105
column
107:名無しさん@そうだ選挙にいこう
12/07/31 17:38:02.65
>>96
サンクスです。
作業列を使うのは問題ないんですが、どうに使っていいのかさっぱり…
最終的に前年比や前月比(対比ってやつ?)が見れればいいのですが、数字もすぐに見れたほうがわかりやすいので…って感じです。
108:名無しさん@そうだ選挙にいこう
12/07/31 18:19:23.41
正直あのSSじゃ何がしたいのかわからんよ。
対象日と曜日が合致する至近の日付を比較対照にしたいのかと想像したのだけれど。
その日付が求められれば、あとはVLOOKUPなりを使って必要なデータを引っ張るだけじゃないの。
作業列に関しては解りやすければどうでもいいよ。そりゃ、他人が見ても解りやすいのが理想だけれど、
まずは自分が見て解りやすくないことには話にならない。まぁ>>96は明らかにやりすぎだけれどw
109:名無しさん@そうだ選挙にいこう
12/07/31 20:06:32.83
低レベルな先生はgdgd書かずに黙ってろ!
110:名無しさん@そうだ選挙にいこう
12/07/31 20:26:50.94
>>104
そのコードエラーでるよ
最初から最後まで貼り付けて
111:名無しさん@そうだ選挙にいこう
12/07/31 20:57:58.16
>>110
ごめんWith使う癖でそのまま書いてました。
Dim R as long
With Worksheets("Sheet1")
R = .cells(rows.count,1).end(xlup).row + 1
.cells(r,1).value = "データ"
.cells(r,2).value = "データ"
end with
みたいな感じです。
VBAのみで使うなら別にテーブルにする必要はないですがワークシート側で関数使う場合にテーブルの方が便利なので何とかしたいです。
112:名無しさん@そうだ選挙にいこう
12/07/31 22:11:22.96
ファイル-オプションとクリックするとオプション画面が一瞬表示され、すぐに閉じてしまいます。
また、新a規にbookを開いて、何か入力し、保存する必要がないので、閉じようとすると、
「book1への保存を変更しますか?」となり、「名前を付けて保存」画面になってしまいます。
回避方法を教えていただけますでしょうか?
113:名無しさん@そうだ選挙にいこう
12/07/31 23:00:21.22
>>111
ifで分岐させるしか無い
if 0 = ActiveSheet.ListObjects("テーブル1").ListRows.Count then
R = .cells(rows.count,1).end(xlup).row
else
R = .cells(rows.count,1).end(xlup).row + 1
endif
114:名無しさん@そうだ選挙にいこう
12/07/31 23:04:15.71
>>112
キーボードがおかしいきがする。線を抜いてさし直す。もしくは抜きっぱなしでマウスで操作する。
PCの再起動
エクセルの再インストール
あと、微妙にウィルスっぽいがこれはないかな。
115:名無しさん@そうだ選挙にいこう
12/08/01 05:10:13.16
なんかしょぼい質問で申し訳ないんだが
Excelってカーソルは矢印じゃなくて十字だったっけ?
ふとカーソルみたら、セルを選択している時はカーソルが十字になってたから違和感感じた
これってデフォだったっけ?
116:名無しさん@そうだ選挙にいこう
12/08/01 05:34:20.90
ワークシートイベントって複数同居しても大丈夫?
例えばダブルクリックとセレクトイベントを
一つのシートに設定してても大丈夫?セルが被らなければおk?
117:名無しさん@そうだ選挙にいこう
12/08/01 06:01:49.55
>>115
白十字ならデフォ
118:名無しさん@そうだ選挙にいこう
12/08/01 06:24:22.35
>>116
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
MsgBox "ダブルクリック"
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox "セレクションチェンジ"
End Sub
シートモジュールに上の二つ書いてみてシートのいろんなとこクリック、ダブルクリックしてみ。
その後SelectionChangeのMsgboxを消して、Target.value = 1と書いてまたクリック・ダブルクリック
してみ。イベントがどう発生してるかわかると思う。
>セルがかぶらなければ
イベントはセルの場所関係なく発生しますよ。
119:名無しさん@そうだ選挙にいこう
12/08/01 06:41:41.42
>>115
うん
120:名無しさん@そうだ選挙にいこう
12/08/01 07:23:46.22
>>114
ワイヤレスキーボードが原因のようです。
他のPCでは再現しませんでした。
ありがとうございました。
121:名無しさん@そうだ選挙にいこう
12/08/01 19:21:38.00
関数の戻り値を関数にしたいのですが
どうすればいいでしょうか
例えば、VLOOKUP関数の戻り値がIF関数など
122:名無しさん@そうだ選挙にいこう
12/08/01 19:27:10.54
>>121
意味がわからん
具体的に何をしたいの?
123:名無しさん@そうだ選挙にいこう
12/08/01 19:30:10.09
>>121
関数の戻り値を関数の引数にしたい
ではないでしょうか?
=if(vlookup(a1,a2:b4,2,0)="a","a desu","a igaidesu")
124:名無しさん@そうだ選挙にいこう
12/08/01 19:49:04.48
>>123
逆です
=vlookup(a1,a2:b4,2,0)←これが次の段階で
=if(a1="xxx","OK","NG")←こうなるようにしたいんです
a b
125:名無しさん@そうだ選挙にいこう
12/08/01 20:02:02.01
>>124
A1=IF(C1=1,"xxx","w")
B1=VLOOKUP(A1,A2:B4,2,0)
URLリンク(www.dotup.org)
こんなかんじか?
126:名無しさん@そうだ選挙にいこう
12/08/01 20:15:26.65
>>125
少し違います
vlookupの結果としてif関数を戻したいのです
a1=vlookup(1,a2:b2,0)
a2=1
b2=if(b4=5)
b4=5
のような感じです
127:名無しさん@そうだ選挙にいこう
12/08/01 20:17:13.42
引数ってなぁに?
128:名無しさん@そうだ選挙にいこう
12/08/01 20:29:21.47
>>126
URLリンク(www.dotup.org)
こう?
>>127
URLリンク(ja.wikipedia.org)
129:名無しさん@そうだ選挙にいこう
12/08/01 20:32:44.45
>>128
説明が下手ですみません
vlookupの返り値をifで評価するのではなく
vlookupの返り値をif関数にしたいのです
130:名無しさん@そうだ選挙にいこう
12/08/01 20:36:34.76
もうこれはVBAに手を出す時が来たんでしょうか
131:名無しさん@そうだ選挙にいこう
12/08/01 20:37:23.55
デスクトップマシンに2003、2007、2010をインスコしています。
ノーパソには2003をインスコしていますが、2007(2010)で作ったファイルを
ノーパソでも使えるように2007をインスコしようとしています。
対象のソフトはOffice Professional 2007で、パッケージの裏には
1ライセンス用と書かれていますが、ノーパソならデスクトップのを
アンインスコしなくてもアクチベーション出来るのでしょうか?
132:名無しさん@そうだ選挙にいこう
12/08/01 20:43:27.85
>>129
うーん?関数ポインタ的なことがしたいの?それとも配列定数?
私はVBAでそこまでやったことがないので分からない。
あと、>>126はちょっと意味がわからない
a1=vlookup(1,a2:b2,0)
a2=1
とあるけど、vlookupの第三引数、列番号は省略できないし
b2=if(b4=5)
のif関数も第二引数を省略できない
a1=vlookup(1,a2:b2,true,0)
b2=if(b4=5,true)
ということかな?
133:名無しさん@そうだ選挙にいこう
12/08/01 20:46:06.53
vlookupは「値」を返すって書いてあるだろ;
134:132
12/08/01 20:48:12.39
*おおっと*
VBAでも、VBAでなくとも、だね
>>131
知らない。URLリンク(detail.chiebukuro.yahoo.co.jp)
逆は確か可能。デスクトップの他にノート一台だね
逆は知らない
135:名無しさん@そうだ選挙にいこう
12/08/01 20:54:08.48
>>133
そうでした
お騒がせしました、いろいろありがとうございました
136:名無しさん@そうだ選挙にいこう
12/08/01 20:55:55.48
>逆は確か可能。デスクトップの他にノート一台だね
逆って何の逆?
>逆は知らない
逆って何の逆?
137:132
12/08/01 20:57:15.79
>>136
デスクトップでライセンスがあるときにノートにインストール可能
その逆
デスクトップとノートの境目は知らない。MSに聞いて
138:名無しさん@そうだ選挙にいこう
12/08/01 21:10:42.06
んなことあるかぼけ
139:132
12/08/01 21:15:12.25
知らんよ。メーカー、デスク用のライセンスは俺も見たから間違いない。
ノート用が同じとは限らない。
そもそもデスクとノートを分けている時点であんまり意味わからん
デスク用の2010を買ったので知らない
本当に知りたいなら「他の方知りませんか?」と聞けばいい
140:名無しさん@そうだ選挙にいこう
12/08/01 22:38:25.51
***.tsv ファイルとかをExcel2010で開き
編集した状態で Control + S で上書き保存をしようと
した時に毎回次のメッセージが出てきてうざいです。
常に はい(Y) を押す設定とかはありませんか?
@迷惑なダイアログメッセージ@
***.tsd には、テキスト(タブ区切り)と互換性のない機能が含まれている
可能性があります。この形式でブックを保存しますか?
・このまま保存するには、[はい]をクリックします。
・機能を保存するには、[いいえ]をクリックしてから、
最新の Excel のファイル形式で保存します。
・失われれる可能性がある内容については、[ヘルプ]をクリックしてください。
141:名無しさん@そうだ選挙にいこう
12/08/01 22:45:43.45
>編集した状態
の記述がないよ。
142:名無しさん@そうだ選挙にいこう
12/08/01 22:46:30.28
>>139
自宅用と仕事用
という認識だった。
自宅ではデスクトップでExcel使って、外出先ではノートパソコンでExcel使って…
みたいな?
ノートンとかのセキュリティソフトが3台までインストール可能とかになったから、対抗して2台までインストール可能とかにしてみたのかなぁ??
143:名無しさん@そうだ選挙にいこう
12/08/01 23:02:39.32
デスク用のライセンス?
ノート用?
エクセルにデスク用とかノート用があるなんて知らんかった
144:132
12/08/01 23:14:00.03
>>142-143
URLリンク(detail.chiebukuro.yahoo.co.jp)
これだな
officeのバージョンでも変わる可能性があるので、ライセンスは手持ちの物を見てくれ
>>140
Oooじゃだめなのかな
145:初心者
12/08/01 23:23:04.70
質問です。
エクセルでセルに数字が入力されていて、
上矢印をクリックすれば数字が増えて、
下矢印をクリックすれば数字が減る。
これのやりかたが分かりません。
名前だけでも教えてもらえば検索します。
146:名無しさん@そうだ選挙にいこう
12/08/01 23:35:53.84
>>144
Ooo って何?
147:名無しさん@そうだ選挙にいこう
12/08/01 23:36:34.25
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
質問失礼します。
A1~A7にすべて「1」が入力されていればB1に○
ひとつでも「1」以外ならB1に×を表示させる。
というようなことをする場合、どのような式を書けばいいのでしょうか。
よろしくお願いします。
148:名無しさん@そうだ選挙にいこう
12/08/01 23:40:47.79
>>145
VBA
149:132
12/08/01 23:42:29.20
>>146
URLリンク(oooug.jp)
>>145
フォームのスピンボタン
俺もあまり使わないのでぐぐった
URLリンク(www.genzou.sakura.ne.jp)
150:名無しさん@そうだ選挙にいこう
12/08/01 23:44:00.31
数字コテというのかな?使いすぎてスマン。消すの忘れてた
>>147
=IF(COUNTIF(A1:A7,1)=7,"○","×")
151:名無しさん@そうだ選挙にいこう
12/08/01 23:53:12.25
数字コテw
ずっと132のままで良かったのにw
NGNameでw
152:名無しさん@そうだ選挙にいこう
12/08/02 00:11:56.97
>>146
OOoを間違ってOooって書いちゃっただけだと思うよ
これぐらいの誤タイプはよくあること
153:前スレで、全部開くマクロを質問した者
12/08/02 00:30:30.43
開いたファイルを全部を閉じるとき、マクロ実行前に
どれかを閉じてしまうとエラーになります。
そこで、On Error Resume Nextを追加してみましたが、
マクロを書いたブックまで閉じられてしまいました。
どうすればいいでしょうか?
Sub 全部閉じる()
Dim wb(4)
wb(0) = "八木かなえ.xls"
wb(1) = "田中理恵.xls"
wb(2) = "木村文子.xls"
wb(3) = "福原愛.xls"
wb(4) = "市川美余.xls"
For i = 0 To 4
Workbooks(wb(i)).Activate
ActiveWorkbook.Close
Next
End Sub
154:名無しさん@そうだ選挙にいこう
12/08/02 00:34:42.22
>>153
どうしたらいいか聞く前に
何をしたいのかを書け
155:名無しさん@そうだ選挙にいこう
12/08/02 00:38:45.11
>>153
On Error Gotoを使うか
ActiveWorkbook.Closeをやめるか
事前に判定するか
156:前スレで、全部開くマクロを質問した者
12/08/02 01:02:50.85
>>154
開いたファイルを全部を閉じるとき、マクロ実行前に
どれかを閉じてしまってもエラーを出さずに全部閉じたい。
(ただし、マクロを書いたファイルは閉じない)
>>155
On Error Gotoで、Gotoの先には何を書けばいいの?
ActiveWorkbook.Closeをやめるなら、どう書けばいいの?
事前に何を判定するの?
157:名無しさん@そうだ選挙にいこう
12/08/02 01:07:38.82
>>156
こんなもんでいいんじゃね
On Error Resume Next
Sub 全部閉じる()
Dim wb(4)
wb(0) = "八木かなえ.xls"
wb(1) = "田中理恵.xls"
wb(2) = "木村文子.xls"
wb(3) = "福原愛.xls"
wb(4) = "市川美余.xls"
For i = 0 To 4
If ThisWorkbook.Name <> ws(i) Then
Workbooks(wb(i)).Activate
ActiveWorkbook.Close
End If
Next
End Sub
158:名無しさん@そうだ選挙にいこう
12/08/02 02:14:51.68
だれかいる?
159:名無しさん@そうだ選挙にいこう
12/08/02 02:32:02.07
あなたのうしろにいるよ
160:名無しさん@そうだ選挙にいこう
12/08/02 03:14:34.42
順位表作りたいんだけど、このURLの方法だと
点数が同点の場合氏名が同じ人が表示されるんだけど、それを回避する方法無い?
URLリンク(blog.livedoor.jp)
161:名無しさん@そうだ選挙にいこう
12/08/02 04:12:20.93
>>160
どういう結果を求めているのよ?
VLOOKUPを使っても、最初に見つかったのが返ってくるだろうし、
100人中点数上位3位までといってもみんなが同点なら100人の名前を返さなくちゃならないだろうし。
162:名無しさん@そうだ選挙にいこう
12/08/02 06:16:05.66
ユーザーフォーム(以下UF)でセル範囲を表示するなんてこと出来る?
例えば、シート2にA1:B5に表があったとして
シート1でUFを呼び出してUFウインドウにA1:B5の表が表示される。
なんて使い方できる?
他に別シートで小窓で表示できる方法があればUFじゃなくてもいいけど。
163:名無しさん@そうだ選挙にいこう
12/08/02 06:42:25.42
>>162
新しいウィンドウを開く
カメラ機能
ユーザーフォームはdataglid辺りがあると思ったけどないな
164:名無しさん@そうだ選挙にいこう
12/08/02 08:53:11.54
>>163
カメラ機能知らなかった
ありがとう。これは便利だわ
165:名無しさん@そうだ選挙にいこう
12/08/02 13:00:01.21
Windows7+Excel2003
順位付けの質問です
51 34 18 29 34
という5つの数値があり、RANK関数を使用すると、
1 2 5 4 2
という順位になります(2位が2つあるので2位の次が4位になる)
1 2 4 3 2
という具合に連番が途切れないような結果を得る方法はないでしょうか?
166: ◆/7YBRt2Phufp
12/08/02 14:41:51.33
なんか順位の質問多いな
>>160
A列に名前「A,B,C,D,E」、B列に点数「95,100,95,90,95」
だとしたら、
D1=B1+1-ROW()/100
E1=LARGE($D$1:$D$5,ROW())
F1=RANK(G1,$B$1:$B$5)
G1=INT(E1)
H1==INDEX($A$1:$A$5,MATCH(E1,$D$1:$D$5,FALSE))
を5行目までフィルコピーしてD:E列非表示
但しこれは点数が整数で、人数が100人未満用なので、
その条件を外れるならちょっと手を加えないといけない。
>>165
A1:A5にデータがあるとしたら
B1=IF(COUNTIF($A$1:A1,A1)=1,A1,"")
C1=RANK(A1,$B$1:$B$5)
D1=VLOOKUP(A1,$B$1:$C$5,2,FALSE)
を5行目までフィルコピーしてB:C列非表示
167:名無しさん@そうだ選挙にいこう
12/08/02 16:12:16.67
>>160なんか、外部データの取り込みでクエリ処理してもよさそうだな。
168:前スレで、全部開くマクロを質問した者
12/08/02 19:36:53.87
>>157
ws(i) で、コンパイルエラーでした・・・(´Д⊂)ウワーン
wb(i)に直したけど、マクロを書いたファイルも閉じられてしまいます。
169:前スレで、全部開くマクロを質問した者
12/08/02 19:48:05.53
'On Error Resume Next
For i = 0 To 4
For Each WB In Workbooks
If WB.Name = WB(i) Then
Workbooks(WB(i)).Close
End If
Next
Next
これでイケるかな~と思ったら、コンパイルエラー・・・
何がダメぽなんだろう?
170:名無しさん@そうだ選挙にいこう
12/08/02 20:13:39.13
>>168
すんまそん
ws(i).name
171:前スレで、全部開くマクロを質問した者
12/08/02 20:36:10.41
>>170
ぃぇぃぇ、ネバーマインです。
で、ws(i).nameはどこに書けばいいのでしょうか?
172:名無しさん@そうだ選挙にいこう
12/08/02 20:40:01.28
>>171
If ThisWorkbook.Name <> ws(i).name Then
ちなみにエラーの理由は型が違うから。
ThisWorkbook.Nameはstringでws(i)はworkbookクラスかその辺。
173:名無しさん@そうだ選挙にいこう
12/08/02 20:40:15.34
>>157
On Error Resume Next
174:名無しさん@そうだ選挙にいこう
12/08/02 20:45:08.32
>>173
すまん。間違って送信ししてしまった。
>>157は On Error Resume Nextの位置がおかしいだけじゅあないの。
175:名無しさん@そうだ選挙にいこう
12/08/02 20:49:10.20
Sub 全部閉じる()
Dim wb(4) As String
Dim i As Long
wb(0) = "八木かなえ.xls"
wb(1) = "田中理恵.xls"
wb(2) = "木村文子.xls"
wb(3) = "福原愛.xls"
wb(4) = "市川美余.xls"
For i = 0 To 4
If ThisWorkbook.Name <> wb(i) Then
On Error Resume Next
Workbooks(wb(i)).Close
End If
Next
End Sub
176:名無しさん@そうだ選挙にいこう
12/08/02 21:08:09.23
onerrorってそんな位置なの?いいつもここに書いてたわ
Sub 全部閉じる()
On Error Resume Next
Dim wb(4)
wb(0) = "book1.xls"
wb(1) = "a.xls"
wb(2) = "Book2.xls"
For i = 0 To 2
If ThisWorkbook.Name <> wb(i) Then
Workbooks(wb(i)).Activate
ActiveWorkbook.Close
End If
Next
End Sub
177:名無しさん@そうだ選挙にいこう
12/08/02 21:15:04.63
>>176
いやそこでもいいんだけど、>>157はさすがに変でしょ。
それとActivebookをCloseはまずいでしょ。
178:名無しさん@そうだ選挙にいこう
12/08/02 21:15:34.45
どこでもいいんだろうけど、例外処理は下段に書かれてる。
179:前スレで、全部開くマクロを質問した者
12/08/02 21:24:25.48
>>172
コンパイルエラー
SubまたはFunctionが定義されていません
になってしまいます。
WBじゃなくてWSでいいの?
180:名無しさん@そうだ選挙にいこう
12/08/02 21:30:58.70
On Error Resume Nextなんてどこでもいいみたいな考えで使うもんじゃねーだろ。
エラー出るのが前提になってしまう部分だけに使うだろふつう。
予期してないエラーまで全部無視されたら後々困るとおもうぞ。
181:前スレで、全部開くマクロを質問した者
12/08/02 21:31:27.58
>>175
お、できた。
ありがとうございます。
>>177
ActivebookをCloseはダメぽなの?
182:名無しさん@そうだ選挙にいこう
12/08/02 21:34:38.45
>>181
最後にマクロブックが残ったらどうなる?
183:前スレで、全部開くマクロを質問した者
12/08/02 21:41:35.86
>>182
マクロブックって、マクロを書いたブックという解釈でいいの?
For i = 0 To 4 でwb(0)からwb(4)までの指示には入ってないから
マクロを書きたファイルは残ると思うんだけど・・・ 閉じられちゃうんだよね。
んー、だから If ThisWorkbook.Name <> wb(i) Then が必要なの?
ワケワカラン
184:前スレで、全部開くマクロを質問した者
12/08/02 21:47:20.90
なんか変な日本語だった
For i = 0 To 4 でwb(0)からwb(4)までを指示し、対象となるファイルが閉じられる。
しかし、マクロを書きたファイルはFor文の中で対象外だから残ると思うんだけど、
結果的に閉じられてしまう、と。
185:147
12/08/02 21:47:34.38
>>150
ありがとうございます
186:前スレで、全部開くマクロを質問した者
12/08/02 21:48:52.54
x マクロを書きた
o マクロを書いた
何度も訂正してスマソ・・・
187:名無しさん@そうだ選挙にいこう
12/08/02 21:50:03.65
>>184
どんなときにOn Error Resume Nextが必要になるか考えてみては
188:名無しさん@そうだ選挙にいこう
12/08/02 22:12:58.24
Sub 全部閉じる()
Dim WB$(3), i&
WB(0) = "八木かなえ.xls"
WB(1) = "田中理恵.xls"
WB(2) = "木村文子.xls"
WB(3) = "福原愛.xls"
WB(4) = "市川美余.xls"
On Error Resume Next
For i = 0 To 4
If ThisWorkbook.name <> WB(i) Then
Workbooks(WB(i)).Close
End If
Next
On Error GoTo 0
End Sub
>>157のOnErrorの位置は単純に書き間違いでしょうね
んで、>>175は間違いじゃないけど不適切だと思う。
(For Nextのなかで毎回指定するようなものではない)
個人的には、なるべく関係ないところに影響しないように
On Error Resume Nextの適用範囲は小さくとっておいたほうが
よいと考えている
189:188
12/08/02 22:18:28.40
>>188
自分でファイルの数減らしてテストしたときの変更を戻し忘れてた
Dim WB$(3)はDim WB$(4)の間違いです
あと、マクロを実行するブック自身が
その5つのファイルに含まれてるかどうかは
質問からは判断できないから
If ThisWorkbook.name <> WB(i) Then
の部分は消すわけには行かないと思う
190:前スレで、全部開くマクロを質問した者
12/08/02 22:24:00.08
>>187
んー、エラーが出ても次に飛ばすってことでしょ?
>>188
あぁ、そうですね。
納得です。
>>189
マクロを書いたファイル名は、wb(0)~wb(4)の中にありません。
だから、If ThisWorkbook.name <> WB(i) Then が何で必要なのか
疑問なんです。
191:名無しさん@そうだ選挙にいこう
12/08/02 22:28:52.71
>>190
自分で書いてないかい?
>>154
>マクロ実行前にどれかを閉じてしまうとエラーになります。
その場合マクロブックがActiveにならないかな
192:165
12/08/02 22:32:20.40
>>166
B1=IF(COUNTIF($A$1:A1,A1)=1,A1,"")
C1=RANK(A1,$B$1:$B$5)
D1=VLOOKUP(A1,$B$1:$C$5,2,FALSE)
のC列だけでランク付けできました
ユーザ関数は作りたくなかったのでシンプルな答えで感動しました
193:名無しさん@そうだ選挙にいこう
12/08/02 22:40:20.60
>>190
だったら、If ThisWorkbook.name <> WB(i) Thenはいらないよ。
194:188
12/08/02 22:45:12.10
>>190
>マクロを書いたファイル名は、wb(0)~wb(4)の中にありません。
じゃあ、If~End Ifは要らない
Workbooks(WB(i)).Close
だけでOK
そもそも、オープンしてないブックは
ActivateもCloseもできないからエラーが出るわけで、
Activateで生じるエラーを無視していくと、
最終的には自分自身(マクロブック自身)がActiveworkbookの状態になる。
そのときにActiveWorkbook.Closeが実行されると自分自身を閉じてしまう。
ActivateしてからActiveWorkbookを閉じるやり方じゃなくて、
CloseしたいだけならActivateしないで直接Closeすればよいだけの話。
195:前スレで、全部開くマクロを質問した者
12/08/02 23:17:09.10
>>191
ご指摘どおりです。
マクロブックにマクロボタンを置いてるので、必然的にActiveになりますね。
(そういう意味じゃないのかな?)
>>193-194
なるほど。
丁寧に説明してくれて、ありがとうございます。
196:名無しさん@そうだ選挙にいこう
12/08/03 05:58:46.89
>>195
とりあえず勉強始めたばかりだとしてもVBA使うならステップインで動作確認するぐらいは覚えてからコード組めよ。
ステップインでうごかしたらどこで何が閉じられて何がアクティブになっているかぐらいすぐわかるんだが。
197:188
12/08/03 08:54:35.05
自分以外全部閉じるって処理ならFor next で閉じるブックを指定するより
For eachの方がスッキリ書ける
Sub 自分以外全部閉じる()
Dim WB as Workbook
For Each WB In Workbooks '<=Workbooks(sがつくのに注意)
If WB.Name <> ThisWorkbook.Name Then
WB.Close
End If
Next WB
End Sub
198:名無しさん@そうだ選挙にいこう
12/08/03 09:34:42.64
スッキリ書けても問題抱えてたら意味無いけどな
ついでに、オブジェクトの比較は基本的にIs使おうね
× If WB.Name <> ThisWorkbook.Name Then
○ If Not (WB Is ThisWorkbook) Then
Excelはパスが違っても名前が同じブックは開けないから、Nameでの比較自体は
実害無いけど、他のオブジェクトではNameの値は同じだが実体は別なんてこともあるから
そういうものでバグ出さないためにも不適切な手法は早めに改めた方がいいよ
199:188
12/08/03 09:48:02.18
>>198
>Excelは~実害無いけど、
すんません、まさにその部分が理由でnameでの比較にしてました。
たぶん、オブジェクトの比較よりもオブジェクト名の比較の方が
初心者には理解し易かろうとも思いますた。
200:名無しさん@そうだ選挙にいこう
12/08/03 09:48:46.52
188
199
ときたら?
200
211
201:名無しさん@そうだ選挙にいこう
12/08/03 19:26:07.76
If Not (WB Is ThisWorkbook) Thenなんて初めて見たYO!
202:名無しさん@そうだ選挙にいこう
12/08/03 19:52:22.68
オブジェクト同士を比べることなんてそうないからねぇ
is nothingはたまに使うけど
203:名無しさん@そうだ選挙にいこう
12/08/03 19:59:45.12
>>149
OpenOfficeなんかバグがおおくてやだ。
204:名無しさん@そうだ選挙にいこう
12/08/03 20:01:36.63
OpenOffice前に使ってたけど重すぎて俺のPCじゃダメだった
205:前スレで、全部開くマクロを質問した者
12/08/03 20:09:12.82
>>197
自分以外全部閉じるって処理じゃないんだけど・・・
まぁ、俺あてに安価が付いてないからどーでもいいけどね
206:名無しさん@そうだ選挙にいこう
12/08/03 21:15:55.30
他のオブジェクトではNameの値は同じだが実体は別…なんてことはないな
207:名無しさん@そうだ選挙にいこう
12/08/04 08:01:39.48
モノを知らなすぎ