▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━ ・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 書籍や解説サイトの紹介以来はスレ以外。ここは技術的な質問のみで。
★ルールを無視すると…
>>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分野の話ではないので、ここでは聞かないでください。
★ 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セルを分割 (分割したいセル以外を結合)
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法) ▼数式・関数 ・ 表示形式以外の書式の取得設定、書式情報を条件とする数式 (ユーザー定義関数) ・ 関数式でセルの選択状態を取得する (VBA) ・ セルの値でパスを補完して、開いてないブックのセルを参照する (VBA) ・ 入力したセルに結果を返す (VBA) ・ 範囲を引数にしての文字列連結 (ユーザー定義関数) ・ 値の書き換え、値の保持 (VBA) ・ 複数の結果を抽出、不定な数の結果を返す (VBA、結果の最大数が解っていれば最大数以上の式を論理式で組む) ・ 空白のセルの部分を上詰め、左詰めなどで表示する (作業セルを使って別セルに詰めて表示なら可能、それ以外はVBA) ・ VLOOKUP,HLOOKUP,MATCH等の関数で、検索語を全半角両方にマッチさせる (ユーザー定義関数) ▼VBA ・ ExecuteExcel4Macroの参照で空セルと0値を区別する ・ セルの値や変数値で直接変数名を指定する (配列、コレクション) ・ VBのコントロール配列と同じような操作をしたい (イベント以外ならコントロール名を「同名+連番」にしてControls(名前 & インデックス)で処理、イベントはクラスでWithEvents) ▼ユーザーフォーム ・ フォーム上から変更したプロパティ値の保持 (シートや外部ファイルに書き出して、次回読み込む) ▼グラフ ・ 棒グラフでひとつだけ突出したデータがあった場合に波線を入れて位置を合わせる (オートシェイプなどで見た目だけそうなるように弄る、別アプリでグラフを作り、オブジェクトとして挿入) ┌┐ 〜〜 ||
上記 「Excelで出来ないこと、仕様上の制限」 は、一般的に出来ないとされていること、出来ないと思われるものです。 間違いがある可能性もあるので、上記に挙がってるもので「コレはこうすれば出来るよ」というものがあったらご指摘ください。 Excel2010についても未確認な項目が多いので変更点が有ればご指摘下さい。 また、ここに書かれてないことでも、Excelで出来ないことはたくさんあります。 ここに書かれてないからといって必ず出来るはずだなんて思わないように。 >▼環境・書式 > ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する 補足 2007以降ではページレイアウトビューの表示時に限り、幅・高さともcm単位で表示され、 指定も同じくcm単位でできる。 ただし大元がインチ系なのでなかなかピタリの値は出ない。1cm→0.98cmのように 近い値に勝手に丸められる。
おつ!
8 :
名無しさん@そうだ選挙にいこう :2012/11/15(木) 22:42:08.25
おい糞共。Excel2013での変更点を教えろ下さい。 VBAは変更なし(できない)らしいけど、通常機能は変更あるの?
つかこのテンプレまじで終わってんな。 すげーなw
11 :
名無しさん@そうだ選挙にいこう :2012/11/15(木) 23:19:02.18
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 保存していたファイルを開け 作業しようとしたら 作業ウインドウ?のサイズが変えれなくなってしまいました 小さくなってしまっています 現象が起きるのはそのファイルだけです 1番外側の サイズを変えるマークや×印は出ていますが 内側の作業ウインドウ?から そのマークが消えてしまっており ウインドウの端にマウスを持っていっても サイズを変えるための矢印も出ず また動かすこともできません よろしくお願いいたします
>>11 スクショ見せて
シートの中身は塗りつぶしていいから
何もかも再起動
14 :
名無しさん@そうだ選挙にいこう :2012/11/16(金) 18:17:35.16
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 質問です。 どちらか一方だけでも回答いただけるとありがたいです。 ・if文中にワイルドカードって使用できますか? セルA1に「windows7」、セルB2に「=IF(A1="windows*",1,0)」と入力しても、 ワイルドカードが機能していないらしく、B2には0と表示されます。 if文でワイルドカードは使えないのでしょうか? ・セルA1に「5」、セルB1に「2」などの数字が入っていたとして、 セルD1に、C列のセルA1+B1行を表示させることはできますでしょうか? 要するにこの場合はC(A1+B1)でセルC7をセルD1に表示させたいです。 =C(A1+B1)とかと書いてもエラーになりますし、調べてもいまいちやり方が分からず困っています。
>>14 >・if文中にワイルドカードって使用できますか?
IF関数の論理式にはワイルドカードは使えないので他のワイルドカードが使用できる関数と組み合わせればいい
>・セルA1に「5」、セルB1に「2」などの数字が…
INDIRECT関数
COUNTIFあればDCOUNT必要ないと思いませんか?
WindowsXPで2003を使っています 一番細かいものは実線になってしまい二番目の点線はまだ太く感じます 点線を細くすることは出来ませんか
>>17 罫線を細くするのは無理なので図形の挿入で直線を並べてください
>>16 DCOUNTに限らず、データベース関数(D関数)と呼ばれる一連の関数は
現状の2007/2010あたりではほとんど使う必要ない
古いバージョンで作成したデータとの互換のために残してあるだけ
22 :
21 :2012/11/18(日) 02:11:51.19
対象となるシートは、これらです。 Set FSK = Workbooks("不足数.xlsx").Worksheets("部品別") Set SDL = Workbooks("日程表.xlsx").Worksheets("11月")
23 :
21 :2012/11/18(日) 02:13:15.52
何度もすみません。 不足数.xlsx、日程表.xlsxとは別のブックにマクロを書きます。
24 :
名無しさん@そうだ選挙にいこう :2012/11/18(日) 04:32:19.04
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可(この機会に覚えようかなと) A列は数字、B列は文字、C列は数字、D列、E列は数字が入力されています。 A B C D E 1 100 リンゴ 10 10 20 2 100 リンゴ 11 12 20 3 200 ミカン 13 13 30 4 200 リンゴ 13 13 30 5 300 ミカン 14 14 40 6 400 ミカン 14 14 50 7 500 リンゴ 15 15 60 8 500 ミカン 16 16 60 9 600 リンゴ 17 17 60
25 :
24 :2012/11/18(日) 04:32:50.21
このような入力があった場合 @同一行のC列とD列は一緒の数字でなければならない ・C2D2が違っているのでC2D2のセルを赤くする A他の行とB列の文字が違う場合はC列D列も違わなければならない ・B3とB4の文字が違っているのにC3D3、C4D4が一緒なのでC3D3、C4D4のセルを赤くする B他の行とA列の数字が違う場合はC列D列も違わなければならない ・A5とA6の数字が違っているのにC5D5、C6D6が一緒なのでC5D5、C6D6のセルを赤くする C他の行とA列の数字が違う場合はE列の数字も違わなければならない ・A7とA9の数字が違っているのにE7E9が一緒なのでセルを赤くする D他の行とB列の文字が違う場合はE列の数字は基本的に違わなければならない ・B7とB8の文字が違っているのにE7E8が一緒なのでセルを黄色くする 複数の条件が絡んでいるので、どのようにしたら良いのかわかりません。ご教授願います 因みに、別なソフトで組んだデータが自動でexcelファイル化されます。 これをコピペする形になるかと思うので、コピペしても大丈夫な(条件式が消えない)感じになれば尚良いです。
>>24 設定中にある「他の行」の定義が不明なので、
その説明ではどうにもできません。
たとえば「一個上の行」とか、
「対象行より上にあるB列が同じで一番近い行」とか、
きちんと特定できる条件が必要です。
excelでどうやるのか?と考える前に データを整理することを考えるべき
29 :
名無しさん@そうだ選挙にいこう :2012/11/18(日) 17:01:22.37
Excelを自習するために
ダミーデータが大量にはいったデータベースってどこかで手に入りませんか?
フィルター機能、日付処理、シート処理、ブック処理、その他いろいろ含め、いろんな作業を実体験したいから
数千、数万行もエントリーのある巨大データベースが欲しい。
中身はなんでもよい。
>>24 みたいなデータの超巨大版みたいな感じね。
自分で作れ
>>21 どの製品を優先して作るか、の情報がないと作れない
仮にその情報があったとしてもそれはかなりめんどい作業なので誰もやってくれないだろう。
自分が黄色に塗るという作業。その工程を丁寧にプログラムとして書けば自然と出来上がる。
わからないところがあったら教えてあげる。
あと個人的にsetは間違いのもとになりやすいので使わないようにしてるわ。
>>32 シートやブックを処理するときってむしろ積極的にSetで指定しないの?
Activesheetとかを暗示的に利用するほうが間違いのもとっていうかバグの元だと思うんだが。
>>33 別ブックにマクロを書かざるを得ないならsetでもなんでもいいと思う
が、マクロは同じブックに書きたい所。
落ちてたり閉じてたり名前が変わってる状態だと処理が中途半端になってだるい事が起こりえるからね。
sheets(hoge).selectは使うけどActivesheetはあんまり使わない。
>>29 ダミーデータ csv 辺りでぐぐればいっぱい出てくる
39 :
21 :2012/11/18(日) 23:09:50.90
40 :
21 :2012/11/18(日) 23:11:08.12
塗り方の手順を書いてみました。 不足数.xlsxのA列を見る 123-1がある(空白セルがない) 123-1の行に書かれてる型名を見る 型名A02、使用数1、不足数-35 日程表.xlsxのA列にあるA02を探す 月末から遡って、計画の行にある数値を探す K列に20がある 必要数=20台*使用数1=20 不足数-35なのでK列の20は対象と判断しセルを黄色くする K列の20が無くなれば不足数は-15になる 月末から遡って、計画の行にある数値を探す I列に20がある 必要数=20台*使用数1=20 不足数-15なのでK列の20は対象と判断しセルを黄色くする I列の20が無くなれば不足数は+5になる 不足数が0以上になったのでループを抜ける 不足数.xlsxのA列を見る 125-1がある(空白セルがない) 125-1の行に書かれてる型名を見る 型名A01、使用数2、型名A02、使用数1、型名C01、使用数1、不足数-22 日程表.xlsxのA列にあるA01、A02、C01を探す 月末から遡って、計画の行にある数値を探す K列にA02の20がある 必要数=20台*使用数1=20 不足数-22なのでK列A02の10は対象と判断しセルを黄色くする K列A02の20が無くなれば不足数は-2になる 月末から遡って、計画の行にある数値を探す J列にA01の10とC01の10がある 必要数=10台*使用数2+10台*使用数1=30
41 :
21 :2012/11/18(日) 23:11:51.20
不足数-2なのでJ列A01の10とJ列C01の10は対象と判断しセルを黄色くする J列A01の10とJ列C01の10が無くなれば不足数は+28になる 不足数が0以上になったのでループを抜ける 不足数.xlsxのA列を見る 201-1がある(空白セルがない) 201-1の行に書かれてる型名を見る 型名A01、使用数2、型名B01、使用数3、型名C01、使用数1、不足数-33 日程表.xlsxのA列にあるA01、B01、C01を探す 月末から遡って、計画の行にある数値を探す J列にA01の10とC01の10がある 必要数=10台*使用数2+10台*使用数1=30 不足数-33なのでJ列A01の10とC01の10は対象と判断しセルを黄色くする J列A01の10とC01の10が無くなれば不足数は-3になる 月末から遡って、計画の行にある数値を探す H列にC01の30がある 必要数=30台*使用数1=30 不足数-3なのでH列C01の30は対象と判断しセルを黄色くする H列C01の30が無くなれば不足数は+27になる 不足数が0以上になったのでループを抜ける 不足数.xlsxのA列を見る 空白セルなのでループを抜ける
おい いいかげんにしろw
44 :
24 :2012/11/19(月) 03:18:15.34
>>26 説明不足でした
他の行=全ての行です
>>27 製品を処理する条件を作成するソフトで算出されたデータをエクセル化して
加工者が処理条件をチェックするシートになるので整理は厳しいかと
A行はガスの流量、B行はガスの種類、C行D行は開けるバルブ(C行はボンベ側でD行は装置側)、
E行はガス流量に応じた補正値となっています。
(私を含めた)条件を作成する人はデータに間違いが無いように目視チェックしているのですが、
どうしてもチェック漏れがあったりします。
納期がキツい製品でチェック漏れがあると土日や夜でも出社して対応せねばならないので、
少しでもそういうのが無くなれば・・・と
>>28 ありがとうございます。物凄く参考になりました♪
これを元にチェックツールを作成してみます。
だからまず元データ整理しろってw 頭の中も整理しろw
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 折れ線グラフを分割したいのですが出来ますか?イメージとしては ・----・----・----・ 系列1 この系列1を分割して ・----・ ・----・ 系列1 系列2 という風にしたいです。
>>47 参照データを2つにするんじゃダメなん?
誰かエスパー頼む
>>47 縦軸の値が欠損(ない)場合も、横軸の値は指定すればいい。
たとえば、
x , y
1 , 3
2 , 5
3 ,
4 , 2
5 , 4
のようにデータを用意する(この場合、横軸の値が3の時に
縦軸の値がない)。
>>47 >>49 でok。
散布図で2系列にしても、同じように納得する折れ線グラフができるよ。
51 :
21 :2012/11/19(月) 22:28:51.59
>>43 マクロでやりたいです。
途中まで書いてみました。
変数に入れるところまでは何とかいったっぽいですが、行き詰ってます。
Sub test1()
Dim FSK, SDL, iEND, i1, j1, i2, j2, MDL(36), QTY(37), iMDL
Set FSK = Workbooks("不足数.xlsx").Worksheets("部品別")
Set SDL = Workbooks("日程表.xlsx").Worksheets("11月")
iEND = FSK.Range("A1048576").End(xlUp).Row
i1 = 2
Do While FSK.Cells(i1, "A") <> ""
j1 = 4
FSK = FSK.Cells(i1, "C")
Do While FSK.Cells(i1, j1) <> ""
MDL(j1) = FSK.Cells(i1, j1)
QTY(j1 + 1) = FSK.Cells(i1, j1 + 1)
j1 = j1 + 2
Loop
'ここがワカラン・・・
For K = 0 To j1
MDL(K) = ""
QTY(K) = ""
Next K
Loop
End Sub
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 回帰分析を行ってデータから実際値と計算値の折れ線グラフを作成したいんですがどうしてもグラフの作成の仕方がわかれません。教えていただけないでしょうか。
Excelで散布図か折れ線を一度も描いたことないの? グラフが分からないんじゃなくて、回帰分析を行った結果の データ作成が分からないいんじゃないの?
>>54 Excel初心者なもので…。
もとのデータと回帰分析で出した結果のデータ2本の折れ線グラフにしたいんですけどデータの結果の作成ってことになるんですかね?
>>53 2003ならグラフウィザードがあるでしょ
まずはそれに従って作ればいいだけじゃないの?
で、その手順の中でどこがどうわかんないの?
もうちょっと具体的に質問できないかな・・・
57 :
名無しさん@そうだ選挙にいこう :2012/11/20(火) 10:07:15.59
>>54 超初歩の質問になるけど、たとえば、xとyの値が
x,y
1,10
2,13
3,17
4,12
というようなデータがあったとき、折れ線あるいは散布図を描く方法は
しっているの?
58 :
名無しさん@そうだ選挙にいこう :2012/11/20(火) 10:09:02.33
>>57 それは知っているということなら、
回帰分析の結果データの作成がわからないという質問に帰結する。
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 Aの欄 Bの欄に(160-30)/1.016/0.09/1000 Cの欄にBの回答が来る式を教えて下さい。
>>59 Cに
=(160-30)/1.016/0.09/1000
>>60 >>60 ありがとうございます。
Aの数字が200くらいパターンがある場合ってどうするんですか?
説明不足でした、Aは200くらいの数字がある160〜200まで入れます(順番はランダム)。
Bの計算式は表に出るようにAに160って入れたらBに(160-30/)/1.016/0.09/1000って入って
Cにその1.42(切り捨て)って入るようにしたいんです。
>>56 うまく質問できずにすみません…。
回帰分析の結果、回帰統計、分散分析表等がいろいろ出てきましたが、どの数値をグラフウィザードのデータ範囲に入力すればいいかわかりません。なんどもすみません…。
>>58 それは一応できるので回帰分析の結果データができないとゆうことになります…。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 ドロップダウンメニューを作る際に、 A B 1商品A 棚A 2 棚B 3 棚C 4商品B 鉛筆A 5 鉛筆B 6 鉛筆C C1で「商品A」「商品B」を選べるドロップダウンを用意して、 C2に「C1で商品Aを選んだら、棚A〜C」「C1で商品Bを選んだら鉛筆A〜C」という ドロップダウンメニュー(メニュー位置はC2固定です)にする方法は、VBを使わないでないでしょうか?
65 :
64 :2012/11/20(火) 17:30:08.63
自己解決しました。 データの入力規則にIF文が使えるんですね。
>>66 表の行数が6行固定なら
=Indirect("c"&row()*6,true)
>>67 大変助かりました
ありがとうございました
【1 OSの種類 .】Windows7 【2 Excelのバージョン 】Excel2010 【3 VBAが使えるか .】いいえ 【4 VBAでの回答の可否】否 会社相互間の売上がいくらか集計したいのですがどうすればいいでしょうか。 元のデータはA社がB社へ100円売上、B社がA社へ200円売上、C社がB社へ500円売上・・ という具合です。これでAB社間の売上が300円という結果を表示したいのです。 ピボットテーブルで列と行をそれぞれ売り手と買い手にして(?)その交わるところに 300円(AB社間の売上合計)と表示できればベストなのですが。 ピボットテーブルでそのようなことはできるのでしょうか。 ご解答よろしくお願いします。
>>61 たとえばA5に160〜200の数字があるときに、
B5に
="(" & A5 & "-30)/1.016/0.09/1000"
C5に
=rounddown((A5-30)/1.016/0.09/1000,2)
72 :
名無しさん@そうだ選挙にいこう :2012/11/20(火) 22:16:16.24
あ For i= い For j= う For k= え If 「え」で合致したとき、Forを2つ抜けて「あ」に戻るにはどう書けばいいの?
74 :
名無しさん@そうだ選挙にいこう :2012/11/20(火) 22:48:30.84
「あ」に対応するNextの直前にラベルつけてGotoするしかないんじゃないかな
Exit For * 2 でいいんじゃね?w
>>72 「い」のループを抜けたいわけじゃなくて「あ」に戻りたいの?
>>74 どもw
これ↓だとダメなのね・・・
123
For i=
For j=
For k=
If
GoTo 123
>>77 いや
>>76 もちょっと書いてるが『「あ」に戻る』の意味によってはそっちが正解かもしれない
Forを2つ抜けると書いてるから
>>74 だと思うのが普通だが
>>72 Sub a()
Dim x
x = 0
For c = 1 To 10
For d = 1 To 10
For e = 1 To 10
x = e
If e = 3 Then
Exit For
End If
Next
If e = 3 Then
Exit For
End If
Next
Next
End Sub
グローバルっぽい変数を用意しておいて、それで評価すればok
この場合は3周目に二段抜けてる(はず
ただどう考えても見難いので、素直にgoto使うかwhileで何とかしたほうがいいと思う。
>>75 全然おもしろくない。せめて最期のwは抜いて欲しい。
For からGotoで抜けるのは感心しない 特定の条件でループから抜けたい時はDo Loopを使え
ネストされたループから2段階以上抜けるのにGoto使うのは美しくはないがやむをえないと思う そうでなければIf 〜 Exit For にせよDo Loopにせよ同じ条件を複数回書くことが必要になり メンテの際にバグを生みやすいのでそのほうがよほど感心できない
2つfor抜けるのなら最終条件満たした時点でフラグ立ててそれで毎forごとにifフラグthen exit forかなあ。
>>63 ダイアログで残差をチェックすれば
残差の表がでる。
その表に予測値と残差が出る。
入力元のデータと予測値でグラフ作成すればできるよ。
84 :
83 :2012/11/21(水) 09:51:21.62
そういえば、その時グラフも一緒に出ますわ
【1 OSの種類 .】 Windows 7 【2 Excelのバージョン 】 Excel 2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 右の列(B列)を参照して左の列(A列)の書式を設定したいです。 B列の数字の値が0の場合、A列の書式を「太字・字を赤」 B列の数字の値が1の場合、A列の書式を「斜字・字を緑」 という風にしたいのですが、どうすればよいのでしょうか?
87 :
85 :2012/11/21(水) 12:33:38.02
>>86 A1の書式設定でB1をどうやって参照すればよいですか?
>>87 条件付き書式設定→数式を使用〜→
条件1
=B1=0
書式設定→太字 字→赤
条件2
=B1=1
書式設定→斜字 字→緑
と各々設定すれば良い。
89 :
85 :2012/11/21(水) 15:36:21.98
ありがとう。できました。
90 :
名無しさん@そうだ選挙にいこう :2012/11/21(水) 16:34:12.33
表をテーブルに変換することでどんなメリットがあるの?いまいち判らん
>>90 「表をテーブルに変換するメリット」でググれ
92 :
名無しさん@そうだ選挙にいこう :2012/11/21(水) 16:57:35.19
表とテーブルはどう違うの?
なかなかVBAの超入門から抜けきれない・・・ それはそうと菅野の巨人入りを断固として許すな、肘壊れろ 当然ここまでわがままこねたんだからまさかFAしたりトライアウト受けたりしないよな VBAは覚えるコツとしてはこれを覚えたら大丈夫てコツはあるのか ホント大卒の肩書きなんて社会じゃほぼ無意味だからな 重視されるのは経験な 俺は高卒で世間的には低学歴かもしれないが、フランスに渡米した経験を活かして 今は充実した仕事してるよ お前らも壁作って自分の世界に閉じ込もって無いで 今しかできない「経験」しといて経験値積んどけ
>>90 テーブル内で数式を使う列がある場合、オートフィルしなくても最下行にデータを入力したら自動で数式列に数式が入る。
VLOOKUPなどでテーブルを参照する場合、構造化参照が使えて便利。参照先のデータが増えても自動で対応される。
たとえば=VLOOKUP([@管理番号],管理表[#すべて],2)みたいな感じ。範囲じゃなく列名で指定できる。
「構造化参照」でググったらすぐわかる。
あとは、テーブルにスタイル設定して簡単に見栄え良くできるとか。
95 :
51 :2012/11/21(水) 20:27:38.74
誰もカマッテくれないから、なんとか自分で書きました。 どうにか動くので、とりあえずヨシとしたいんですが、 いくつが疑問があるので教えてください。 Q1 MDL(j1) = FSK.Cells(i1, j1)でエラーが出ました。 どうやら、Dim MDL(36)と書いたものの36を超えたときに エラーになるっぽいです。そこで、思い切ってMDL(100)とかに 増やしておいたとき、何かマズーなことがありますか? Q2 配列変数を調べたら、0から始まるっぽいんですが、 実際にはMDL(4)、MDL(6)、MDL(8)・・・って使います。 これも何かマズーなことがありますか? Q3 配列変数の中身をクリアするのに、 For K = 0 To j1 MDL(K) = "" QTY(K) = "" Next K と書きましたが、正規の?やり方があれば教えてください。
96 :
名無しさん@そうだ選挙にいこう :2012/11/21(水) 21:16:39.32
>>91 ,94
ありがと。
いろいろ便利にはなりそうな感じ?
ちょっといじって確かめてみますm(__)m
>>95 Q1 マズくはないがウマくもない。最大値の予測はつかんのか?
宣言された配列の大きさを超えたときのLoop条件が無いのは根本的な問題。
配列の大きさが可変ならReDimもあるが最大値が100以下と予測できる
ならMDL(100)宣言のほうが効率が良い。
Q2 好きにすれば。
0から始まるのが気に入らないなら Option Base 1 で
1から開始に変更することもできる。(ほとんど必要無いが)
Q3 Erase MDL
>>95 0から始まるけど、使うときは1から使ってる(要は0は枠だけあって使わない)。
uboundがそのままサイズになるし、値が1つしかないときに配列で返さない関数の
場合であっても、配列として納められるので、配列か単なる数値(あるいは文字列)かを
意識しなくても済むので。
ちなみに、私、素人ですので、その使い方が良いかどうかわわからん。
使わない領域を確保するのはバグの元 使わない想定の領域を誤って使ってしまったりする可能性もあるし ソースなんて自分で組んだものでも3日もすれば忘れちゃうし 他人が見る可能性があるならなおさら意味不明な状態に陥る
100 :
51 :2012/11/21(水) 23:10:23.56
>>97-98 ありがとうございます。
テレビ見てたので遅くなっちゃったw
101 :
51 :2012/11/21(水) 23:24:20.42
あ、も一つ質問 FSK.Range(FSK.Cells(i1, j1), FSK.Cells(i1, j1 + 1)).Delete Shift:=xlToLeft これ↑をシンプルな書き方にできますか? Resizeの使い方がダメぽなのか、↓ではダメでした・・・ FSK.Cells(i1, j1).Resize(0, 1).Delete Shift:=xlToLeft
>>101 質問内容を見てて気になったんだけど、何で勉強してるん?
本にしろ初心者向けのサイトにしろ、それなりの手順を追って勉強したら動的配列やセルの基本操作ぐらいは
必須な内容だと思うよ。
理解できるとこだけつまみ食いしながら勉強してるなら一度初心者用の本等の手順通りに勉強した方が良いと思うよ。
疑問点をまず検索して調べる事が苦にならない人なら本無しでも勉強できると思うけどあなたの質問内容を見る限り、
本か何かに頼るべきだと思った。
特に
>>21 の内容とか生産管理的なもんでしょ。凝りだしたらきりがないぐらい奥の深いもんだと思うし。
103 :
51 :2012/11/21(水) 23:51:59.47
で? 何が言いたいの?
>>101 簡単なテストコードを実行してヘルプを読むと理解が早い
Debug.Print Cells(2, 2).Resize(0, 1).Address
Debug.Print Cells(2, 2).Resize(1, 1).Address
Debug.Print Cells(2, 2).Resize(1, 2).Address
Debug.Print Cells(2, 2).Resize(, 1).Address
Debug.Print Cells(2, 2).Resize(, 2).Address
最初の行はダメサンプルね
>>95 だからめんどくさいから誰もやらないよって言ったでしょ
Q1 ない。メモリを多く使うぐらい。ただしあまりメモリを使いすぎるとバグったり落ちたりする。
Q2 別にない。めんどくさいだけだと思うので普通は0から順に配列に入れるようにすると思う
Q3 for each
ともあれ、動いたならそれもひとつの正解
色々コードを書くうちに、どういうのが最適か、あ自分にあってるか分かるようになるよ
>>83 ダイアログとはなんでしょうか?ネットで調べてみたらダイアログボックスとでてきたのですがこのことでしょうか?ホントに無知ですみません。
>>107 無理
全部貼ってからいらない部分を消すしかない
>>107 表の部分だけほしいという意味なら
それは単なるカットアンドペーストでOK。
コピーアンドペーストか・・・・ まあそれはわかってるでしょうけど。 終値だけといわれるとねー
>>106 ダイアログボックスのこと。
回帰分析を選択したら出てくる画面。
>>107 毎回所定の位置(セル)に終値を入れる場合、空いているシートにコピペしてそこから
終値の列をリンク貼り付けさせるようにすれば毎回空いているシートにコピペ
するだけで良いけど
>>114 ありがとうございます。
例えば全てをSheet1に貼り付けて
Sheet2の表示させたいセルに『!Sheet1英語数字』って入力するやつですね。
>>117 コピーして貼り付けてから不要なセルを切り取るんですね。
119 :
107 :2012/11/22(木) 19:18:20.40
>>120 A→ZとかZ→Aのボタンですね、ありがとうございます。
122 :
117 :2012/11/22(木) 20:19:16.57
またすいません。 A日付、B始値、C高値、D安値、E終値、F出来高、G調整後終値で 日付の古い順からになりました。 Hには当日の始値−1番新しい日の始値にしたいのですが 本日11/22の始値がB161なので H2(1には「日付」とか「始値」とかタイトルを記入しているので)に 『=B2-B161』と記入すると今後入力するB162以降またすべて『』内をかえなければならないし H2を選択してセルの太枠の右下に近づけ白プラスを黒くしそのまま下にもっていってコピーすると H2・・・=B2-B161 H3・・・=B3-B162 H4・・・=B4-B163 となってしまいます。希望は H2・・・=B2-今後入力する1番新しい日のB H3・・・=B3-今後入力する1番新しい日のB H4・・・=B4-今後入力する1番新しい日のB で更新するたびに簡単にコピーできるようにするにはどうしたら良いでしょうか?
H2==VLOOKUP(MAX([日付]),テーブル1,2,0)-テーブル2[[#この行],[始値]]
124 :
117 :2012/11/22(木) 20:41:36.00
解決しました。
>>123 ありがとうございます。
そのまま入力したところ入力した数式は正しくありません。となっており
OKを選択すると[日付]の部分が黒くなってます。
>>125 H2に
=B2-VLOOKUP(MAX(A:A),A:B,2,0)
と入れて、そのセルの右下の白プラスをダブルクリック
次の日に一行足したら、そのH列の式を一つコピペして伸ばす
この表のA列の下とかには、関係ない数字とかは入力しないでね。
>>126 完璧です。ありがとうございます。
VLOOKUPの後は
MAX(A:A)・・・Aのセル中で1番新しい日で
A:B・・・検索範囲
2・・・左から2番目の値
0・・・検索方法は完全一致でなければならない
という解釈でよろしいのでしょうか?
もしH2の隣のI2に1番古い日のB−当日のBの値を入力させたい場合は
=VLOOKUP(MIN(A:A),A:B,2,0)-B2
かなと思ったんですが、計算結果が間違ってるようです。
128 :
51 :2012/11/22(木) 22:29:12.65
>>104 どーやって遊ぶの?
Sub てす()
Debug.Print Cells(2, 2).Resize(0, 1).Address
Debug.Print Cells(2, 2).Resize(1, 1).Address
Debug.Print Cells(2, 2).Resize(1, 2).Address
Debug.Print Cells(2, 2).Resize(, 1).Address
Debug.Print Cells(2, 2).Resize(, 2).Address
End Sub
って書いてF8押したら・・・
「実行時エラー'1004' アプリケーション定義またはオブジェクト定義エラーです」と
メッセージが出て1行目で止まっちゃいました。
129 :
51 :2012/11/22(木) 22:33:33.51
>>105 ありがとうございます。
Q2で、「普通は0から順に配列に入れるようにする」とのことですが、
51の例にも当てはまりますか?
Q3の「for each」だけじゃ〜ワケワカメ・・・
>>127 >という解釈でよろしいのでしょうか?
そうです。
>もしH2の隣のI2に1番古い日のB−当日のBの値を入力させたい場合は
式は合っていると思うけど、間違いかな?
古い日が一番上にあるから、I2は同じ数字を引いてゼロのはず。
で、その式でもゼロが出るけど。
>>130 すいません。自分の計算が間違っておりました。
ありがとうございます。
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 A B C D E 1 りんご みかん キウイ バナナ 2 2008 100 50 150 55 3 2009 105 53 153 50 4 2010 102 48 156 58 5 2011 110 50 159 57 6 2012 101 52 160 56 7 8 2010 キウイ XXX この表で、B8とC8を参照して、2010年のキウイの値段を検索する式はD8にどう書いたら良いのでしょうか?
132自己解決しました。INDEXとMATCHで余裕でした。 A2〜E6に名前をつけて =INDEX(名前,MATCH(B8,$A$2:$A$6,0),MATCH(C8,$A$2:$E$2,0))
2010とキウイでフィルタリングすればいいのに
2003とか使ってる時点でどうでもいい
136 :
名無しさん@そうだ選挙にいこう :2012/11/23(金) 12:52:01.08
あなたのYahoo!トップページにも「愛媛新聞ONLINE配信」が表示されていますか?
137 :
85 :2012/11/23(金) 14:39:27.14
A1の書式設定で、B1の数値を参照する時に 【数値が1〜999の時】 という数式はどうすればよいのでしょうか?
>>137 =AND(B1<1000,B1>0)
とか。
139 :
138 :2012/11/23(金) 15:30:30.19
少数点以下の数字も扱うのなら =AND(B1<1000,B1>=1) の方が無難でしたね
140 :
85 :2012/11/23(金) 15:57:56.91
>>138-139 ありがとうございます。できました。
またB1に数値を入力した場合、右のC1に
入力した時の時計時間を自動的に表示させることは、VBAを使わずに
できるのでしょうか?今は手動でC1に[Ctrl+:]を入力してるのですが・・
>>140 出来なくはないけどExcel単体でやるのは無理
Excel単体でやるならVBA
142 :
85 :2012/11/23(金) 16:15:06.90
了解です。ありがと。
143 :
107 :2012/11/23(金) 16:45:30.08
A1の数値>B1の数値なら・・・(A1−B1)÷A1×100の数値の末尾に『%』をつけ文字の色は赤で A1の数値<B1の数値なら・・・(B1−A1)÷A1×100の数値の末尾に『%』をつけ文字の色は緑で A1の数値=B1の数値なら・・・黄色で『0』を A1とB1どちらかでも未入力なら黒色で『―』をC1に表示させるの最終的な目的で とりあえず1つ1つやっていこうと思いC1に =IF(A1>B1,"(A1-B1)/A1*100","")と入力して A1とB1に適当な数値を入力(もちろんA1の値を大きく)したんですが(A1-B1)/A1*100と 表示されるだけです。偽りの場合が未入力だからでしょうか? もしそうなら何を入力すればよいのでしょうか?
>>143 ""で括ると文字列として扱われるから
括っている""を取り除けばいい
>>140 勧めはしないが反復計算使えば出来なくはない
関数でこれだけは絶対覚えておけ!って何がありますか 自分はスミフとラウンドダウン、アップぐらいしかわかりません
ブイロオクウプだな
148 :
143 :2012/11/23(金) 18:14:00.87
>>144 ありがとうございます。
=IF(A1>B1,(A1-B1)/A1,IF(A1<B1,(B1-A1)/A1,IF(A1=B1,"―")))
で、大筋いいんでしょうか?
C1のセルの書式設定で表示形式の分類をパーセンテージにすると100倍されてしまうので
=IF(A1>B1,(A1-B1)/A1)でいいわけですね。
しかし表示形式の分類をパーセンテージにすると同時に数値も選べなくなってしまうようで
A1>B1なら赤文字に出来なくなります。それどころか文字色を緑や黄色には不可能なんでしょうか?
>>146 ルックアップとブイルックアップかな?
というか業務で使うやつが何かにもよる
一般事務レベルだとExcelで○○したいな、○○があると便利になるな…ってのは大抵が出来ると思う
ググったり、Excelの本を読まずに素で出てくる関数なんて両手で数える程度だw
>>146 ヘルプがあるしネットにも情報は溢れてるからいちいち覚える必要なんてないと思うよ
よく使う関数はわざわざ覚えなくても自然に覚えてしまうし
ヘルプが好きなやつって、自分がわかってるからだろ? 初心者に対してヘルプを見ろ言われても、MSの不親切なヘルプじゃ理解できないのが多いと思うぞ。
覚えた関数を使うのではなくて、やりたいことがエクセル(関数で)で出来るか否かを調べた方が良いんじゃない? 山手線の駅名を全て覚えるよりも、よく使う駅の地理を覚えた方が身のためになる
スミフw
154 :
名無しさん@そうだ選挙にいこう :2012/11/23(金) 20:00:09.68
覚えた関数を使わないって、バカなの?
155 :
名無しさん@そうだ選挙にいこう :2012/11/23(金) 20:02:48.31
スミフの意味を教えてください
>>155 イミフとは関係無いな。
ようつべ的なもんだな。w
157 :
51 :2012/11/23(金) 20:15:15.19
104さぁ〜ん、105さぁ〜ん
158 :
名無しさん@そうだ選挙にいこう :2012/11/23(金) 20:26:41.27
>>154 必要ないなら使わないだろ
覚えたの使う為に不要なの作っても意味が無いし
>>157 知らん。
>>51 とかほとんど読んでない
Q2に関してはどうあれ動かせるなら問題ない
Q3に関しては「vba foreach」ぐぐって何度もためしてみるといい
無理でもfornextで代用できるので問題はない。
つまり何も問題はない。めんどくさいだけ。
あとは勉強あるのみ。
162 :
名無しさん@そうだ選挙にいこう :2012/11/23(金) 21:24:50.06
【1 OSの種類 .】 Window7 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 Q.プルダウンで1月から12月を選択できて、1月を選べば1月の表が表示 されるようにしたいです。プルダウンにより定義された表を切替表示する ということでしょうか。方法がわかりません。よろしくお願いします。
164 :
名無しさん@そうだ選挙にいこう :2012/11/23(金) 21:30:28.70
165 :
51 :2012/11/23(金) 21:35:32.56
>>160 えぇーと、貴方は105さん?
名前の欄にレス番を入れてホスィ〜です。
ベテランさんなら、51のマクロが何をしようとしてるか読み取るのに1分も掛からないでしょ?
目を通して教えてくださいよ〜
97さんの Erase MDL は知的財産になりました。
しかーし、For Each をググっても、51のFor文と同じような使い方しかわかりましぇ〜ん・・・
166 :
名無しさん@そうだ選挙にいこう :2012/11/23(金) 21:37:29.55
Win7に2003をインスコか・・・
>>164 違う、どこにどんなふうに定義されてる表なのか?ってこと
ほっとけば自己解決するのに
169 :
名無しさん@そうだ選挙にいこう :2012/11/23(金) 21:43:49.36
>>164 すみません、表を定義すれば表示も楽にできるのではという思いつきなので
特に何も作れておりません。どんな方法でも構いませんので教えてください。
表示切替したいのは試算表ですが、カレンダーをイメージして頂いても良い
です。プルダウンで2月を選べば2月のカレンダーの表に切り替わるという
感じです。
95, 97, 2000, 2002(XP), 2003, 2007, 2010と使ってきたが、2003が一番使いやすいw
2回目以降の質問では名前欄に初回質問の番号を入れよう
173 :
162 :2012/11/23(金) 21:49:45.30
>>171 マクロは言われた通りに操作はできますが、自らコードを考えて打つことは
できません。だから否にしています。シートにマクロ機能を付けること自体
は問題ありません。
>>169 >特に何も作れておりません
どこにも定義されていない表をどうやって表示切り替えするんだ?
プルダウンで月を選択したら自動で表を生成したいのか?
VBAでやれ
175 :
162 :2012/11/23(金) 21:53:20.05
>>174 自動で表を作成するのではなく、他のシートに既にある表を呼び出すような
形にしたいのです。VBAでも良いのですが、勉強不足でわかりません。
176 :
名無しさん@そうだ選挙にいこう :2012/11/23(金) 22:07:58.58
VBAでの回答の可否は "可" じゃねーの? おまえの勉強のためにも自分でつくれ!
177 :
162 :2012/11/23(金) 22:17:32.84
>>175 すみません、確かに"可"ですね。一からとなると時間がかかってしまいますので、
ここで相談させて頂きました。
>>175 説明できずに現状がサッパリわからないし逆質問しても答えてくれないから無理
現段階のブックをアップしてみ、作ってやるから
月でフィルタリングすればいいのに;
180 :
162 :2012/11/23(金) 22:56:33.49
>>178 ありがとうございます!いましばらくお待ち下さい。
181 :
162 :2012/11/23(金) 23:09:37.51
>>162 ここでvlookupの出番ですよ!
indirectと組み合わせれば、月ごとのシートから呼び出すのもラクチン
回答してる奴ら頭固すぎwww
仕様とかぢゃなくて、こんなんあるっていう提案が欲しいだけだろうに
1月を選んで1月の表が表示できる? 表の値なら表示できるけど
185 :
名無しさん@そうだ選挙にいこう :2012/11/23(金) 23:32:29.57
>表を定義すれば表示も楽にできるのではという思いつきなので >特に何も作れておりません と書いてたな・・・
>>181 見るまではVBAだなって思う内容だったろ。
>>162 その
>>181 の月別の表は月別に別シートでないとだめなんかね。勘定科目固定だし普通に一つの表で
横軸に勘定科目、縦軸に年月の形にすりゃINDIRECTも不要で単純なVLOOKUP+MATCHで出来るが。
すでに運用中の物なら今から変えろとは言わんけどこれから作るなら選択肢はいろいろあると思う。
>>169 プルダウンじゃなく、linkにすれば楽じゃん
>>181 結構めんどくさい構成になってるんだな・・・
(1)各月のシート名をプルダウン内容の値「YYYY.MM」と同じ形式に変更する
(2)プルダウンのコントロールの書式設定のコントロールのリンクするセルに適当なセルを設定する
(3)8行目の年月欄に「=INDEX(プルダウン内容!$D$4:$D$15,[(2)で設定したセル])」みたいなのを設定する
(4)簿価欄に「=INDIRECT("'"&$A$8&"'!B4")」みたいなのを設定していく
後だしジャンケンなのにみんな優しいのね(♥
とりあえずシート名を半角にするのか全角にするのかは統一してもらったほうが検索しやすくなると思う プルダウンの内容がどうなっているのか俺には理解できんので消してもらうとして、B6あたりに 入力規則でリストを選択、B10あたりから、各シートの内容が変わらないのであれば =INDIRECT(B6&"!b4") な感じの式で楽勝 あまりに汎用性がなさすぎるので、 B列は =VLOOKUP(A11,INDIRECT($B$6&"!a1:b8"),2,FALSE) D列は =VLOOKUP(C11,INDIRECT($B$6&"!c1:d8"),2,FALSE) な感じ? 2の月の間の累計は… 作業列作って表示しまくるくらいしか思いつかん VBA使うと、SUMとAVERAGEしか使えない上司がキレる場合があるんで、自分だけで使う資料じゃない場合は先に確認しといた方がいいぉ(*´д`*)
>>128 ,157
まだやってたのかよ。
Debug.Print Cells(2, 2).Resize(0, 1).Addressはあなたの書いた
FSK.Cells(i1, j1).Resize(0, 1).Delete Shift:=xlToLeftと同じResizeの使い方。
まちがってるからエラーになって当然。自分で動かないって言っているではないか。
2行目からが動くResizeのサンプル。Resizeの引数と対象セル範囲の確認。
Debug.Printってナーニなんて言わないでね!
年 月 現金 その他流動資産 ... 純資産 負債・純資産計 2012 1 1 2 3 ... 12 20 2012 2 ... ... のようなデータ形式にするといろいろ捗るぞ
195 :
51 :2012/11/23(金) 23:58:21.82
>>193 Debug.Printってナぁ〜ニ?
あー、 デバッグ時にプリントするんだよ
A1〜A3セルに、5、-3、あ が入力されてるとき、下記のtest()を実行すると 5 と あ がメッセージに出ます。 Sub test() For i = 1 To 3 If Cells(i, 1) > 0 Then MsgBox Cells(i, 1).Value End If Next End Sub 5だけ(0より大きい数字)だけ出すにはどうすればいいですか?
IsNumeric
どういたしまして
♡
ありがとうございます
明日はJS 0人、JC 0人、JK 1人か・・・
JAのお姉さんもいるかも。 ちなみに、私はJTのお客さん
206 :
51 :2012/11/24(土) 22:39:39.12
>>193 これはこれは失礼しました・・・
無事に解決しました。
お馬鹿なオイラに付き合ってくれて、ありがとうございました。
JRの運転手さんも最近はお姉さんが増えてますね
JJのお嬢さんは好きだぞ
209 :
69 :2012/11/25(日) 03:10:26.82
>>70 遅くなりましたが、ありがとうございます。
ただ私の見方が悪いのか、
作成していただいたというものを見れませんでした・・
>>69 を解決するような簡潔な方法をご存じの方、
アドバイスいただけないでしょうか
ピボット以外の解法でもなんでもかまいません。
よろしくお願いいたします。
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 はい・いいえ(特に関係なし) 【4 VBAでの回答の可否】 可・否(特に関係なし) 少し混み入った数式を、別セルにCTRL+Cでコピーすると 何故か、別セルの数式だけ「矛盾した数式」というエラーが出ます。 10個以上の(全く同じ数式の)コピーがあり、そのうち真ん中へんの ランダムとしか思えない位置に1つだけエラーが出るのですが、 これはどうやったら直るでしょうか? Excel自体が持つバグか何かでしょうか?
矛盾のエラーはいちどにひとつしかでない
>>210 そこまで明確になってるなら具体的に提示しろ
解決を遅らすゲームでもやってんのか?
>>210 数式の検証をしてエラーを特定して下さい。
215 :
名無しさん@そうだ選挙にいこう :2012/11/25(日) 13:17:14.50
>>209 >>69 ピボットテーブル作成した後に
行ラベルと列ラベルで、AとBを残す(Cのチェックを外す)だけ
でいいじゃない。
210です。 「このセルにある数式が、セルの周辺の数式と異なっています」エラーでした。 もちろんCTRL+C>CTRL+Vで貼り付けただけなので、周辺の数式と異なるはずもなく。 現在かなり離れた別の数式群でももう1箇所で発生しました。 ちなみに式は、 【FR9】=IF(DF9="","",IF(VLOOKUP(FP9,票1,4,0)>0,VLOOKUP(FP9,票1,4,0),0)+VALUE(SUBSTITUTE(DF9,"*","",1))*IF(VLOOKUP(FP9,票1,4,0)=-1,1,FT9)) この数式ってのが現在3〜35まで存在し、なぜかFR13だけ 「このセルにある数式が、セルの周辺の数式と異なっています」エラーが出ています。
票1がなんだかわからんけど、検索範囲が$で固定されてないとかそんなオチ?
>>217 それぞれ、DF3〜DF35、FP3〜FP35、FT3〜FT35を見る必要のある数式で、
無論、DFもFPもFTも行違いの完全同数式です。
票1も挿入>名前で固定してあります。
>>218 もう一度4行以下を消してFP3を35行までコピペやオートフィルしても13行でエラー出る?
sub 魂の叫び msgbox ("関数の入れ子がわからん") end sub
自分でエラーの原因がわからんような複雑な式つくるのは頭の悪い証拠 エラーがわかるように式を複数のセルに分割しろ
>>216 その数式のどこで矛盾が発生しているか数式を分解して調べたら?
ifいれすぎ。自分で書いててわかりにくくない?
IFが多いとは思わないけど何回もVLOOKUPするのは無駄だし見づらいね
雑談すれって新しくたたないのか
>>210 そのセルの上下左右のセルも同じ式と考えていいの?
それとも上下左右のセルどれかには、違う式のセルがあるの?
228 :
209 :2012/11/25(日) 19:58:07.70
>>215 ありがとうございます。
確かに会社の数が少なければそれでいいのですが、
買手A社-売手B社
買手B社-売手A社
C社-A社
A社-C社
D-E・・・
買手Y社-売手Z社・・・・・
のように多数の組み合わせがあるのです。
そこで
A-B 500円(AからBへの売上高とBからAへの売上高の合計)
A-C 400円
C-B 900円
Z-B 100円
のように一覧で見られるようにしたいのです。
現在は売手A列 買手B列 売上高C列のようにエクセルに入力されています。
IF関数でいけるかと試行錯誤してるのですがうまくいきません。
もしなにか方法がありましたらアドバイスお願いいたします。
長々とすみません。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【4 VBAでの回答の可否】 可 a = "2012/11/23" b = Format(a, "aaa") bは金になりますが、祝日を返す方法がありますか? 変数に日付データを入れたとき、平日か休日(土・日・祝)かを分岐したいです。 夏休みとか年末年始は、土・日・祝でなければ平日扱いです。
>>229 休日のテーブル作ってそれを参照するようにすればいいかと
土日が確実に休日なのであれば祝日テーブルを作るだけでもいいかな
>>229 祝日データは
>>230 が言うように自分で用意するしかないが、
平日か休日(土日祝)かの分岐でいいならこんな方法がある
=NETWORKDAYS(日付,日付,祝日)
「祝日」は祝日を表す日付を入力したセル範囲
最初の2つの引数に調べたい日付(同じ日付)を入れる
これで休日なら 0 が返ってくるし、平日なら 1 が返る
2003だとツール>アドイン>分析ツールをやっとかないと
NETWORKDAYS関数は使えなかったかもしれない
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 今までデータタブにソルバーの項目が出ていたのですが 何故か消えてしまいました。 オプションの有効なアドインでソルバーは有効になっています。 どうすればいいでしょうか。
>>233 消えた理由はわからないけど、タブの内容はファイル→オプション→リボンのユーザー設定→メインタブ→データ、から
自由に変更できる
>>234 そこにも項目が無かったのでアドイン一覧のチェックをクリックし直して
PCを再起動したら復活しました。
ありがとうございました。
関数の質問なんですが 例えば A1〜AA1の範囲の中で3がある時、 各々3があるセルの二つ下のセル (A1に3がある時はA3、B1に3がある時はB3、AA1に3がある時はAA3) の数値の合計を求めたい時 (A1とB1とAA1が3で、A3が30、B3が40、AA3が209 だった時、279) って何の関数を使えばよいのですか? もしくは A1〜A5 B1〜B5 ・ ・ ・ AA1〜AA5 それぞれの範囲で、5と2が含まれていて それぞれの3つ下のセルの合計を求めたい時 (A1〜A5の時はA8、B1〜B5の時はB8、C1〜C5の時はC8、AA1〜AA5の時はAA8の数値の合計) A1〜A5、B1〜B5・・・・AA1〜AA5 ってそれぞれで一々関数を指定するのは面倒なので、それをA1〜AA5まで一気に範囲指定したい時 ってどういう関数を使えばいいのかアドバイスください。
>>236 =SUMIFS(A3:AA3,A1:AA1,3)
>>236 後半のも
>>237 を応用して
=SUMIFS(A8:AA8,A1:AA5,3)
で出来るんじゃね。
スミフスw
>>238 はやってみたらダメだったから参考にしないでくれ。Orz
241 :
236 :2012/11/26(月) 19:06:26.52
>>236 ですが、
>>236 はなかったことにしてください。すいません。わかりづらい上にちょっといい忘れたことが多かったので。
画像を用意しました。
http://uploda.cc/img/img50b33a8cae1ea.jpg このような表があるとします。
この画像は
(1).B1〜B5、E1〜E5、H1〜H5、K1〜K5 のそれぞれ範囲でYとZの文字(記号)が両方含まれていた時(この画像の場合、B1〜B5、E1〜E5、K1〜K5)
(2).B1〜B5にYとZが含まれていた場合A6・A7・A8・・・A12、E1〜E5の場合D6・D7・D8・・・D12、K1〜K5の場合J6・J7・J8・・・J12
YとZの両方の文字(記号)が含まれているセル
(3).(2)のセルの右隣の数字の合計がB15に書いてある
というのを表しています。
これを実現しようとした場合、どういった関数を使えばよいのでしょうか?
一回の関数計算では無理でしょうか?
242 :
236 :2012/11/26(月) 19:09:01.36
>>237-240 一応
>>236 はなかったことにしたんですが、
>>241 を書く間にお答え頂いて本当にありがとうございます。
せっかくアドバイスくださったのに取り消してしまってすいません。
ですが、いくつか参考にしてみようと思います。ありがとうございます。
>>241 1関数でやりたいならSUMPRODUCT
>>83 遅れてすみません。教えていただいた通りやりましたらできました。ホントにありがとうございました。
>>243 (1)はSUMPRODUCTだけでできるけど
(2)はSUMPRODUCTだけでやるのは無理じゃね?
246 :
236 :2012/11/27(火) 03:42:54.62
>>241 についてですけど
やっぱり一行の関数では難しそうですか?
仮に(1)(2)(3)で分けるとしたらどの関数を使えばいいと思いますか?
次の3つのシート名があるブックにマクロを書きます。 目次 原紙 集計 シート"原紙"をコピーして、マクロを実行したら コピーしたシート"原紙 (2)"をアクティブにしたいのですがいまくいきません。 どうすればいいですか? Sub シート選択() For Each WS In Worksheets If WS.Name <> "目次" Then If WS.Name <> "原紙" Then If WS.Name <> "集計" Then Worksheets(WS.Name).Activate End If End If End If Next End Sub
>>246 (1)はSUMPRODUCTだけでできる
(2)はSUMPRODUCTと他の関数を組みわせればできる
(3)はSUMPRODUCTだけでできる
最終的に、上の3つを繋ぎ合わせれば1つの数式にできるけど
可読性が下がるのでキミにはオススメできない
>>247 Worksheets("原紙 (2)").Activate
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 1.商品番号が文字列として羅列されたxlsファイル(シート「data.xls」)があります。1行1商品で1000行以上 2.別途フォルダには、その商品番号の一部をファイル名とするファイルがあります。2000ファイル以上 1.のファイルに書かれた商品番号と合致するファイル名のファイルを 2.のフォルダAから別のフォルダBに移動したいのですがバッチはどのように組めばいいでしょうか?
>>250 VBAがわからないなら無理かと
丸投げしたいなら仕様をもれなく書かないと
ありがとうございます。 D:data.xls の内容は二行目から aaaaa bbbbb ccccc というふうに商品名が書かれています。 D:A\ 内は aaaaa_111.xls bbbbb_222.xls と言うようになっています。(「_111(222)」は少し邪魔ですが。 このフォルダ内のファイルで、data.xlsの行にないファイル名のファイルは D:\Bフォルダに移動させたいのです。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 ブックA、および、ブックB、C、D、…があります。 ブックB、C、D…にはそれぞれシート1、シート2、…と複数のシートがあり、それぞれのいくつかの特定のセルに文字列や数値があります。 ここで、ブックA上で、ボタン(フォームオブジェクト)を押すとファイル読み込みダイアログのようなものが出て、ブックBなどを指定すると、 そのブックの、各シート名とそのシートの特定セルの値を読み込んで、ブックAで表にするという事がやりたいのですが、可能でしょうか? 別ブックの内容を参照する方法がよく分かりません。 よろしくお願いいたします。
【1 OSの種類 .】 Windows vista 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 VBAは使えませんが、それしか方法がない場合はお願いします A1、B1、C1、D1それぞれのセルに、商品名、数値、数値、計算結果が入っているとして、 エクセルファイルを閉じるたびに、数値の部分だけリセットされるようにするにはどうしたらよいのでしょうか?
255 :
252 :2012/11/27(火) 17:15:00.48
解決しました。
>>254 自動的に計算結果も元に戻って良いなら単純に閉じるとき゛保存しない゛を押せばよい。
>>254 上書き保存や名前を付けて保存の場合は変更した内容で保存されて、
閉じると同時に保存される場合のみリセットされる必要があるの?
であればBeforeCloseイベントで処理すればいいと思う
>>254 >>258 さんの方法(エクセルファイルを閉じるときにマクロでクリア)の逆の方法でもいいかも。
対象となるエクセルファイルを開いたときに自動的に対象セルをリセットするというものです。
>【3 VBAが使えるか】 いいえ
ということなので、わかりやすいサイトを見てください。
http://www.happy2-island.com/excelsmile/smile03/capter00706.shtml の中の MsgBox "いらっしゃいませ!" の部分を 対象セルをリセットする処理 に変えればいいわけです。
「リセットしたい」が単にクリア(Delキーを押すこと)であれば、
Worksheets("対象となるシート名").Range("A1:D1").ClearContents に変更するだけ。
なお、上記サイトに少し補足。VBAの編集画面を出したら、画面左上(VBAProject)の ThisWorkbook という
ところをダブルクリックしてください。
そうすると、上記サイトの最初の説明図の Workbook の部分が (General) になっているので、
プルダウン(▼をクリック)で Workbook を選んでください。
右側の Open の方はプルダウンで多くの選択肢が出ます。 BeforeClose を選べば
>>258 さんの
方法になります。 ※以上は全てExcel2003なので2007だと少し違うかも。
BeforeClose の方で試してみたら、「○○への変更を保存しますか?」のダイアログが出た瞬間に
対象セルの内容が消えました。
260 :
253 :2012/11/27(火) 19:16:46.49
>>257 早速ありがとうございます!
次に分からないのが、「ファイル読み込みダイアログのようなものが出て、ブックBなどを指定する」という部分です。
"ブックB"というファイル名を取得する方法ですね。
例えば、ファイル選択で"ブックB"を指定して、ブックAのセルA1に、ブックBの一番右のシートのセルB2を表示させるにはどうすればよいのでしょうか?
よろしくお願いいたします。
【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel 2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
http://uploda.cc/thumb/img50b497c6406a8.jpg 写真のように各セルに数値を返したいです
つまり、C4〜H4、C5〜H5…まで連続したシートの固定セルの値を返すということです
こうするにはC列の各セル(緑)にどのような数式を入力し、横方向にコピーすればよいでしょうか
よろしくお願いします
263 :
247 :2012/11/27(火) 19:56:10.75
>>249 おぉー、そのままダイレクトに指定すれば簡単にアクチベートできますねぇ〜
って、俺の質問が間違ってた・・・ orz
昨日は会社でサビ残やってたら「いつまで残ってんじゃヴォケ!」と怒られて
家に持ち帰ってからコタツトップのパソコンで精を出してたんだけど
いつの間にか寝ちゃって気づいたら午前3時半。
あ゙ー!!!ヤベ〜〜〜〜と思って取り掛かったものの行き詰って
「あ、そだ、2ちゃんで質問して会社に着いた頃には誰かがレスしてくれてるだろう」なんて
安易に考えながら睡魔と闘いつつ書いたんだけど、肝心なところが抜けてた・・・
で、本題ね。
------------------------------<キリトリ>--------------------------------
次の3つのシート名があるブックにマクロを書きます。
目次
原紙
集計
シート"原紙"をコピーして、シート名を適当な名前に変えてからマクロを実行したとき
コピーしたシートをアクティブにしたいのですがいまくいきません。
どうすればいいですか?
目次(名前固定)
原紙(名前固定)
ほげ(名前不固定)
集計(名前固定)
>>263 For Eachループで回しながら、「除外するシート名のときは何もしない」にすればいいのでは?
Select Case 〜 Else を利用する。
Sub シート選択()
For Each WS In Worksheets
Select Case WS.Name
Case "目次"
Case "原紙"
Case "集計"
Case Else ' 上記3シート以外のときにここが実行される
Worksheets(WS.Name).Activate
End Select
Next
End Sub
対象のブックに目次、原紙、集計以外のシートが複数あった場合、
先に指定した3シート以外の全てに同じ処理をしてしまうので要注意。
ま、この場合は目にも止まらぬ速さでシートが切り替わるだけですが。
>>261 C4=INDIRECT("シート"&COLUMN()-1&"!A1")
266 :
247 :2012/11/27(火) 21:02:10.74
>>264 おぉーーー!!!
スゲーーーー!!!
できたーーーー!!!
ありがとーーーー!!!
Ifばかりで、Select Caseなんて使ったことなかったょ。。。
>>266 ほげ(名前不固定)があっても、問題ないの?
>>260 >ファイル選択で"ブックB"を指定して、
GetOpenFilename
>ブックAのセルA1に、ブックBの一番右のシートのセルB2を表示させる
=[ブックB]一番右のシート!B2
appleをaelpp 49284を24489 BE@CMBを@BBCEM みたいに自動で文字順に並べ替えさせる関数って何を使えばいいんですか?
>>270 MID関数→CODE関数→SMALL関数→HLOOKUP(VLOOKUP)関数→CONCATENATE関数
>>264 3行をまとめて
Case "目次","原紙","集計"
じゃいかんの?
あまり長くなると見づらいがこの程度なら視野の範囲かと
>>264 Worksheets(WS.Name).Activate
これもおかしいぞ
WS.Activateを回りくどくしてるだけだし
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2003 AK〜AM列に数字が入っており、マクロで行ごとに 計算を繰り返すとき、十数秒掛かっています。 手動でオートフィルするよりずっと早いですが、 もっと時間短縮にする方法があれば教えてください。 Application.ScreenUpdating = False For i = 2 To 10000 Cells(i, 37) = Cells(i, 37) + Cells(i, 39) Next
>>275 セルに書き込む回数を9999回から1回に減らせばかなり速度は上がるんじゃないかな
>>275 Range("AM2:AM10000").Copy
Range("AK2:AK10000").PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd
ん?
279 :
254 :2012/11/28(水) 03:18:09.36
>>258 確かにその通りなのですが、うっかり保存するをクリックしてもいいようにという対策のためなんです
>>258 計算結果のための関数に入力した数値のほかに別のシートのデータを用いるので、そこを変更したときは保存したいのですが、
数値は毎回リセットされた方が便利なので・・・
>>259 さんの方法とともに参考にさせていただきました
>>259 詳しくありがとうございます
>>259 さんの方法、
>>258 さんの方法についてググってみて組み合わせてみたところ成功しました
お三方とも回答ありがとうございました
>>275 普通はそのコードでも十数秒はかからん
再計算を一回とめてみたら?
まぁ配列から一気のほうがいいことはいいんだが
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 スレ違いかもしれませんが、エクセルからパワーポイントにグラフィックオブジェクトで貼った図を 逆にパワポからエクセルにデータとして抽出することは可能でしょうか エクセルのデータが消えてしまってパワーポイントでしか残ってないのですが、 なんとかデータを抽出して復元したいです
282 :
253 :2012/11/28(水) 14:16:01.87
>>269 ありがとうございます
ご解答を参考に簡単なテスト用のマクロ (指定したブックBの一番右側のシート名をメッセージで表示) を作ってみましたが、うまくいきません。
読み込むブックBと、マクロを実行するブックAとは別フォルダにあります。
アドバイス、よろしくお願いいたします。
Sub 読み込み_Click()
Dim OpenFileName As String
Dim SheetNumMax
Dim SheetName As String
Dim RefBook As Workbook
OpenFileName = Application.GetOpenFilename()
Set RefBook = Workbooks(OpenFileName) ←ここでエラーで止まる
SheetNumMax = RefBook.Sheets.Count
SheetName = RefBook.Worksheets(SheetNumMax).Name
MsgBox SheetName
End Sub
284 :
253 :2012/11/28(水) 16:10:29.06
>>283 ありがとうございます!
Set RefBook = Workbooks.Open(OpenFileName)
で、出来ました!
(最後にCloseもつけました。)
ただ、これだと実際にブックBが開いてしまうのですが、開かずに(表示させずに?)、別ブックを参照取得する方法はありますか?
あと、GetOpenFilenameでダイアログに表示させるファイルをフィルタリング表示する時に、
例えばファイル名の先頭が"A"のファイルだけ表示させたい場合は以下の記述ではダメでしょうか?うまく出来ませんでした。
OpenFileName = Application.GetOpenFilename("テスト(A*.xls),A*.xls")
よろしくお願いいたします。
>>284 >ただ、これだと実際にブックBが開いてしまうのですが、開かずに(表示させずに?)、別ブックを参照取得する方法はありますか?
色々方法はあるけど一旦「」等で検索してみて
>ファイル名の先頭が"A"のファイルだけ表示させたい
Application.GetOpenFilenameでは無理なのでApplication.Dialogsを使う
286 :
285 :2012/11/28(水) 17:26:57.15
>>285 検索キーワードを書き忘れた・・・
「excel vba 非表示 開く」
こんな感じの罫線を引くため、マクロの記録をやってみました。
http://gigabyteserver.com/uploader01/img1234/winplus.jp272.jpg 非常に長いので、どなたか無駄なところを省いて短い文にしてください。
Sub keisen()
Range("B2:E16").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlHairline End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlHairline End With Range("B2:E2").Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With
With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlHairline End With Selection.Borders(xlInsideHorizontal).LineStyle = xlNone Range("D2:D16").Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlThin End With
With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlThin End With Selection.Borders(xlInsideVertical).LineStyle = xlNone End Sub
>>287 Sub keisen2()
With Range("B2:E16")
With .Borders
.Weight = xlThin
End With
With .Borders(xlInsideHorizontal)
.Weight = xlHairline
End With
With .Columns(1).Borders(xlEdgeRight)
.Weight = xlHairline
End With
With .Rows(1).Borders(xlEdgeBottom)
.Weight = xlThin
End With
End With
End Sub
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】いいえ 【4 VBAでの回答の可否】否 通常ならば A1には「社内管理No」と入力されてて、A2以下は数字 B1には「品名」と入力されてて、B2以下はパーツの名称 C1には「単価」と入力されてて、C2以下は金額 ・ ・ ・ といった感じのパーツリスト表があり、そこからA2、B2、C2・・・ とセルを参照して入力された項目を別のsheetでピックアップしていますが、 イレギュラーでC1に単価ではなくて「品名(ローマ字)」と入力されいて、 C2以下は品名をローマ字 で表記したリストがあります このようなリストだとピックアップしたい項目がズレてしまうのですが、 どのように対処したら良いのでしょうか? 「社内管理No」と入力されているセルの行を参照する、「品名」と入力されているセルの行を参照する・・・ といった感じかな?とは思いますが、方法が分かりません それと「品名」と「品名(ローマ数)」を別物と認識させることも必要だと思います ご教示宜しくお願いします
>>292 そのイレギュラーを出さない方法を第一に考えた方が良いと思うよ。
294 :
292 :2012/11/28(水) 22:11:45.11
因みに、パーツリストは1000アイテム+αくらいあり、イレギュラーが発生するのは購入先が輸入品の場合です 輸入品はこれから増えると思います(+αの部分で現時点で50程度です)
>>292 意味がサッパリわからん
「参照する」とか「ピックアップする」とかって具体的にどういうこと?
「ズレてしまう」って??
C列に単価じゃなくて品名(ローマ字)が格納されているのに単価が必要なの?
なんなの?どういうことなの?みんなは理解できてるの?
ベストはそもそもレギュラーなデータを用意してシンプルに参照する データの都合上どーしてもイレギュラーになるのなら、IFなんかで場合分けすればいいじゃない
297 :
287 :2012/11/28(水) 22:48:12.32
>>291 ありがとうございます。
予想外の短さです。
何でこんなに短くできるのか悩みそうです。。。
>>292 「ピックアップ」とは? 計算式(Vlookup関数など)ですか?
それとも別の人が作ったマクロかなにか?
>>294 の 因みに、パーツリストは1000アイテム+αくらいあり は、
データ行数のこと? それともシートですか?
>>293 ,296が書いているように、統一した様式にするのがいいと思う。
C列が単価じゃなくて「品名(ローマ字)」となっているものは、C列全体を
選んで [Ctrl]+[−]で1列分削除(右側全体が1列ずつ詰まる)されて
通常のレイアウトになりますが、これじゃダメ?
>>297 Sub keisen2()
With Range("B2:E16")
.Borders.Weight = xlThin
.Borders(xlInsideHorizontal).Weight = xlHairline
.Columns(1).Borders(xlEdgeRight).Weight = xlHairline
.Rows(1).Borders(xlEdgeBottom).Weight = xlThin
End With
End Sub
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 エクセルの表が幅狭なので、A4用紙に2ページずつ印刷したいのです。 プリンタドライバの「割り付け」でできるのですが、A4用紙を横に使ってしかできないので困っています。 縦に2ページ印刷するにはどうすればよろしいでしょうか?
VBAを覚えたらほかの言語のプログラミングもコツみたいなのはなんとなくわかったりするのか?
>>301 VBAを覚えたらVBScriptはすぐに理解できるようになるぞ
流れと言うかそういうのはわかるといえばわかるけど VBAは沖縄弁みたいな言語だからいろいろ戸惑うと思うよ
304 :
名無しさん@そうだ選挙にいこう :2012/11/29(木) 20:20:24.82
pdfやホームページのファイルの文をexcelに写すという作業をやってるんですが 非常に機械的な単純作業でこのペースだとすべて処理するのに一日5時間やっても半年かかります。 これを楽にするツールとかってありますか? もう少し具体的に言うと、あるPDFやホームページの一定の場所に書いてある1・2・3の数字を一、二、三の漢数字に変えてexcelの特定の場所に写すっていう作業なんですけど
俺は知らん てか、目的がワカラン
>>304 PDFとかWebからエクセルへはコピペ
後はシート上で文字列操作関数とかを使って処理
特別なツールなどいらんし
効率よく自動化したいなら自分でマクロを組むしかない
VBAからPDFを操作するには、まずは参照設定な
>>304 簡単に作れると思うけど君が作るなら半年以上かかるだろうね
だから手作業が最速かと
>>304 WebページをExcelにコピペして活用するのは比較的簡単ですが、PDFファイルの場合
は編集しづらい形式なので市販のソフトを使って形式変換して活用するのが良いかと
思う。
ちょっとググったらリッチテキストPDFというソフトが使えそうですよ。
今VBAのopenメゾットというのを習ってるんですが例えばworkbooks.open ("D:ドキュメント ¥練習.xlsx")とやっても実行時エラー’1004’ファイルが見つかりません云々〜 と出ます。ファイルはちゃんとドキュメント内にあるのに・・ ちなみにWindows7エクセルは2010兼任2013です
D:\
>>310 アドレスをテキストとしてコピー (Win7の場合)
○ メソッド
× メゾット
313 :
名無しさん@そうだ選挙にいこう :2012/11/29(木) 21:43:01.85
【1 OSの種類 .】 WindowsVISTA
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
エクセルをアップしました。
http://uproda.2ch-library.com/lib606995.xls 作業日と作業内容、作業者のリストで、Sheet1の状態をSheet2の状態にしたいです。
条件が
・作業者は一日に複数の作業を行うこともある。
・一つの作業を行う際に複数人で行うこともある。(その際は/区切り)
・作業者が行う作業内容が複数の場合は/区切りで表記する
・出来ればマクロではなく関数で解決したいため、ユーザーファンクションというものでお願いしたいです。
・上記が不可能な場合、マクロスタートのボタンを設置しても大丈夫です。
以下が私が考えた処理です。
・実施者の名前で検索
・実施者の名前がヒットしたら作業内容を変数に格納
・次を検索
・実施者の名前がヒットしたら/と作業内容を変数に追加
・次を検索・・・
・最後まで検索したら変数の内容を貼り付ける
最初の検索で躓き、その先の名前がヒットした際に、作業内容を取得するという所もわかりません。
(offset関数を使用しましたがセルの指定でわからなくなってしまいました。)
処理内容は初心者が考えた内容なので無視してしまって構いません。
最終的にSheet2の状態になればいいです。
どなたか宜しく御願い致します。
>>313 作業列に
=IF(ISERROR(FIND($A10,B$2)),"",$A$2&"/") &
IF(ISERROR(FIND($A10,B$3)),"",$A$3&"/") &
IF(ISERROR(FIND($A10,B$4)),"",$A$4&"/") &
IF(ISERROR(FIND($A10,B$5)),"",$A$5&"/") &
IF(ISERROR(FIND($A10,B$6)),"",$A$6&"/") &
IF(ISERROR(FIND($A10,B$7)),"",$A$7&"/")
を入れて最後の"/"を取り除く
罫線は、、、手作業だとダメ?
315 :
287 :2012/11/29(木) 22:35:25.47
>>299 凄いぃぃぃ・・・
なんでこれだけで済むのかマタークわからんw
316 :
313 :2012/11/29(木) 23:15:43.72
>>314 ありがとうございます!
今電車に乗っちゃったので家に帰って検証してみます!
>>313 http://uproda.2ch-library.com/6070892g1/lib607089.jpg ユーザー定義関数のコードの書き方はわかりますか。
Alt+F11(VBEを開く)、挿入→標準モジュール、標準モジュールに下記のコードこぴぺ
関数の使い方
=sget(検索する名前、検索範囲、作業内容の列番号)
サンプルのB10なら
=sget($A10,B$2:B$7,1)
コード
Function sget(ByVal N As String, ByVal NRng As Range, ByVal Clm As Long) As String
Dim R As Range
Dim i As Long
Dim Spl As Variant
Dim Ans As String
For Each R In NRng
Spl = Split(R.Value, "/")
For i = 0 To UBound(Spl)
Spl(i) = Trim(Spl(i))
If Spl(i) = N Then
Ans = Ans & "/" & Cells(R.Row, 1)
Exit For
End If
Next
Next
If Ans <> "" Then
Ans = Right(Ans, Len(Ans) - 1)
End If
sget = Ans
End Function
いちおうサンプルファイルでだけ動作確認した。
318 :
317 :2012/11/29(木) 23:57:52.06
あ、ごめん一か所間違えた。 Ans = Ans & "/" & Cells(R.Row, 1) これの1をClmにしてください。 Ans = Ans & "/" & Cells(R.Row, Clm) Function sget(ByVal N As String, ByVal NRng As Range, ByVal Clm As Long) As String Dim R As Range Dim i As Long Dim Spl As Variant Dim Ans As String For Each R In NRng Spl = Split(R.Value, "/") For i = 0 To UBound(Spl) Spl(i) = Trim(Spl(i)) If Spl(i) = N Then Ans = Ans & "/" & Cells(R.Row, Clm) Exit For End If Next Next If Ans <> "" Then Ans = Right(Ans, Len(Ans) - 1) End If sget = Ans End Function
>>306 >PDFとかWebからエクセルへはコピペ
>後はシート上で文字列操作関数とかを使って処理
>>306 さんならどうしますか?
勿論そのページをすべてコピペするだけの作業ならもっと早く終わります。
しかしそのページに書いてある99%は不要な情報です。
必要なのは一定の場所に書いてあるいくつかの数字だけです。
その必要な場所以外にも数字が書いてあります。
全部で30000ページくらいあります。
もしページすべてをコピペしただけなら、膨大な量になります。
必要な部分だけならレイアウト的にもみやすいですし、最小限の量で抑えられます。
どこが必要な部分だかわからんし、サンプルもなしに具体的な解答はだれにもできない
>>319 >>306 をもういちどよめ。
コピペだけとは書いてない。
コピペ後、関数で処理。効率よく自動化するならマクロと書いてある。
totoのサイトから3年分の試合結果をVBAでExcelにダウンロードしたことはある webクエリが使えたのでたいした手間ではなかった
323 :
313 :2012/11/30(金) 10:16:57.89
みなさんありがとうございました!
>>317 さんのsgetで実装致しました。
私もこれからマクロを勉強してきます!
すごい初歩的な質問なんだけど、ByValの存在意義が分からないです。
ByRefで渡されてもプロシージャの中で式の左辺にその変数を持ってこなければ
値は変化しませんよね?
だったらByVal渡しなんて要らないんじゃないかと。
たとえば、
>>317 にあるコードで、
ByValを省いてもまったく問題なく動くと思うのですが、
なんでわざわざ書いてあるんでしょうか?
もちろん、コードがでかくなって全体の見通しが悪くなってきたら
思わぬバグの発生を防ぐためにByValが役立つ場面も出てくるとは思うんですけど、
そういうこと以外に積極的にByValで宣言する意味が分からないんです。
>>324 「思わぬバグの発生」はコード量とは関係ないよ
逆に積極的に参照渡ししてるならその意味を教えてよ
>>325 積極的に参照渡しをやってるわけじゃなくて、
デフォルトだと(ByValかByRefかの指定を省略すると)ByRefになりますよね?
ただそれだけです。
そして私の想定している「思わぬバグ」というのは、
「値を変えてはいけない場面でついうっかり式の左辺側にその変数を書いてしまう」
というシチュエーション「だけ」しか思いつかないのです。
それって小さいコードなら気が付けるよなぁと思えるのです。
つまり、存在意義のある(と思っている)部分を除外した結果に対して、 存在意義があるのかを問うているのですか。
>>326 バグに気が付くということとコード量には関係はないってば
そもそも
>>317 の大元の質問者はVBAが使えないと書いてるし
ちなみに.NETではデフォルトは値渡しになってるよ
てか値渡しと参照渡しのメリットデメリットなんて
あなたならググればいくらでも見つけることができるでしょ
> ByValとByRefの人達 そろそろ適切なスレに移動するなりしてくださいね
>>327 ごめんなさい
おっしゃっている意味が分からないです。
私がByValを使わないのは
>>326 で書いたとおり
何も書かなければByRefになるからであって
それ以外に深い意味はないです。
値渡しより参照渡しの方が良いということではないです。
>>328 ありがとうございます。
ぐぐって見たら再帰呼び出しに関係するようなことが書いてありました。
(その記事の詳細は会員登録が必要だったので読んでないです。)
そういうことやらないから気にしたことがなかったけど
やっぱり理由はあるんですね。
>>329 すみません、これで消えます。
>>330 貴方が納得したならそれで良いけど、
>>329 みたいのは気にしなくて良いとおもうよ。
実際興味深いテーマだったし、俺も為になったよ。
最近VBAの勉強してるけどこれ意味あんの? 手動とか関数使った方が圧倒的に早くない? 具体的にどういった時に効果的なの?
>>332 単純作業の繰り返しとか、そういうときに便利。
たとえば
数百件のファイルを開いて、
その中の特定の列を集計して一個のファイルにまとめる。みたいな時に、
手作業だと一日かかるような処理がVBAならものの数分で終わる。
関数は、複雑な条件がある場合に作業列を使ったりして結局手間がかかることもあるし、
他のブックの内容については参照こそできるけれど操作したりすることはできないから、
上述のようなケースではそもそも意味がない。
>>332 同じ操作や同じ処理の繰り返しがないなら無理に使う必要はない
同じ操作や同じ処理の繰り返しならVBAにしたほうが圧倒的に早い
実際には適材適所だわな
新しいことをやるとき、最初は手動と関数でやるが
ある程度固まってきたらVBA化する
あと大量のデータを処理する際は、
使い捨ての関数と使い捨てのマクロでやることが多いかな
>>332 手動とか関数使った方が圧倒的に早くない
場合にVBAを使うといいんじゃないかな
Excelを方眼紙に見たてて図面作成なんてあり得ないですか?
>>336 用途は制限されてないから好きなように使えばいい
>>336 実際、そうやって使ってるとこ知ってるよ
図面と言うよりは家具とか棚の配置図だけど
>>336 mmとかサイズをキッチリ指定しても印刷するとアス比が変わってたりするから、印刷とか正確さを要求される場合は向いてないだろうね。
適当に概要がわかればいいだけなら問題ないかと。
340 :
名無しさん@そうだ選挙にいこう :2012/11/30(金) 17:48:04.12
転職でエクセルの関数の中級レベルまで求められることが多いので 覚えたいです。 講師に教えて貰うのが簡単確実で好きなんですが料金が高いので自習します。 無料ソフトとか安いもので関数教育ソフトはありますか? やっぱり本買ってきて自習?
341 :
253 :2012/11/30(金) 17:54:58.39
>>285 >>286 Application.Dialogsを使ってフィルタリング表示は出来ましたが、
結局、選択したファイル名の取得の方法が分からなかったので、GetOpenFilenameを使用してます。
でも、一気に作業が進みました。
遅くなってしまいましたが、ありがとうございました!
>>340 関数覚えるだけならヘルプやWebのリファレンスを読んで丸暗記すればいいかと
何度も繰り返し読んでたら自然に覚えるよ
343 :
317 :2012/11/30(金) 18:47:45.60
>>324 自分は何でわざわざ?と聞かれたら、
他の省略できる物も含めて、省略する習慣がない。
byvalとか正味タイピングする時間は0.2〜3秒のものなのでそこを省略しても何も楽さを体感できない。
省略したら何扱いになるかをそれぞれ覚えてから省略するのが面倒なのでもともと省略しない習慣になった。
論点が噛み合ってない気がするけどまぁいいか
345 :
名無しさん@そうだ選挙にいこう :2012/11/30(金) 19:15:43.56
>>342 私の2003なんだけど新しいのをちょっといじったときちょっと勝手が違った。
日経ビジネス人文庫の関数ワザ100でも読んでやってみるよ。
346 :
名無しさん@そうだ選挙にいこう :2012/11/30(金) 19:23:08.43
そうなんだ日経ビジネス文庫の関数ワザ100がいいんだ!
348 :
名無しさん@そうだ選挙にいこう :2012/11/30(金) 19:58:46.62
>>347 今、みたけど難しそうだ。市販の分かりやすい入門のを見るしかないな。
>>346 それは初めて知ったということか?オススメだよということか?
>>321 それはそうなんですけど、
具体的にどういった処理や関数を組んでそうするのか?ってことです。
350 :
321 :2012/11/30(金) 20:38:16.41
>>349 その前後で具体的な内容が解らないってレスついてたでしょ?
具体的な返事欲しいなら具体的な質問しなよ。
>>313 とかみたいに。
しかも関数かマクロでって回答の後から30000ページあるという情報出てるんだよ。
最初から3万と分かってたら誰も関数を選択肢には入れないと思うけど。
てか関数で中級レベルってどのくらいなんだかわからん
おそらく 初級と上級の間なんだろ
>>351 転職先で求められることが多いんだってさ
354 :
名無しさん@そうだ選挙にいこう :2012/11/30(金) 23:15:28.33
転職する時に求められる知識を得るための本の具体名を知りたいくらいのレベルの事だろ
>>349 たぶんあなたのやろうとしている事は、「正規表現」でググってできることだと思うわ。
Excelでやってもいいけど、PDFベースのだったらPDFベースのアプリでやった方が良いし、
テキストベースだったらテキストエディタでやった方が良いよ。
>転職でエクセルの関数の中級レベルまで求められることが多い どんな会社か気になるw いや、エクセルやワードが必須な会社は多いけど、エクセルの関数の中級レベルを 求める会社は聞いたことが無いので、伏せ文字でいいから会社名をいくつか挙げてよ。
いや、そういう問題じゃないでしょ。 中級ってのがどの程度のものかがまず分からないんだから。
=COUNTIF(C603&F603,"○") これの表記の何が間違ってるのかわからないんだけど ずーっとエラーが出るんだけどさ エクセルって便利なようでまじでゴミツールだよねw まずゴミだって思うのが、基本的に関数が一つのセルか、一つのある範囲しか適用されないことが前提で作られてるっていうw 複数対象にできないってことねw ここほんとにゴミw でもう一つは区分ができないとw 例えばA1:A3、C1:C3、E1:E3って区分して、そのA1:A3、C1:C3、E1:E3の範囲それぞれの中に5がいくつ含まれるかとか、○がいくつ含まれるかっていう関数ができないのw 本当にゴミw 一つのセルか、:でくくった一つの範囲しか指定できないっていうw 話にならないわw 本当にゴミw使い物にならないこんなのw なんで複数指定できないのwほんとに作った人バカだねw
商品コード:商品名 1234:ビール 5678:酎ハイ 9012:日本酒 な感じで並んでいるのですが、 1234:ビール 1234:ビール 5678:酎ハイ 5678:酎ハイ 9012:日本酒 9012:日本酒 というように、単純に2つにコピーしたいです。 ササッと簡単に出来る方法はないでしょうか? 200品目くらいありますので普通の列コピペだとすこぶる面倒です。
なんでこんなに使い物にならないんだろう?w 高いくせに、まじゴミなのw 一つのセルごとに一つ一つ関数入力しなきゃいけないのw ほんとにゴミw なんで一気に、複数のセル、複数の範囲を指定できないのかw 範囲内にさらに区分することができないのかw =COUNTIF(C603&F603,"○") C603とF603両を対象にしたいとき&じゃダメwwwwwww C603:F603って:←(笑)いちいちこれで範囲にしなきゃいけないwwwwww D603とE603まきこんじゃうwwwwwwwww巻き込みたくないのに巻き込まなきゃ無理wwwwww 何このくそ仕様wwwwwwwwwwwwwwwwwwwwww 本当にゴミツールですw使い物になりませんwwwww ありがとうございましたwwwwwwwwwww 本当にゴミですw作った人死んでくださいw 本当にゴミですw
361 :
340 :2012/12/01(土) 03:56:00.16
>>356 経理だからワード、エクセルの初中級は必要でしょう。会社名どころか、
逆にそれが不要な所は無いでしょう。
>>357 中級の定義はそれぞれだから。初級が基本操作ができるレベルとして、それ
プラスαくらいでしょ。
今、関数2個位しかできないから、まぁ5個10個使えるとか。ちょっと調べれば
使いたい機能がすぐに使える状態とかじゃないの。
ていうか開発者に聞きたいんだけどw COUNTIFって、条件にあてはまるものを集計するものでしょ? じゃあ普通に考えて、複数範囲があるって考えないのかな? 一つのセルを対象にしたって、見た目で一つしかないってわかるんだから、まったく意味のない関数になるってことがわからないのだろうか。 複数範囲、複数指定が当たり前の関数なのに こ れ が で き な い こ の 頭 の 悪 さ wwwwww IQ何の人が作ったんだろう?このexcelって?まじで笑えるwwww
文句言う前にヘルプ読まないとw
>>363 書いてないからw
あの、言ってることわかります?複数の条件じゃなくて、
複 数 の 範 囲 ねw
てかなんでどこにも書いてないの?w
この手のソフトって本当に説明がゴミだよねw
なんか別に参考書かってそれで勉強しろみたいなw
本当に説明最悪だよねw
365 :
名無しさん@そうだ選挙にいこう :2012/12/01(土) 07:33:08.18
=COUNTIF(C603&F603,"○") これの表記の何が間違ってるのかわからないんだけど =COUNTIF(C603&F603,"○") これの表記の何が間違ってるのかわからないんだけど =COUNTIF(C603&F603,"○") これの表記の何が間違ってるのかわからないんだけど =COUNTIF(C603&F603,"○") これの表記の何が間違ってるのかわからないんだけど =COUNTIF(C603&F603,"○") これの表記の何が間違ってるのかわからないんだけど
>>359 商品コードがA列で商品名がB列、この見出しが1行目にある普通の表であり、
今現在全部一件づつなのを二つづつにしたいなら、
1.マウスでA2をクリック (選択)
2.Ctrl+Shift+→ (A2:B2選択)
3.Ctrl+Shift+↓ (A2:Bデータの最下行選択)
4.Ctrl+C (コピー)
5.Ctrl+↓
6.↓
7.Ctrl+V (データの最下行の下に貼り付け)
8.→
9.B列のどこかを選択した状態で昇順か降順で並べかえ
テーブルつかえないひとにはCOUNTIFは無用の長物
369 :
356 :2012/12/01(土) 09:51:00.46
>>361 >経理だからワード、エクセルの初中級は必要でしょう。
あんた、ダメだわw
会社が求めてる人材は、そこじゃないよ。
「今までエクセルで何をやってきたの?」
「経理の実務経験は何年やったの?」
「簿記は何級を持ってるの?」
エクセルやワードが初歩レベルでも、ある程度の経理はできるから
必要な関数は入社後に覚えればいい。
経理にExcelなんかつかわないだろ 専用ソフトだよ
371 :
名無しさん@そうだ選挙にいこう :2012/12/01(土) 09:59:11.98
>>369 お前はただ他人否定したいだけのザコだろw
今はエクセルの知識に絞って聞いてるだけなんだよ。そこを経理=エクセルの
能力だと思ってると勘違いしてドヤ顔ww
お前のザコっぷりがよくわかるわwwwwww
カスに限って自分は能力あると思い込みたいんだよね。
しねw
372 :
名無しさん@そうだ選挙にいこう :2012/12/01(土) 09:59:56.33
>>370 決まった処理しかしない(税務申告だけとか)経理部門なんて
ないだろ。
まあ従業員2,3人の事務所ならExcelでなにもかもしてるところもあるかもしらんが
エクセルだけで経理は無理だよバカw エクセルに金を掛けるなら、専用ソフトに回した方がいい。
Excelすら使えない経理・・・
377 :
356 :2012/12/01(土) 10:11:55.75
おぉ、盛り上がってるw
>>371 あんたは340?
経理=エクセルの能力だなんて思ってないし、書いてないよ。
369の最後の2行が的を射ってるだろ?
俺が描く340の人間像 「今までエクセルで何をやってきたの?」 → 集計とかグラフとか 「経理の実務経験は何年やったの?」 → 経験はないです 「簿記は何級を持ってるの?」 → 持っていません
いくらExcelがつかえても伝票の仕分けがわからなければ入力すらできないわけだが
380 :
名無しさん@そうだ選挙にいこう :2012/12/01(土) 10:38:39.41
伝票の仕分けってなんなの?
無職はおねんねしてろ。
382 :
名無しさん@そうだ選挙にいこう :2012/12/01(土) 11:32:34.06
>>377 ちげーよ。
>>369 は、
>>361 が経理=エクセルの能力だと思っていると勘違い
しているという意味だよ。それでエクセルより経理実務と資格の方が重要だと
挑発してきたんだろ。
>エクセルやワードが初歩レベルでも、ある程度の経理はできるから
>必要な関数は入社後に覚えればいい。
ある意味そうだけど、それは応募者側の論理。面接官が既に中級レベルまで
の人のほうが望ましいと思っていたらそれまでのこと。
それに何か作ろうとしたときに初めて関数勉強しだすより、中級程度なら
その場で出来た方がいいだろ。
383 :
名無しさん@そうだ選挙にいこう :2012/12/01(土) 11:37:53.49
なんで経理はエクセルだけだろとか、専用ソフトだけだろとか限定してるの? バカなの?つか専用ソフトて何だよ。会計ソフトて言えよ。無職だから 知らないのかよ。 総勘定元帳は会計ソフトを使って、入力する数値の集計や各種資料の作成に エクセルを併用してるんだろ。
金額を集計してから入力なんてしない。そんなことしたら明細が管理できなくなる。 資料の作成にいちいちExcelつかってたら専用ソフトつかう意味が無い。生産性が下がる。 仮にそういうことがあるとしてもCSVで出してピボットで集計するくらいだな。 あわててぐぐってキーワード並べてみても実務経験ないのがバレバレだよ。
専用ソフトで仕事こなせてたらそれでいいやろ。 でもエクセルさえも使えない人って専用ソフトとかの操作覚えるのも下手じゃね? 簡単に覚えれる操作だけしか覚えないし、自力で説明書読んで他の便利な使い方 まで覚えようとは絶対しないし。
386 :
名無しさん@そうだ選挙にいこう :2012/12/01(土) 12:15:22.27
>>384 はぁ?お前のいうところの専用ソフトて何だよ?w何でもその専用ソフトと
やらにぶち込んでるのかよ。
無職はおねんねしてろよ。
Excel得意ですってやつはちょっとあぶないんだよな 他人にはどうでもいい作業を 深夜までやって仕事したような顔してるし
中級ってなんだよとか専用ソフトってなんだよってどうでもいいわ。なんとなくで解釈すりゃーいいだろ。 融通の利かん奴らだな。
Excel中級のひと募集って求人でもあったんじゃねーの?w
エクセル出来る人って条件だとエクセル開いて文字打てますレベルの人も来るからね。
>>391 英語で検索 18件
中国語で検索 9件
EXCELで検索 56件
エクセルで検索 21件
ハローワークで関西の俺のいる県一つだけで、エクセル・EXCELで検索 300件
ハロワで同じく1県で英語で検索 14件
ハロワで同じく中国語で検索 2件
なにがどう残念なのかよくわからん。そのサイトは残念な気がするけど。
なるほど ハローワークだと「エクセル 中級」で198/377818件だった 0.7%は需要がある よかったなW
394 :
名無しさん@そうだ選挙にいこう :2012/12/01(土) 13:50:34.14
>>388 お前みたいなニートなら抽象的な話しでいいかもしれないけど、実務では
話し詰めるからな。答えられないなら引っ込んでろよ。
395 :
名無しさん@そうだ選挙にいこう :2012/12/01(土) 13:51:30.64
396 :
359 :2012/12/01(土) 17:19:31.57
>>367 確かに最後尾にペーストしたあとに並び替えすれば済む話でしたね。
全く想像できませんでした。
ありがとうございます。
ID出ないと一人自演をあぼーんするのも大変ですね。
同じ敵に付け狙われてると妄想するのは糖質の初期症状だよ
d f
?
>>382 お馬鹿なお前に教えてやろう。
経理の転職は、実務経験がないと無理。
その実務経験も大企業での10年と中小企業での5年だったら後者の方が優遇される。
簿記も日商簿記2級以上でないと書類選考で落とされる。
エクセルなんて何の優遇措置もないよ。
>>383 中小なら市販の「会計ソフト」、大企業は「専用ソフト」でいいんじゃねーの?
俺のところは富士通のGLOVIAだけど、社内では「会計ソフト」なんて言わない。
しいて言えば「会計システム」だな。償却方法も独自だし、GLOVIAといっても
他社とはまるで違うと思う。
402 :
名無しさん@そうだ選挙にいこう :2012/12/01(土) 20:25:36.31
>>400 >経理の転職は、実務経験がないと無理。
>エクセルなんて何の優遇措置もないよ。
すげー情報教えて貰っちゃったよ。
とここんコミュ障だなw
403 :
名無しさん@そうだ選挙にいこう :2012/12/01(土) 20:35:13.12
ピボットテーブルの使い方で質問です お願いします 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 集計するための元データは4点 従業員番号・個人名・売上・売り上げた日付 単に毎月の合計を出したいので、日付はピボットでは無視して 行ラベルに従業員番号・名前(従業員番号順で並べます) 値に売上を入れて合計値を出してもらいます これで良いんですけど、表示上で従業員番号と名前の両方に売上が出てしまい見づらい 個人名の所だけ売上を表示させるにはどうしたら良いんでしょうか? (下記のように表示されます) 001 \2,000- 佐藤 \2,000- 002 \5,000- 鈴木 \5,000- 003 \3,000- 高橋 \3,000-
シートの右に表示される操作ペインで行ラベルの「従業員番号」を右クリックし、 「フィールドの設定」をクリック。「小計」で「なし」を選択する。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 質問です。以下のように並んでいるデータがあります。 名前1 データ1A データ1B 名前2 データ2A データ2B 名前3 データ3A データ3B 名前4 データ4A データ4B 名前5 データ5A データ5B 名前6 データ6A データ6B 名前7 データ7A データ7B 名前8 データ8A データ8B 名前9 データ9A データ9B 名前10 データ10A データ10B ……(以下続く) このデータを画面の上だけ↓みたいな感じの配列にする方法はありませんか?。 なお、名前やデータでソートすることは前提なので、普通に行を変えるのはできればやりたくありません。 名前1 データ1A データ1B 名前6 データ6A データ6B 名前2 データ2A データ2B 名前7 データ7A データ7B 名前3 データ3A データ3B 名前8 データ8A データ8B 名前4 データ4A データ4B 名前9 データ9A データ9B 名前5 データ5A データ5B 名前10 データ10A データ10B
無理
どうしてもというならカメラ機能で
やっぱり無理ですか。了解しました。ありがとうございます。
OS: XP SP3 EXCEL: office XP 文字列セルにおいて、配置を 中央揃え以外 にした場合に、罫線と文字がくっつかないようにする方法は、 1 文字の前後にスペースを入れる→データが変わってしまう 2 インデントを設定する(左または右詰めの場合)→間隔が開きすぎる の二つ以外にはないでしょうか?
>>411 うちのExcel2003では罫線と文字がくっついたりしないけど
もうちょっと具体的に状況を教えて
>>407 ・必ずa,bのデータがある
・1行目にタイトルがある
・2列に分解する として
例えば
D1:=ROUND((COUNTA($A:$A)-1)/2,)
E2:=IF(ROW()-1<=$D$1,A2,"-")
として右と下にコピー
H2:=IF(ROW()-1<=COUNTA($A:$A)-1-$D$1,OFFSET(A2,$D$1,),"-")
として右と下にコピー
とでもすると希望のようになるけど。。もちろんD1はそのまま式に組み込んでもいい
>>407 画面の上だけって部分がいまいちわかりづらいけど
コピーとリンク貼り付けだけで作れるように思えるのは気のせい?
(408さんのカメラ機能と同じ発想ね)
>>411 セルの書式をユーザー設定にして、" "@ じゃダメですか? (""の中は半角or全角の空白)
左側の罫線から離れるはずです
PCのカレンダーから来月を変数aに入れるとき、11月までは 下記のやつでおkでしたが、今月になったら13月になってしまいました・・・ orz 12月のとき1月を入れるには、どうすればいいですか? a = Format(Date, "m") + 1 & "月"
417 :
名無しさん@そうだ選挙にいこう :2012/12/02(日) 21:00:19.69
a = Format(Date,+Month(1) "m") & "月"
418 :
417 :2012/12/02(日) 21:04:26.68
糞!
ワークシートなら a==TEXT(DATE(YEAR(NOW()),MONTH(NOW())+1,DAY(NOW())), "m") & "月"
If Format(Date, "m") = 12 Then a = Format(Date, "m") - 11 & "月" Else a = Format(Date, "m") + 1 & "月" End If でいいんじゃね?w こんな方法もあるけど a = Month(DateAdd("m", 1, Date)) & "月"
421 :
416 :2012/12/02(日) 21:33:45.35
422 :
359 :2012/12/02(日) 21:59:30.30
経理Excel中級戦争は終わったのか? 上司がExcelが全く使えなくて困っております。 Excelは表計算するためのソフトではなく、表を作成するためにしか使っていないように思います。 数式にSUMとAVERAGE以外を使うと数式が理解できないためか怒ります。 IFなんか使って条件分岐なんかした日にはブチキレです。 VLOOKUPや配列数式、VBAなどもってのほかです。 本人いわく 数式が複雑化して数値に間違いがあった時に何処が間違っているのか把握ができない、また、デバッグ作業に時間をとられるくらいなら最初から単純な式にすべき とのことですが。 言ってることはもっともらしく聞こえますが、足し算をするよりも掛け算を行ったほうが遥かに効率がいいように、 Excelは関数を使ってナンボだと思います。 (もちろん、無理やり難しい関数を使うようなことはしませんが) あと10年くらいは上司が変わることはないと思うのですが、どうにかならないでしょうか? p.s. Excelというか単純にパソコンが使えないみたいです。 8年くらい同じ職場で働いてますが、まさかZIP圧縮のやり方を知らないとは思いませんでした…
423 :
名無しさん@そうだ選挙にいこう :2012/12/02(日) 22:08:16.72
>>422 経理Excel中級紛争は、バカな奴が主観でアホな因縁つけてきただけだからな。
その上司と共同作業しなきゃいけないの?一人で完結させて出来た結果
だけ渡すんじゃないの?
パソコンが使えない上司ってどんな会社なんだろう? ウチの会社はTOEIC600点以上または海外勤務3年以上とか論文審査とか カナーリ厳しい条件なんだけどな。 tk、お前が教えてやればいいんじゃね? あと、ZIP圧縮のやり方を知らない人は結構いるよ。
>>422 そういや、ZIP圧縮について知らない人いるよ。うちの上司(30代半ば)も近い感じ。
なんかあなたのフォルダ開いて中見れるけどファイル名が変えれない。なんなんこれ。フォルダ名にジップって
ついてるけどなんなん。わけわからんわ。ってうざそうに言われた事がある。数十個のファイルをまとめてメールで
送るために圧縮してただけなんだけどね。
>>422 まぁ、レベルの低い人に合わせるのもレベルの高い人のお勤めと思いねぇ
俺ならその人の言うこと全てに従って、他の課を手伝い、誰が理解しているかを把握する。もちろんできるだけ高い役職にいる人にね
そして社長、もしくは役員と飲んだ時にポロッと口を滑らせてしまうね
悪気はないんだけどねえ
圧縮を知らない人は結構いるね。特におばさんに多い気がする。
男性は色々ファイルのやり取りがあるから必然的に覚えるけど、女性はそういう知識を得る機会は少ないんじゃないかな
>>425 大企業になると逆にPCの知識に疎くなる傾向がある
なんでも専用ソフトでボタンひとつになるからね。
しかしAccess辺りは妙に強かったりする。本社鯖のdbの取得方法だけは完璧に覚えていたり。
しかしデータベースの概念やIPアドレスを知らなかったり。
中小、零細になると何もかもを自分でやる必要がでてくるのですげースキルが高かったりする。
このスレの回答者は多分そう。
>>422 そりゃコピペ+ソートなんていうExcelの基本的な操作が想像できなかった人間が
何を言っても説得力ないわなぁ・・・
>>416 それなら、こうすると良いよ
=MONTH(EDATE(TODAY(),1))
TODAY() のところを好みの日付にしてね。
ちゃんと書いてみました a =MONTH(EDATE(DATE,1)) & "月"
>数十個のファイルをまとめてメールで送る 低脳は辛いね♥
そんなこともワカランのか! 俺は寝る
>>434 ねえ、なんで?俺にはワカラン。
数十個を一つにまとめずに送る方がええの?ねえなんで?
>>422 その上司に提出する時だけ、
元のブックを値だけ貼り付けでコピーした奴を渡したら?
どんなにExcelをよく知ってても、コミュカの低いやつはうちの会社には必要ないんで
Excelを多少極めるって数学の知識が必要なんか 中学時代の数学の先鋭なんかは数学の知識がなくとも大丈夫と言っていたのに・・・・ ちなみに37のオッサンです
>>439 Excelをどういう用途に使うかによる
統計や理学系など数学知識を前提とする分野で使うなら
そりゃ最低限の知識は必要でしょう
データ整理とかが主な目的なら要りませんよ
ただ「算数」の知識は最低限必要だと思いますけどね
>>439 メモ帳を極めた俺から言わせてもらうと
Excelと数学には関連はない
「メモ帳を極めた」なんていうほど、メモ帳って機能豊富なんか?
だって、字が書けるんだぜ!
>>423 お前は402か?
無職ならハロワで聞いてみな。
経理の転職は、実務経験がないと無理だってわかるからw
エクセルなんて何の優遇措置もないと書いたのは、事務職なら出来て当たり前。
わざわざ応募要項には書かないし、関数を数多く知ってたところで
仕事が効率よくできるとも限らない。
446 :
名無しさん@そうだ選挙にいこう :2012/12/03(月) 20:20:20.30
>>444 ここまでコミュ障だと、もはやアレだなw
コミュ障としか反論できないやつw 生きてる価値がないんじゃね?
>>415 ありがとうございました。そのやり方を忘れていました。それでいきます。
>>412 さん
フォントに依るもの及び文字に依るものだと思います。
完全にはくっついていなくても、FAXするとくっついて読みにくくなる、というのが一番の問題です。
OpenOffice系のように罫線と内容との距離を調整できる仕組みがMS-Officeにもほしいところです。
OpenOfficeではその調整できるのか。普段は必要性感じないけど調整したい時もあるね。 何度も使うような書類の場合は細い列・行を使って調整してるけど面倒くさいわ。
451 :
名無しさん@そうだ選挙にいこう :2012/12/04(火) 07:51:51.00
【1 OSの種類 .】 Windowsxpsp3 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 aaa,b 0.1,44 0.2,23.1 0.5,777.4 0.6,-10 0.7,999 0.8,-496.3 0.9,37 1.1,0 1.2,865 1.3,-5 1.4,-5955 1.6,0 1.8,594.3 2.1,-459 上記のようなcsvファイルがあります。 aaaの値がx刻みのbの平均値を出したいのです。 たとえばxを0.5とした場合、以下のように平均値を自動的に出せますか? aaaが0超0.5以下(0.1と0.2と0.5)のbの平均値((44+23.1+777.4)/3=281.5) aaaが0.5超1以下(0.6と0.7と0.8と0.9)のbの平均値(132.425) aaaが1超1.5以下(1.1と1.2と1.3と1.4)のbの平均値(-1273.75) aaaが1.5超2以下(1.6と1.8)のbの平均値(297.15) aaaが2超2.5以下(2.1)の平均値(-459)
簡易にやるには Vlookupを0.5刻みで作成し 新しい階層値を作ってあげる その際に、値(aaa)は負にして利用する。 その階層値とbを使用してピボットテーブルで平均値をとる。
453 :
451 :2012/12/04(火) 10:05:50.66
どうもありがとうございます。実は 気軽に「こんなソフトありませんか?」スレから誘導されてここに来たのですが、excelに疎いです。 なので、もう少し詳しく説明して下さるとありがたいです。 または、マクロを作ってくださるとありがたいです。 大変お手数おかけいたしますが、どうぞよろしくお願いします。
454 :
451 :2012/12/04(火) 10:18:25.57
マクロの場合、
455 :
451 :2012/12/04(火) 10:19:39.49
マクロの場合、xの値を自由に変更できるようにしていただけるとありがたいです。 どうぞよろしくお願いします。
456 :
名無しさん@そうだ選挙にいこう :2012/12/04(火) 11:04:09.01
>>452 Excelに疎いなら、マクロを使わないほうがいい。
ピボットテーブルの使い方をHelpあるいはWebで探れば
1時間程度でマスターできる。
その後、
>>452 の方法をとるのがいいと思う。
そのほうが(あなたにとっては)利用価値がある。
うん? ピボットテーブルで0.5刻みにグループ化するだけじゃないの? 0.5を任意の数値で自動化したいってことか?
458 :
名無しさん@そうだ選挙にいこう :2012/12/04(火) 18:01:21.93
459 :
名無しさん@そうだ選挙にいこう :2012/12/04(火) 19:20:37.82
1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2007と2010 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 否 基本的なことですが セルの書式設定についてです。 2つのセルを結合して、アポストロフィーをつけて全角数字を入力。 その後セルの結合を解除し、アポストロフィーを取って数字を半角で表示。 そうしたら数字が半角になったのですが、左揃えになってしまい、 右揃えにできません。 セルの書式設定で数値や標準にしてもダメでした。 配置のタブで右揃えにしても左揃えのままです。 他のシートの書式をコピーして貼り付けても左揃えが解除されません。 どうしたら右揃えにできるのでしょうか。
>>459 再現しない(2010)
(1) A1とB1を結合
(2) A1に「'123」と入力
(3) セル結合を解除
(4) A1に「456」、B1に「789」と入力
この時点でどちらのセルも右寄せになった
461 :
名無しさん@そうだ選挙にいこう :2012/12/04(火) 19:50:53.64
>>460 460さんありがとうございます。
普通はそうなりますよね。でも今回作成中のシートに限って
459のようになってしまします。
もう一つの現象としては、セルの幅からあふれ出した文字が消えてしまいます。
普通は、右側のセルに何も入力されていない場合文字数が多くても表示されますが、
今回はセルの幅を超えた時点で、まるで隣のセルに何か入力背れているように(
何も入力されていません。確認済みです)表示が途切れてしまいます。
たぶん途中で複数の人数で扱っているシートなので
誰かが変な操作をしたためだと思われますが、困っています。
この変な操作がなんなのか、どうしたら治るのかわからないのです。
お数ですが似たような経験のある方などの情報をお待ちしています。
ピポット厨って、マクロは使えないの?
フツーに判断できる人間は ピボットテーブルでもVBAでも その場にいちばん適した方法を使う それだけのこと
>>461 そのシートだけでしかならないなら、もう1回別のシートに入力しなおすとか、問題ないセルで上書きしてみたら?
465 :
名無しさん@そうだ選挙にいこう :2012/12/04(火) 20:33:23.95
>>464 464さんありがとうございます。
その方法では、治るのです。
ただ、文書作成の締め切りが明日なのと、
貼り付けした以降の文書の体裁をそろえるのに
2時間程度はかかることを考えると難しいのです。
今回はあきらめ、左揃えのまま提出することにします。
大変お騒がせしました。
ただこのような現象の解決方法について何かシンプルな方法が
ないかと思いここで相談させていただきました。
>>462 マクロを使えるようになるにはvoをポと発音すればいいですか?
>>465 症状さえ再現するなら中のデータはいらないので、
仕事終わって一段落したらそのブックどこかにうpしてみては?
実際のブックで調べたら何が原因なのか分かるかもしれない。
Excelのブックは印刷やFAXの時は点線にしとくと普通の細実線になるよ。 FAX用とか印刷用のシートを作っとけばいいよ。
469 :
名無しさん@そうだ選挙にいこう :2012/12/04(火) 22:34:43.26
>>467 そうしたいのですが、うpできないファイルなので…
説明もうまくできずごめんなさい。
ちなみ自分は教員でファイルは個人情報ばっかりなので無理です。
スキルはちょっとした教員の研修会では、
講師の説明の間違い程度は指摘できます。
さすがに高校の情報系の先生にはかないませんが…
でも、たぶんちょっとしたケアレスミスがあるのだと
思っているので相談させてもらいました。
お騒がせしました。では
470 :
名無しさん@そうだ選挙にいこう :2012/12/04(火) 22:38:28.02
>>469 追加
「教員のExcelの講習会で自分もよく講師をしたりする機会もあるので」
知りたかったんです。
教員かどうかは関係ないし個人情報がどうこうも関係ない。 バカが自分のやった設定を覚えてないだけです。
472 :
名無しさん@そうだ選挙にいこう :2012/12/04(火) 22:40:54.72
バカのフォローもしないといけないのです。
再現できない事を教えろと言われても無理。 バカにはそれがわからないのも無理ないですね。 できることといったらあなたはバカだと言ってあげられることだけ。
なんで毎回毎回しょーもないことで荒れるんだココは
バカの自覚のないバカがバッカじゃない体で書き込むからだろ。 まじでバカと思ってないのが不思議でたまらんわ。
おまけにバカのくせに自分は馬鹿に教えてるからバカじゃありません だからわからないこと教えて下さいとかバカすぎるだろ。 バカにははっきりバカだって言ってやらなきゃ駄目だわ。
477 :
名無しさん@そうだ選挙にいこう :2012/12/04(火) 23:05:16.48
478 :
名無しさん@そうだ選挙にいこう :2012/12/04(火) 23:21:17.21
ピボットテーブルの使い方をマスターしたいのですが 1時間程度でマスターできるWebはどこにありますか?
480 :
名無しさん@そうだ選挙にいこう :2012/12/04(火) 23:29:34.46
>>474 ヒント
@教員
A追加
「教員のExcelの講習会で自分もよく講師をしたりする機会もあるので」
知りたかったんです。
>>465 普通のスキルがあったら、違うシートに張り付けて同じ物作るぐらい数分の作業だと思うが。
シート変えて作り直すのに2時間って、その時点でおかしいエクセルの使い方してる予感が。
482 :
名無しさん@そうだ選挙にいこう :2012/12/04(火) 23:45:21.92
グループ化した図形のサイズ調整です。乙
>>451 c列はaaa*(-1)、d列はvlookupした結果。
aaabcd
0.144-0.10.5
0.223.1-0.20.5
0.5777.4-0.50.5
0.6-10-0.61
0.7999-0.71
0.8-496.3-0.81
0.937-0.91
1.10-1.11.5
1.2865-1.21.5
1.3-5-1.31.5
1.4-5955-1.41.5
1.60-1.62
1.8594.3-1.82
2.1-459-2.12.5
Vlookupテーブルはこれ範囲1がF列なら =VLOOKUP(C2,$F$2:$G$8,2,TRUE)
範囲1範囲2
-3.0 3
-2.5 2.5
-2.0 2
-1.5 1.5
-1.0 1
-0.5 0.5
0.0 0
マイナスにした理由は、
Vlookupは、○○以上〜△△未満 という区分けなので
○○超〜△△以下 にするため。
このb列とd列を使ってピボットで平均を出せば出来上がり
あ〜めタブでめちゃくちゃや。CSVにしてみた aaa, b, c, d, 0.1, 44, -0.1, 0.5, 0.2,23.1,-0.2,0.5 0.5,777.4,-0.5,0.5 0.6,-10,-0.6,1 0.7,999,-0.7,1 0.8,-496.3,-0.8,1 0.9,37,-0.9,1 1.1,0,-1.1,1.5 1.2,865,-1.2,1.5 1.3,-5,-1.3,1.5 1.4,-5955,-1.4,1.5 1.6,0,-1.6,2 1.8,594.3,-1.8,2 2.1,-459,-2.1,2.5 Vlookupテーブルはこれ範囲1がF列なら =VLOOKUP(C2,$F$2:$G$8,2,TRUE) 範囲1,範囲2, -3.0, 3 -2.5 ,2.5 -2.0 ,2 -1.5 ,1.5 -1.0 ,1 -0.5 ,0.5 0.0 ,0 マイナスにした理由は、 Vlookupは、○○以上〜△△未満 という区分けなので ○○超〜△△以下 にするため。 このb列とd列を使ってピボットで平均を出せば出来上がり
487 :
名無しさん@そうだ選挙にいこう :2012/12/05(水) 09:42:08.67
図形をいっぱい使って絵を描きました。 それを左右反転することってできますか? その際テキストで入ってる文字はもちろんそのままで。(ワードアートは使ってません)
>>487 左右反転の機能を使えばできますがテキストは反転されません
テキストも反転しなければならないなら図に変換してから反転する必要があります
489 :
名無しさん@そうだ選挙にいこう :2012/12/05(水) 13:12:25.50
>>488 左右反転の機能はどうやって使うのでしょうか?
どこを選んでどこのボタンを押したらいいのでしょ?
テキスト反転は不要です。
>>489 バージョン書いてないからわからないけどExcel2007以上の機能
それ以前なら図としてコピーして反転させなきゃダメだと思う
>>489 ヘルプで「左右反転」で検索したら載ってるでしょ
こんなとこで質問する前にググった方が早いだろうに・・・
図形の反転なら2003でもできるよ ヘルプなりグーグル先生でどうぞ
493 :
名無しさん@そうだ選挙にいこう :2012/12/05(水) 18:35:50.85
てめーら、ググれググれしか書けねーのかよ! んなことは小学生でも書けるわボケ!
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel2010
【3 VBAが使えるか .】 初心者レベル
【4 VBAでの回答の可否】 無理なら可
サイト取込みでURLの一部分の数字によってページが変化するので数字部分のみをwebクエリでパラメータ指定して取り込んでいます。
そこで、間間に記事が削除され存在していない場合などがあって、
「
http://www.blog. ○○(○は数字部分)を開くことができません。必要な情報をダウンロードできません。」
というウインドウが出てきます。
例えば1〜10のページを表示させようとしたときに、6ページが削除されてた場合、いちいちこのウインドウが出る度に次のwebクエリの読み込みが止まります。
なんとかこのウインドウを出さずに回避する方法はないでしょうか?
>>493 それはググることすら考え付かない質問者は小学生以下だと言っているようなものだぞ。
ぐぐった結果わからなかったから質問してるって意味じゃねーの。 まぁぐぐったら直ぐ分かるようなことを質問してたら小学生以下だが。
質問スレでググった方が早いとか言ってたら質問スレの存在意義がなくなるきがするが。
手がかりなしでググれというのはなんだが 十分な手がかりが出された状態でのググれはアリではないかな
いい歳したおっさんが小学生にググれって言われたくないなら こんなとこで質問なんてしてんなよ・・・
>>498 ああごめん。それはそうだよ。ここで全部説明するわけにはいかんし。
例えば
>>491 ね。
ヘルプで「左右反転」で検索してみてください。すぐわかりますよ。
「エクセル オートシェイプ 左右反転」などで検索してみてください。
みたいな回答できんものかと思って。
まぁ助け合いで成り立ってるスレなんだから、質問者は望む回答者がいなかったら諦めろ 回答者は分からなかったりめんどくさいと思ったらスルーしてあげればいい
503 :
名無しさん@そうだ選挙にいこう :2012/12/05(水) 22:50:59.85
Excelで入力した日本語をUTF-8に表示にエンコードする機能とかない?
MS-OfficeでUTF8だとADODB.Streamなんかな。 2010だとデフォでUTF-8だったっけかな?
>>494 webクエリだと警告キャンセルはできないんじゃないかな
vbaでMSXML2.XMLHTTPあたりでステータスコード見れば行けそうだけど
excelの話題かそれ?って怒る連中いるから自分で調べてみて
>>505 やはり無理ですか・・・
ありがとうございます
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel2010
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
VBAは全く分からないのですが、色つきセルをカウントする方法はないものかと探していたら
http://blogs.dion.ne.jp/day_after_day/archives/9456749.html このページを見つけ
Function CountColorA(Rng As Range) As Long
Dim myRng As Range
Dim Col_cnt As Long
'再計算時に呼び出し
Application.Volatile
Col_cnt = 0
'対象範囲内のすべてのセルの色をチェック、カウントする。
For Each myRng In Rng
If myRng.Interior.ColorIndex > 0 Then
Col_cnt = Col_cnt + 1
End If
Next myRng
CountColorA = Col_cnt
End Function
これを拝借して使っていたのですが、ちょっと処理が重いので
範囲指定したいのですが、全く知識がないためにどうすればよいのかわかりません。
sheet1とsheet2のD,E,F列とC2からC5とM2からX5だけに対象範囲を狭めたいです。
どなたかこれを書き換えて頂けませんでしょうか?
よろしくお願いします。
myRngなんて変数を使ってる人が未だにいるのかwww
>>508 そんなコメントは雑談スレ使ってやって下さい。
色付きセルを数えるなんてのは昔から馬鹿と相場が決まっている 質問する奴も回答する奴も両方だ その関数じゃそもそも色を変更しただけじゃ動かない 変数名に関してはセル範囲だったらmyRngでも別に構わんだろうが単独セルにmyRngはちょっとなぁ For Nextにiを使うようにそういうケースはFor Each cが一般的 For Each iってやる人を見たがiって何の略だろう?
一般的(キリッ
色付きセルカウント馬鹿の手助けをするとInterSectを使うことになる UsedRangeも使うことになるかな?
>For Each iってやる人を見たがiって何の略だろう? その場で本人に聞かずにこんなとこで質問するのは馬鹿と相場が決まっている
何の略でもないのはわかってるから聞かないのさ
iを使うのは1に似てるからだYO!
なんでRangeオブジェクトの変数にc使うの? 伝統か何か?
For Eachを使うときは、どんな場合でも For Each wsしか使ってねーわw
速度出ないって言ってるのにintersect使ったら逆効果じゃないの?
列全体を調べてるから、intersectとusedrange使えばって意味じゃないの
PCのカレンダーから先月を変数bに入れるとき、12月までは 下記のやつでおkですが、来月になったら0月になってしまいます・・・ orz 1月のとき12月を入れるには、どうすればいいですか? b = Format(Date, "m") - 1 & "月"
522 :
名無しさん@そうだ選挙にいこう :2012/12/06(木) 20:52:04.30
シート1に A+、A、A−〜E+、Eの下に数値をいれたセルの表を作り シート2に 一つのセルにBと入力すると隣のセルにそのアルファベットの下の数値が表示されるようにする方法はありますか?
あります
vbaは1月は0でなくて1なのか
>>522 横方向にデータ並べるんだったら、hlookup関数だったかでできんじゃない?縦ならvlookupで。
>>507 こんなんかな?再計算しないと動かんみたい。検索で探して全選択してステータスバー見た方が早いかもしらんわこれ。
Function CountColor() As Long
'sheet1とsheet2のD,E,F列とC2からC5とM2からX5だけに対象範囲を狭めたいです。
Dim sht1Rng As Range, sht2Rng As Range, v As Long, rng As Range
Set sht1Rng = Worksheets("Sheet1").Range("$D:$F,$C$2:$C$5,$M$2:$X$5")
Set sht2Rng = Worksheets("Sheet2").Range("$D:$F,$C$2:$C$5,$M$2:$X$5")
Set sht1Rng = Application.Intersect(sht1Rng, Worksheets("Sheet1").UsedRange)
Set sht2Rng = Application.Intersect(sht2Rng, Worksheets("Sheet2").UsedRange)
v = 0
'対象範囲内のすべてのセルの色をチェック、カウントする。
If Not sht1Rng Is Nothing Then
For Each rng In sht1Rng
v = IIf(rng.Interior.ColorIndex > 0, v + 1, v)
Next
End If
If Not sht2Rng Is Nothing Then
For Each rng In sht2Rng
v = IIf(rng.Interior.ColorIndex > 0, v + 1, v)
Next
End If
CountColor = v
End Function
527 :
507 :2012/12/06(木) 21:13:35.91
うわっ、リロードし忘れた。
>>526 ありがとうございます。
本当に助かりました。
529 :
名無しさん@そうだ選挙にいこう :2012/12/06(木) 21:35:57.47
>>520 If Format(Date, "m") = 1 Then
b = Format(Date, "m") + 11 & "月"
Else
b = Format(Date, "m") - 1 & "月"
End If
でいいんじゃね?w
>>520 =MONTH(EDATE(Date,-1)) & "月"
すいません、507です。 526さんに教えてもらったものが、なぜかうまくいかず色々悩んでいたら 実は507やつは間違いで、正しくは↓の「指定した色」で塗りつぶされているセルの数を取得するものを使っていました。 アホですいません。 Function CountColor(Rng As Range, Col_index As Integer) As Long Dim myRng As Range Dim Col_cnt As Long '再計算時に呼び出し Application.Volatile Col_cnt = 0 '対象範囲内のすべてのセルの色をチェック、カウントする。 For Each myRng In Rng If myRng.Interior.ColorIndex = Col_index Then Col_cnt = Col_cnt + 1 End If Next myRng CountColor = Col_cnt End Function たびたびすいませんが、どなたかよろしくお願いします。 526さん、せっかく書き直していただいたのにすいません。
>>532 「> 0」→「= Col_index」
>>533 レスありがとうございます。
書き直してみましたが、まだうまく反応してくれません。
>Function CountColor() As Long
> 'sheet1とsheet2のD,E,F列とC2からC5とM2からX5だけに対象範囲を狭めたいです。
> Dim sht1Rng As Range, sht2Rng As Range, v As Long, rng As Range
知識がないなりに推測するに、色番号を指定するために、526さんが書いてくれた↑の最初の3行部分の
どこかも書き直さないといけないと思うのですが、それが自分では分かりません。
すいませんがよろしくお願いします。
そもそもその
>>526 はユーザー定義関数として使うんか?
再計算でも動かんし、おまけにユーザー定義関数で関数内に範囲まで書くのはおかしいだろ。
範囲は引数で指定するぞ普通。
>>534 再計算されてないだけ。
入力した数式セルを編集状態にして再度エンター押したら最初の一回は計算されるやろ。
色付きセルを数えるなんてのはエクセルでやるべきことじゃないんだよ データをセルに入力してデータに応じて補助的に色を付けるのはありだ これならデータを数えれば色を数えなくて済む 色だけ変えたって再計算しないけど引数に入った範囲のセルのデータを変えれば再計算する
色をデータ代わりに使うってのは視覚障碍者にも優しくないアホ仕様
上は色覚異常のことね
質問に答えられないと仕様のせいにします
2007から色フィルタとか色を使った並べ替えとかって 機能も追加されているから、色付きセルを数えたいという 要求が出ても、あながち不思議とは思わない 一時的に数えたいだけなら色フィルタでもいいし 検索>書式ボタンで色指定>すべて検索を使えば 該当する色セルの数はわかるんだけどね 条件付き書式を使って「値に応じた色」を付けるようにすれば >536の言うようにデータを数える=色を数えるになる
>>534 Function CountColor() As Long
↓
Function CountColor(Col_index As Integer) As Long
v = IIf(rng.Interior.ColorIndex > 0, v + 1, v)
↓
v = IIf(rng.Interior.ColorIndex = Col_index, v + 1, v)
かな
vへの代入式は俺なら v = v + IIf(条件, 1, 0) って書いちゃうけど
v = IIf(条件, v + 1, v) の方がいいのかな?
>>541 こういう方法もある。別の人が見て理解できないからおすすめしないけど
v = v - (条件)
507です。
>>535 自分はユーザー定義関数として使うつもりでした。
自分みたいにマクロの知識がない人間には、ユーザー定義関数の方が敷居が低く使いやすいです。
マクロの知識がなくても汎用性があるようになりますし。
>>541 ありがとうございます。
ようやくうまく反応してくれるようになりました(`・ω・´)
マクロの知識はないが、何とかしたいという自分の無理な質問に答えてくれた皆さん
本当にありがとうございました。
2007はアホなユーザーの要求にmicrosoftが応えてるんだよな 書式検索の要求を出したdqnを一人知ってる
コードは短ければいいってもんじゃない IIf使うより普通にIf Then使ったほうがなんぼかまし
>>545 書式検索なら2003からありますがなにか?
やたらと騒いでいるのは色盲かなんかか? 一定の需要があるから、一企業が顧客のニーズに応えてるだけだろ そのうち、聴覚障害者に配慮してラジオ廃止しろとか 視覚障害者に配慮して世の中の全ての印刷物を点字にしろとか言い出しそうだな
シート"一覧"に下記のような表があります。 A列は空白、B列は順番を示す数字または空白、D列はシート名、 F列は各シートの最終行数があります。 B列に書いた順番どおりに、D列に書かれたシート名の内容を シート"印刷"にコピペしたいのですが、「いちご」「もも」で終わってしまいます。 どこを直せばいいでしょうか? A B C D E F 順 シート名 行数 りんご 27 3 みかん 31 なし 36 れもん 15 1 いちご 22 ばなな 38 2 もも 26 4 ぶどう 29 Sub コピペ() D = Range("D65536").End(xlUp).Row Worksheets("印刷").Rows("1:500").Delete Shift:=xlUp jun = 1 For i = 3 To D If Cells(i, "B") = jun Then stn = Cells(i, "D") gyou = Cells(i, "F") Worksheets(stn).Range("A1:J" & gyou).Copy _ Destination:=Worksheets("印刷").Range("B65536").End(xlUp).Offset(2, -1) jun = jun + 1 End If Next i End Sub
なんで3行目から?って思ったけどいちごももで終わるのはもっと単純な事かと。
>>550 F8で1行づつ動きを確認してみなよ。
今のコードだといちごが順2でももが順1なら桃だけで終わるよ。
553 :
550 :2012/12/07(金) 23:20:55.26
>>551-552 タイトル行が2行目、データは3行目からなので i = 3 にしてます。
F8で確認しました。
4回、ループさせればいいのかな?
でも毎回4回とは限らないんですよね・・・
眠いので、また明日来ます。
>>553 おやすみなさい。
その考え方なら、順番の列の一番大きい数字を探してその回数だけループさせる方法になるね。
でも他にも方法はいろいろあるから工夫してみてください。
例えば順番の列を昇順並べ替えする処理を追加してから
>>550 の処理したら目的の結果にはなるし。
元データを並べ替えたくなければ、順番列に記入があるデータを全て出力してから、出力先で並べ替えを
するとか。
>>550 こんな感じかな?
x = Application.Worksheetfunction.Max(range("B:B")
For jun = 1 to x
For i = 3 to D
If Cells(i, "B") = jun Then
:
ExitFor
EndIf
Next
Next
x x = Application.Worksheetfunction.Max(range("B:B") o x = Application.Worksheetfunction.Max(range("B:B")) ↑カッコが抜けてたアルよ
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 回答お願いします。 A列に10人の名前がランダムに入力されているとします。 1人ごとにランダムに複数回ずつ入力されています。 B列にはテストの成績の順位が入力されています。 このような時に例えばX君のテストの成績が1位の時の回数、2位の回数、3位の回数、 Y君の1、2、3位の回数というふうにそれぞれの順位の回数を知りたいのですが、どのようにすれば良いでしょうか?
>>557 これを質問してくる人は一体なんのためにExcelでデータを入力したんだろう?
Excelで加工できるかどうかわからないけど多分できるはず!
とりあえずExcelに入力してみよう!
ってことなのかな
>>545 そういえばあのdqnの要望は2003の前だったな
563 :
名無しさん@そうだ選挙にいこう :2012/12/08(土) 14:06:44.34
【1 OSの種類 .】 Windows XP あるいは7 【2 Excelのバージョン 】 Excel 2003 【3 VBAが使えるか .】 はい (多少) 【4 VBAでの回答の可否】 可 =($C3-$B3+IF($B3>=$C3,1,0))*24のままだと 何も入力しないと24になるので(最終的にsumで合計したいので、) 0を入力する(何も入力しない)場合、0あるいは空白に するにはどうすればいいですか?
>>563 =IF(OR($B3=0,$C3=0),"",($C3-$B3+IF($B3>=$C3,1,0))*24)
ファイル-オプション-数式
>>560 他のソフトからコピペしたデータをエクセルで集計したかったんですが、やり方がわからなかったんです。
568 :
565 :2012/12/08(土) 18:37:03.87
>>566 その方法で変えても次から新規で開いたブックは最初からR1C1になってるのです。
>>567 俺もそうだわ
Excel便利だからやり方わからなくてもとりあえず一か八かExcelに貼り付けちゃうよね
>>568 まさかと思うけど、オプションを変えた後
一度Excelを終了→再起動してる?
>>570 まさかとは?
再起動したら必ず最初はR1C1参照形式になってます。
作って保存したブックはA1参照にして保存したら次開いてもA1参照になってます。
新規のブックが最初からA1参照になるようにしたいのです。
>>571 >>565 のリンク先にあるように、アドインはずしてみたらどうですか
アドインがR1C1形式になっているんじゃやない?
573 :
550 :2012/12/08(土) 21:57:36.03
>>554-555 ありがとうございます。
並べ替えればいいというのはF8の押下で分かりましたが、
A列に連番を打って並べ替えてから処理し、元に戻すというのも
何だかなぁ〜という感じでした。
が、555さんの方法でスッキリしました。
Worksheetfunctionは、ワークシート関数のSUMくらいしか
使ったことがなかったので勉強になりました。
ではでは〜
574 :
565 :2012/12/08(土) 22:35:35.27
>>572 アドインとは分析ツールの件でしょうか?分析ツールのは試してみたけど(もともとチェック入ってなかった)入れても入れなくても
状況かわりませんでした。
自分でググってデフォルトでR1C1にする方法見つけて自分で設定したはずなのに、今ググっても方法が見つからない・・・
暇な時にまたググって調べてみます。
>>574 いや、分析ツールじゃなく、あなたが自作したアドインブックがあやしい。
もしくは、個人用マクロブックとか、非表示になっているブックはないの?
576 :
565 :2012/12/08(土) 22:44:34.11
>>575 個人用マクロブックでした!ありがとうございます。
再表示でPERSONAL.XLSBを開いてR1C1チェックを外して上書き保存したら直りました!
577 :
520 :2012/12/08(土) 22:53:10.59
レスが遅れてすんません。。
>>530 んー、もうちょっと気が利いたヤツをお願いします。
>>531 コンパイルエラー
SubまたはFunctionが定義されていません と出て、
EDATEが反転表示になってしまいます。
578 :
531 :2012/12/08(土) 23:42:00.44
>>577 ん〜〜?
マクロの質問だったの?
てっきりCellの式かと思ってた。
ところでExcelのバージョンはいくつ?
579 :
520 :2012/12/08(土) 23:57:11.79
>>578 Dateを見ればVBA関数だってわかるでそ?
Excelは2010です。
>>579 VBAに変えてみた
With Application.WorksheetFunction
a = Month(.EDate(x, -1)) & "月"
End With
一行にしたいなら b = Month(Application.WorksheetFunction.EDate(x, -1)) & "月"
582 :
520 :2012/12/09(日) 00:37:57.73
>>580-581 実行時エラー '1004'
WorksheetFunctionクラスのEDateプロパティを取得できません
>>582 x の部分は、日付値として渡してるんだよね。
>>582 2007でも2010でも問題なく動いてるよ
その前後アップしてみて
585 :
名無しさん@そうだ選挙にいこう :2012/12/09(日) 01:07:49.44
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 連続コピーで ='1日'!J$33を下に ='2日'!J$33 ='3日'!J$33 の様にしたいのですがどうしたらよろしいでしょうか?
>>585 連続コピーの正式な言い方は「オートフィル」ね
一発でやるのは無理
まず「A1B」「A2B」と入れてオートフィルしてから「B」を「'!J$33」に置換、最後に「A」を「='」に置換する
別の方法として=INDIRECT(CHAR(ROW()+9008)&"日!J$33")という式を使う
【1 OSの種類 .】
【2 Excelのバージョン 】
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
http://oshiete.goo.ne.jp/qa/5258945.html こういう内容を自分で理解して改変出来るようになろうと思ったらどうやって勉強したらいいですか?
今の時点で自分が見て動作させてみてわかる範囲は、
駅の名前をADODB.Streamを使用して"%E5%A4%A7%E9%98%AA"このような文字列に変換してアドレスを作ってるんだなと
いう事ぐらいです。
/search/result?from=○○to=○○というアドレスについて理解するには何を勉強したら良いでしょうか?
それとCreateObjectでエクセルやワードなどを操作するサンプルも見たことありますが、これら他のアプリケーション
を動かす場合のメソッドなどはどうやって調べればよいでしょうか?ワード動かす場合はワードのヘルプから調べれば
見つけれるのでしょうか?
>>588 ありがとう。
MSDNライブラリで勉強してきます。移動します。
590 :
名無しさん@そうだ選挙にいこう :2012/12/09(日) 22:45:24.02
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel2007
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
http://www1.axfc.net/uploader/so/2708739.xls 上記ファイルのようにExcel2007でカレンダーに当番表をつけて作成しております。
土日祝などは抜かして、当番表の順番どおりに、自動的にカレンダーの隣にある当番の列に
ループして書き込むようにするにはどうすればよろしいでしょうか?
よろしくお願いします。
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 売上データが5,000行くらいあるのですが、その数値を参照して客単価やどんなジャンルの商品が売れているのかを計算しています。 帳票データが出力される際に、一番下に合計の数値が必ず出てしまうのですが、計算時にこの数値を省くことはできるでしょうか? 合計のみなので、単純に一番デカい数字だけ省ける仕組みがあればいいのですが… データは売上件数によって変わるので特定行を合計の場所とみなし指定することはできません。
売上データと帳票データの関係は? Maxを探して削除するだけじゃね?
一番下を消すだけじゃないか?
>>590 F列を作業列として
F3:=NOT(OR(COUNTIF(祝日テーブル,A3)=1,WEEKDAY(A3)=1,WEEKDAY(A3)=7))
C3:=IF(F3,VLOOKUP(MOD(COUNTIF(F$2:F2,TRUE),5)+1,祝日!$F$3:$G$7,2,FALSE),"")
>>591 売上データと帳票データの関係性が全く書かれてないので回答しようがないわ
もっと詳しく書くかサンプルでいいからブックをUPするかしないと
596 :
590 :2012/12/09(日) 23:53:53.54
>>594 教えていただきありがとうございます。
勉強になりました。
もうひとつ質問なのですが、月をまたいだとき、前月の当番表の順番の続きから自動的に書かれることはできます?
例
当番表
1 A
2 B
3 C
4 D
5 E
日付
5/31 A
6/1 B
>>596 当番表の1〜5を算出しているのは COUNTIF(F$2:F2,TRUE),5)+1 の部分だからそこを変更すればどうにでもなるかと
開始年月がいつなのかわかんないけど開始年月以降ずっとカウントをしていかないといけないので
今みたいに年月を切り替えてカレンダーの表を書き直す方式だと難しいと思う
VBAの出番かな
598 :
590 :2012/12/10(月) 00:35:51.96
>>597 たびたび教えていただきありがとうございます。
当番表の行を随時増やしていこうと思いますので、COUNTIF(F$2:F2,TRUE),5)の
5のところは、offset関数で対応してみます。
VBAで当番表を自動的に当てはめるにはどうすればよろしいでしょうか?
599 :
591 :2012/12/10(月) 01:02:23.03
>>592 ありがとうございます。
maxを探してマイナスするだけで目的が達成されました。
>>593 それだとなんか負けた気がするんで、できれば関数とか使って処理したかったのです。
600 :
名無しさん@そうだ選挙にいこう :2012/12/10(月) 10:36:39.22
>>599 対象がどのような形で作成されているか
・ピボットテーブルなのか
・マクロ使用なのか
・単にsum関数を使用したのか
このような情報もないので、みんな答えようがないんですよ。
601 :
名無しさん@そうだ選挙にいこう :2012/12/10(月) 13:39:36.39
【1 OSの種類】 Mac 【2 Excelのバージョン】 Excel2011 【3 VBAが使えるか】 いいえ 【4 VBAでの回答の可否】 不可 以下のようなデータがあるとします。 1月 2月 3月 商品1 商品2 商品1 商品2 商品3 商品3 (これとは別に全商品のリストデータもあります) これを 1月 2月 3月 商品1 商品1 商品2 商品2 商品3 商品3 商品3 といった形に並べ替えたいです。通常の昇順並べ替えをした後に、足りない行を地道に挿入していけばできないこともないのですが、 データが多いため、なんとか簡潔にできないかと思っています。 なお、実際には各商品には商品名以外にも個数や単価などのデータが付随します。以上よろしくお願い致します。
602 :
601 :2012/12/10(月) 13:40:55.83
訂正 1月 2月 3月 商品1 商品2 商品1 商品2 商品3 商品3 とあるデータを 1月 2月 3月 商品1 商品1 商品2 商品2 商品3 商品3 といった形に並べ替えたいです。よろしくお願い致します。
>>601 要求仕様がよくわからん
元データが↓の場合はどんなソート結果を想定してるの?
1月 2月 3月
商品1 商品2 商品4
商品2 商品5 商品4
商品3 商品2 商品1
商品2 商品1 商品1
あと
>実際には各商品には商品名以外にも個数や単価などのデータが付随します
の意味もよくわからん
これがどんな風にデータ定義されていてどんな風にソートに影響するの?
604 :
名無しさん@そうだ選挙にいこう :2012/12/10(月) 15:30:38.91
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 ちょっぴり 【4 VBAでの回答の可否】 可 チェックボックスのチェックの有無でシート上の図形の枠線を 消したりつけたりするマクロを作りたいのですが マクロの記録ではコメント行しか作成されませんでした。 ↓ここまでは考えてみたのですが 3行目と5行目がエラーになります。 どのようにすればいいでしょうか?? Sub CheckBox1_Click() If CheckBox1.Value = True Then Active.Sheet.Shapes("Circle1").Visible = True Else Active.Sheet.Shapes("Circle1").Visible = False End If End Sub よろしくお願いいたします
605 :
604 :2012/12/10(月) 15:34:36.77
すみません解決しました。失礼いたしました。
606 :
601 :2012/12/10(月) 15:52:26.70
>>603 同一月内に同じ商品名が複数入ることはない仕様です。元データはこんな感じです。
商品は1〜3までありますが、月によってデータが上がってこないことがあります。
1月
商品名 在庫数 販売数 返品数
商品1 100 50 5
商品2 200 100 0
2月
商品名 在庫数 販売数 返品数
商品2 300 200 10
商品3 150 100 0
3月
商品名 在庫数 販売数 返品数
商品1 100 50 10
商品3 200 100 0
これらを以下のように並べ替えたいのです。
1月 2月 3月
商品名 在庫数 販売数 返品数 在庫数 販売数 返品数 在庫数 販売数 返品数
商品1 100 50 5 100 100 0
商品2 200 100 0 300 100 0
商品3 150 100 0 200 100 0
各列の項目名は実際のものとは違います。匿名性を高めるために商品で例を挙げているだけです。
「在庫数」、「販売数」、「返品数」はあくまで「各月で数値が変わりうる項目」の例ですので、
たとえば「在庫なくても返品がある場合は?」といったことは考えないで大丈夫です。
端折ってしまって余計に分かりづらかったですね。すみません。
607 :
601 :2012/12/10(月) 15:53:50.12
2行目文字化けは 商品は1から3までありますが、・・・ です。
609 :
601 :2012/12/10(月) 16:18:08.88
>>608 すみません。在庫数やら何やらのデータは並べ替え範囲の拡張で対応できると考え省略してしまったのです。
このデータがあるのとないのとで、大きく扱いが変わってしまうのかどうかについて想像もついていませんでした。
後出しになってしまって信用できない、というのももっともなんですが
どうかお教えくださいませんでしょうか・・・
月のフィールド作って縦に並べて 月 商品名 在庫数 販売数 返品数 1 商品1 100 50 5 1 商品2 200 100 0 2 商品2 300 200 10 2 商品3 150 100 0 3 商品1 100 50 10 3 商品3 200 100 0 あとはびぼっとで行:商品名/列:月/値:のこりでいけるんじゃない?
マクロで、a=1だったらb="@"みたいに丸付き数字に変換したいのですが、 Ifを16個並べる以外に方法があれば教えてください。 数字は1〜16までです。
>>611 b = ChrW(AscW("@") + (a - 1))
613 :
611 :2012/12/10(月) 19:12:20.15
614 :
601 :2012/12/10(月) 19:24:25.48
>>610 ありがとうございます。上手くできました。
いろいろ不手際がありすみませんでした。
615 :
604 :2012/12/12(水) 10:12:13.06
再びすみません。 チェックボックスではなくて、図形を直接クリックすることで 図形の枠線をつけたり消したりするにはどうしたらいいのでしょうか?
617 :
604 :2012/12/12(水) 10:31:11.60
>>616 後出しになってしまって申し訳ないです。
図形が320個あるのでひとつひとつにマクロを登録するのは大変なので
クリックされた図形の線をつけたり消したりする、というふうにしたいのですが
特定の図形を指定するのではなく、
「シート上にあるどれかの図形をクリックしたら、その図形の」 というのを
どのように書けばいいのかわからなくて悩んでいます。
既存のシェイプならonActionに突っ込んで Sub registerMacro() Dim shp 'As Shape | ShapeRange? ようわからん For Each shp In ActiveSheet.Shapes shp.OnAction = "toggleLine" Next End Sub Private Sub toggleLine() Dim targetShp 'As Shape | ShapeRange Set targetShp = ActiveSheet.Shapes(Application.Caller) targetShp.Line.Visible = IIf(targetShp.Line.Visible = msoFalse, msoTrue, msoFalse) End Sub で、registerMacro実行かな。つかExcelでシェイプ300とか超スパルタンな修羅の国だなそれ。
619 :
604 :2012/12/12(水) 12:33:03.08
>>618 ありがとうございます。がんばってみます。
320コというのは、
複数ある選択肢の中からひとつをえらんでそれに丸をつける、という
のを1つのブックで100枚入れてるからそうなってしまったのです。
クリックしたセルに入っている文字数に合わせた大きさの丸を挿入する、
というのを最初は作ろうとしたのですがエラーになってしまったので
最初から全部丸を作っておいて、クリックした部分だけ表示させる
というふうにしようかと思ったのです。
620 :
604 :2012/12/12(水) 13:02:04.03
618で教えていただいたコードをとりあえず貼り付けて マクロの一覧のところから実行してみたのですが エラーメッセージが「400」って出ました。 もう意味がわかりません…。この400っていうのは何なんでしょうか…。
621 :
604 :2012/12/12(水) 13:44:03.57
すみません、普通にエラーコードだったようです。 数字しか出なかったのでぱにくりました。一休みしてからまた考えます。
>>617 ひとつひとつにマクロを登録するのが面倒なら
必要な図形を全て選択してマクロを登録すればいいだけでは?
623 :
604 :2012/12/12(水) 14:35:07.66
>>622 それだとすべての図形の線が消えませんか?
>>623 わざわざ全ての図形の線を消すような実装をすれば全ての図形の線が消えるね
というか条件反射で質問するクセを直さないと進歩がないよ?
625 :
604 :2012/12/12(水) 15:10:34.47
>>624 Sub Click()
If Selection.ShapeRange.Line.Visible = True Then
Selection.ShapeRange.Line.Visible = True
Else
Selection.ShapeRange.Line.Visible = False
End If
End Sub
ここまでは書いてみたんですが、438のエラーになります。
「クリックした図形の枠線があるかないか」っていう部分をどう書いたらいいかわかりません。
もう一声ヒントください。
626 :
604 :2012/12/12(水) 15:26:26.10
できましたー!! ありがとうございます(TOT) これでやっと仕事がすすみますー
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel2010
【3 VBAが使えるか .】 少々
【4 VBAでの回答の可否】 可
このようなイメージのリストがあります。
http://uproda.2ch-library.com/612405hF6/lib612405.jpg 罫線で囲まれたところをブロックと呼称すると、1ブロックが16行〜60行になっています。
これらを、1ページ最大62行のシートにコピーして印刷をしていますが、2ページに
またがるときは空白行を追加して、各ブロックが途切れないようにしています。
この操作をマクロで自動化したいのですが、どのよういにすればいいでしょうか?
ブロックは最少で1、最多で10です。
よろしくお願いします。
>>627 よくわからん。
1ブロック=※aaの場合A2:D5 で4行
ってことですか?
629 :
627 :2012/12/12(水) 21:26:58.13
>>628 aaの場合は4行ですが、画像は “イメージ” です。
(言葉では説明しにくかったので)
実際には16〜60行のブロックを組み合わせて印刷します。
例えば、16行、60行、22行、20行、17行、23行のブロックがあれば、
1ページ目に16行と空白行を46行、2ページ目に60行と空白行2行、
3ページ目に22行、20行、17行と空白行を3行、4ページ目に23行となります。
>>627 何がしたいのかもわからんし
何がわからんのかもわからん
>>627 印刷するのが目的なのか、空行を挿入するのが目的なのか、何を自動化したいのかがよくわからない
印刷するのが目的ならカウントしていって改ページすればいいだけだし
空行を挿入するのが目的ならカウントしていって空行を挿入すればいいだけだと思うけど
ソースを見てみないとどこで躓いているのかすらわからない
よくわからんが 単に改ページを挿入すればいいんじゃないのか
634 :
名無しさん@そうだ選挙にいこう :2012/12/12(水) 22:12:03.21
>>634 句読点の使い方 でググってくれば?
あなたが思ってるほど簡単な物じゃないと思うよ。
それらのレスは句読点の間違いで意味が違えてくるほど紛らわしい内容でもないと思うけど。
636 :
627 :2012/12/12(水) 22:40:21.10
>>630 何をしたいかは627を読んでください。
何がわからないのかも627を読んでください。
それでもわからないなら、無駄なレスはご遠慮ください。
>>631 最終目的は印刷ですが、その前にブロックをページで
またがないような手段が必要です。
629に具体的な例を書きましたが、お読みになられたでしょうか?
>>632-633 そうですか。
>>634 そうですね。
637 :
633 :2012/12/12(水) 22:47:58.46
ああ、相手にしたらあかん質問だったのか。うかつだった。
638 :
名無しさん@そうだ選挙にいこう :2012/12/12(水) 23:00:51.58
レスが一気に増えて同じようなカキコのときって同一人物が書いてるんだよね?
ここまで俺の自演
デン・自演・ド
641 :
627 :2012/12/12(水) 23:26:23.11
てゆーか、
>>627 と
>>629 を読んでも理解できない馬鹿ってどんな馬鹿なんだ?
印刷が目的なの?空行挿入が目的なの??
わけわかんなーい
馬鹿自慢もいい加減にしろよ、
643 :
627 :2012/12/12(水) 23:31:40.58
自己解決しました はい終了
644 :
627 :2012/12/12(水) 23:52:31.15
ニセモノがなにかいってますが、引き続き回答お願いします
基本こんな?印刷うんぬんはようわからんからテンプレ的なシートコピーして転記する感じで。 データはとりあえず「ジャンプ」の「定数」で取得できるもんを想定してる。で、データあるシートで実行。 Dim templeteSheet As Worksheet, dataRange As Range, currentSheet As Worksheet, currentRow As Long, r As Long, block As Range Const MAX_ROW As Long = 62 'ページの最大行数 Const BLOCK_MARGIN As Long = 1 'ブロック?ごとの余白 '印刷用シート?をセット Set templeteSheet = Worksheets("印刷用シート") currentRow = 1 + BLOCK_MARGIN Set dataRange = Cells.SpecialCells(xlCellTypeConstants) templeteSheet.Copy after:=Sheets(Sheets.Count) Set currentSheet = Sheets(Sheets.Count) For Each block In dataRange.Areas r = block.Rows.Count If (r + currentRow > MAX_ROW) Then '新規シート追加 currentRow = 1 + BLOCK_MARGIN templeteSheet.Copy after:=Sheets(Sheets.Count) Set currentSheet = Sheets(Sheets.Count) End If 'データ転記 block.Copy currentSheet.Cells(currentRow, 1) currentRow = currentRow + r + BLOCK_MARGIN * 2 Next
まず質問者の日本語スキルが低すぎる
回答者の解読スキルが低すぎる
>>648 の通り
真に上を目指すなら小学生の発言にも真摯に耳を傾け、
理解する努力を怠ってはならない。
>>646 627と629に沿って罫線に囲まれたデータを作り、試してみたけど・・・
なんじゃこりゃw
653 :
名無しさん@そうだ選挙にいこう :2012/12/14(金) 02:03:51.91
Excelの関数出来るようになろうとして本買ってきたけどこんなにたくさん あったら覚えきれん。一度、本通りにやるのは出来てるけどすぐ忘れるだろ? 関数の種類だけ覚えておいてあとはその都度使うときに本見てやるものなの?
>>653 ヘルプに載ってるからわざわざ本なんて買わん
655 :
名無しさん@そうだ選挙にいこう :2012/12/14(金) 05:09:50.19
ヘルプみても分からんなら関数とマクロの本見てもいいだろう ExcelVBAは本必要だと思う。
656 :
653 :2012/12/14(金) 05:31:43.59
まだ最初の方しか見てないけど、本に載ってる例題やるのはなんとか出来る んだよ。それを何十個も覚えるのが大変てことよ。
>>656 よく使う関数は意識しなくても覚えるやろ。全部を何も見ずに使えるようになる必要はない。
関数の種類というか用途を覚えてればいいと思う。
関数の表見て機能を覚えても、こういう動作がしたいと思った時にどの関数使えばいいかはわかりにくいので、
本などの例題やそこらのサイト見て、この関数使えばこういう事が出来るんだなって事を知っておけばそれで
良いと思う。
これをするのにこの関数を使うというところまでわかってれば、使い方は本見るよりググった方が早く見つかる。
>>656 せっかく買った本だから、あちこちパラパラめくりながら
面白そうな関数、便利そうな関数があればそれを試してみる
慣れたら同じように別の関数も試してみる
その繰り返しでいいんじゃないかな
最初から「何十個も覚える」などと構える必要はない
本見たければ見ればいいし 本見たくなければ見なけりゃいい 暗記したいなら暗記すればいいし 暗記したくなければ都度本見ればいい
最初のほうに載ってるやつは基本だから覚えたほうがいい てか、使ってれば何度も出てくるから嫌でも覚える
>>660 同じエクセル関数の本でもいろいろな構成がある
基本的な関数=最初のほうに出ているとは限らんぞ
2行目は同意
662 :
656 :2012/12/14(金) 13:18:34.62
私が実務でExcelやってたのは約15年前でその頃は社内にPC1台だけで、 個人で持ってる人はほぼ居なくて、私はボーナスで30マソのノートPC買った という時代。関数はオートSUMだけで事足りた。 当時からやってれば中級くらいにはなってるんだろうけど、15年もブランク あって今、使ってないから中々覚えられん。
覚えなくていいよ。今回もオートSUMで事足りるとおもう。
必要なら覚えればいいし必要なければ覚えなければいいと思うんだが 小学生レベルの質問してるけど一体社会人何年生なんだ?
665 :
656 :2012/12/14(金) 14:57:07.91
私の今の背景を説明してなかったからな。 15年前まで事務系リーマンやってたけど辞めて、PCは自宅使用しかしてなかった のが、今回、再就職に当たり関数の使用レベルも採用の一要素となることを 実感し、勉強を始めた。 だから実務で使いながら覚える手法は取れず、まずは一定量を覚えておくことが 必要と考える。 で、短期間でただ覚えていくだけてのはムズいなという感想。
事務系リーマンって設定だったら過去の帳票組んでみればいいじゃん。
>>665 再就職でExcelの実技テストがあるところなんてまずないよ。(使えて当然だから)
こんなとこでExcelの勉強方法の質問してる程度の脳みそなんだから、
面接の練習したり職務経歴書の書き方を勉強すべきだと思う。
15年って事は中卒で働いていたとしても30歳以上か。なんかヤバいな。
668 :
656 :2012/12/14(金) 17:31:38.96
>>667 お前程度のやつなんか相手にしないからオレにレスすんな。
クソして寝てろ、カスw
歳だけとってて使い物にならないくせにプライドだけ高い40代50代のオッサン ハロワに溢れてますねぇ…
670 :
名無しさん@そうだ選挙にいこう :2012/12/14(金) 18:49:13.23
>>669 調子こいてる無礼なザコにはそれ相応の対応をしたまで。
反撃されて涙目になるなら初めから言うなw
ここまで俺の自演
656って、コイツ↓だろ? 340 名前:名無しさん@そうだ選挙にいこう[] 投稿日:2012/11/30(金) 17:48:04.12 転職でエクセルの関数の中級レベルまで求められることが多いので 覚えたいです。 講師に教えて貰うのが簡単確実で好きなんですが料金が高いので自習します。 無料ソフトとか安いもので関数教育ソフトはありますか? やっぱり本買ってきて自習?
そろそろ雑談スレでやってもらっていいかな?
A3セルに 200 C5セルに =1000-A3 この状態で、C5をWクリックするとA3と関連してることが視覚的にもわかります。 逆に、A3セルからC5と関連してると確認する方法はありますか?
676 :
名無しさん@そうだ選挙にいこう :2012/12/14(金) 20:40:11.33
ワークシート分析の参照元のトレースでいけなかったけな
>>675 ,676
できたw
エクセル歴15年で初めて知ったよw
「関数の中級レベル」とは一体何だった野田?
webクエリで、サイトのhtmlソースを取得することはできますか?
>>679 エクセル VBA HTMLを取得
で検索したらいろいろ出てくるからHTMLの取得はできるんでね?Webクエリかどうか知らんけど。
682 :
563 :2012/12/15(土) 22:03:15.85
>>564 返事が遅くなりました。
即レスありがとうございます。解決しました。
683 :
名無しさん@そうだ選挙にいこう :2012/12/18(火) 11:05:23.25
すいません、初心者なのですが、 ExcelでA4用紙に 縦に「目いっぱい」入れたいのですが、 印刷すると、うまくいきません。 余白 ヘッダー フッターの関係上 取りあえず、全て0にしたのですけど、まだ上に空白が有ります。 この場合単純にヘッダーにテキスト入力することになるんでしょうか? どなたか教えてください。よろしくお願いいたします。 (罫線、表などはどうしたらいいんでしょうか?)
>>683 余白なしの印刷ができるかどうかはプリンタ側の問題
エクセル側の操作は
>>684 さんのいう通り
印刷時に「プロパティ」をクリックして
プリンタ側の設定を行なうとなんとかなると思うよ
古い機種で余白なし(ふちなし)印刷自体ができない場合はアウト
【1 OSの種類 .】 Windows7 32bit
【2 Excelのバージョン 】 Excel2010
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
@例えばこういう表があったとして、
http://i.imgur.com/JrKDn.png Aこうしたいんですが、
http://i.imgur.com/bXuwz.png ・まず@自体は人から渡されるファイルなのでこの形はどうにもなりません
・Aをデータソースにして更に計算式の入った列を追加しつつピボットテーブルも使う予定です
・画像はただの例ですが、フィールドは数値が入ったものが多数あり、レコードも1万近くあります
・定期的に渡される@の内容はその度に更新されています
よろしくお願いします
>>686 丸投げしたい場合はただの例を提示するのではなく
ブックをアップして完全な仕様を提示しないと
>>687 申し訳ありません
職場のファイルなのですが、自宅にPCを持ってないので無理です…
何の関数で出来そうかのヒントだけでも頂ければ嬉しいです
RangeのMergeArea.Addressで結合セルの行数取得してそれ使ってループ&転記なり分解して空白削除なり好きにすればいい
>>690 2列目の番号がそのサンプル画像のように正しく入ってるなら、1列目を無条件で全て結合解除した後に2列目を
上からループして番号1の行のタイトルを1以外の行にコピーするようにしたらいいんちゃう。
Sub test()
Dim i As Long
Dim strTemp As String
With Worksheets("Sheet1")
.Columns(1).Merge True '(1)が結合されている作品タイトル列
'i=2 の2がデータのある最初の行、(Rows.Count,2)の2が番号列
For i = 2 To .Cells(Rows.Count, 2).End(xlUp).Row
If .Cells(i, 2).Value = 1 Then
strTemp = .Cells(i, 1).Value
Else
.Cells(i, 1).Value = strTemp
End If
Next
End With
End Sub
標準モジュールに張り付けてWorksheets("Sheet1")を目的のシート名と
Columns(1)の数字とFor i =2の行の数字を今のシートに合わせて変更してうごかしてみ。
結合セルをなくして各行にタイトル入れるだけの動作ね。あとは手動でいいならMS列で並べ替えして
空白行をまとめて削除したらいいと思う。
692 :
名無しさん@そうだ選挙にいこう :2012/12/19(水) 09:17:01.44
683です。
>>684 >>685 >余白なしの印刷ができるかどうかはプリンタ側の問題
>エクセル側の操作は
>>684 さんのいう通り
>印刷時に「プロパティ」をクリックして
>プリンタ側の設定を行なうとなんとかなると思うよ
>古い機種で余白なし(ふちなし)印刷自体ができない場合はアウト
そうですね、プリンタに関しては、
まったく考えていなかったです。
ありがとうございました。
よろしくお願いいたします。 1.XP 2.2000 3.いいえ 4.否 ブック間でシートをコピーした場合セルの数式に参照元のブック名が乗ってしまうのは仕様で防げないとググったら出ていました。 が、先ほどブック間でのコピーをしたら、数式がそのままの形でコピーされました。一旦作業を中断(保存して閉じる)して、再開したら今度はできなくなってしまいました。 なぜ出来たのか?そしてなぜ出来なくなったのか不明で、真相が知りたいです。 その作業に入る前の動作を試したり、実はそのようなコピーの方法があって、知らず知らずのうちにやっていたのか?全くわかりません。 どなたか、この現象の真実をご教授願います。
694 :
693 :2012/12/19(水) 12:21:42.55
補足です 2つのブックはほぼ同じシート名です ●イメージ Aブックに1〜4のシートがあり Bブックには1〜3のシートがあって Aブックのシート4をBブックにコピーしました シート4にはシート1〜3の数値を参照しています このような場合、コピーしたものには数式に参照元のブック名が記載されますが される時とされない時があったのです コピーのやり方が知りたいのではなく、なぜこのようになったかを知りたいです ただの偶然のバグなのか、たまたま何か操作したのか? 特に変わった操作はしていないのですが・・・。 すみませんよろしくお願いいたします
696 :
名無しさん@そうだ選挙にいこう :2012/12/19(水) 12:35:58.01
>>695 返信ありがとうございます。
この現象にびっくりしているのですが、現実に起きているので幻ではありません。
いろいろ調べて「リンク先の変更」でできるとなっていましたがそのような作業はしていません。
なぜ、参照元が付加されなかったのか?いまではそのようなコピーはできませんが・・・。
698 :
名無しさん@そうだ選挙にいこう :2012/12/19(水) 13:04:35.34
>>697 返信ありがとうございます。
やっぱりバグですよね。PCも古いのでその可能性が一番高いと思います。
この現象を検証しようとして仕事が一向に進みません。
思い違いは否定するのにバグは否定しないのねw
700 :
693 :2012/12/19(水) 13:27:34.69
>>699 正直詳しくないのでバグと言われてしまえばそうなのかなと。
目の前にファイルがあるので、思い違いはないんです。
う〜ん。
>>700 目の前に再現できるファイルがあるならバグなんでしょうね
手元の2003と2010では発生しなかったです
702 :
693 :2012/12/19(水) 15:33:09.01
>>701 返信ありがとうございます。
今、それをやろうとするとできないんです。
最初は、先にシートをコピーしてその後リンク先を変更しようとしたのですが、数枚シートをコピーし終えた後でセルを確認したら、ブック名がなかったのです。
その作業に入る前に何をしたのかあまり覚えていませんが、新しくフォルダを作成したのは覚えています。関係あるかわかりませんが。
そのほかには専ブラを(JS)起動していた以外には同時に何も開いていませんでした。
>>702 >何をしたのかあまり覚えていませんが
そういう状態で作業してるのなら「思い違い」じゃねーの?w
さすがにそのオペレーションで発生するようなバグは枯れてると思う
704 :
693 :2012/12/19(水) 16:13:57.23
>>703 返信ありがとうございます。
すみません。当方知識が乏しいです。
特別なこと(例えばマクロなど)は一切触っておりません。
その現象が起こるまでの作業はそれほど複雑ではなかったと思います。
>>694 >「Aブックのシート4をBブックにコピーしました」、の部分で
コピー → Bの参照式は元のAのブック内を示すのでブック名が記載される
移動 → Bの参照式は移動先のブック(つまりB自身)のシートを参照するのでブック名が記載されない
ってところじゃない?
シートのコピー/移動はチェックボックスにチェックが入るかどうかだから操作間違えやすいし
最近、excel97-2003ブックで保存されたデータを excel2007以上で保存すると、excel2003以下でマクロを使用しようとすると 使えなくなるのですが、セキュリティ以外で何か原因てありますかね?
>>706 どんなマクロでどんな風に使えないんだ…
>>706 VBAの仕様も色々変わってきているから旧バージョンでのコードが新バージョンでは
使えないことがあると聞きます。
旧バージョンで作ったマクロコードが新バージョンでは問題あるコードを含んでいる
のでしょう。
もし可能ならマクロ編集でコードをコピーして何処が問題か聞いてみるといいでしょう。
709 :
694 :2012/12/19(水) 19:06:24.63
>>705 返信ありがとうございます。
私も移動とコピーの違いかなと思いましたが、どちらも参照元は同じ元のブック名が式に記載されていました。
移動とコピーに違いは、元のブックに残るか残らないかの違いしかありませんでした。
もう忘れてしまってもいいのですが、モヤモヤ感がどうも抜けきれません。
>>709 >数枚シートをコピーし終えた後で
1つのブックから2つ以上のシートを同時にコピーしてないか?
そのシート間の参照にはブック名は付かないけど。
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 ちょっち 【4 VBAでの回答の可否】 可 D:\data\hoge の中に複数のブックがあり、 その中からブック名の一部が合致したら D:\data\fuga に移動させたい。 たとえば、hoge内に以下の4つがあったとき、GR0119.xlsxだけをfugaに移動 GR1217.xlsx GR1218.xlsx GR0119.xlsx GR1219.xlsx 暇な人、マクロ書いて!
Sub test() Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") fso.MoveFile "D:\data\hoge\*0119.xlsx", "D:\data\fuga" Set fso = Nothing End Sub
713 :
711 :2012/12/19(水) 21:57:06.63
>>712 うぉぉおぉぉぉ、ありがとーーーー。
For Eachでできなかったから、ちょっと感動w
分からなくなったら、またお邪魔しますね♥
マクロで来月の数字を返すのを過去ログにありましたが、 1月なら01を返すやり方を教えてください。 過去ログにあったもの raigetsu = Month(DateAdd("m", 1, Date))
>>714 right("0"&replace("1月","月",""),2)
717 :
名無しさん@そうだ選挙にいこう :2012/12/19(水) 23:40:05.62
>>714 そもそも、日付部分は
日付値が入ってくるの?
文字値として入ってくるの?
raigetsu = Month(DateAdd("m", 1, Date)) これ見ればわかるだろ?ハゲ
質問しないといけない程度の知識だから それもわかってないんだろ
レベル低すぎwww おまいら頭悪すぎwww
715はネタだとしても、716はおバカ大賞決定!
728 :
714 :2012/12/20(木) 00:14:00.24
こんなのどーでしょう? raigetsu = Format(Month(DateAdd("m", 1, Date)), "0#")
質問もろくに読まず、トンチンカンな答えを出したヤツの言い訳がヒドすwww
731 :
名無しさん@そうだ選挙にいこう :2012/12/20(木) 00:17:26.55
716って「12」になるんじゃね?
まあ日付の質問じゃなくて 数値を文字表示にする質問だから
数値を文字表示にする質問で、 >そもそも、日付部分は >日付値が入ってくるの? >文字値として入ってくるの? なんて聞いてくる馬鹿もいる
735 :
716 :2012/12/20(木) 00:21:40.94
>>735 システムタイマーが1月になってないか?
マクロで来月の数字を返すことを聞いてるんだから、 システムタイマーが1月なら2月を返さないと・・・なんて書いてみるテスト
だからバカなんだよ
なんか、秋葉お宅が湧いてるな
>>741 その緑色になってるファイルってとこダブルクリックしてみ
>>741 ホームとか挿入とか名前が並んでいるあたりで
右クリック>リボンの最小化
チェックが外れれば元に戻る
>>741 自分は[Ctrl]+[F1]でリボンの表示・非表示を切り替えてるけど、めんどくさい
741です 皆さん、ありがとうm(__)m
試しに入れてみたけど、2013って遅くない?
めちゃくちゃ重いね
>>746 チャレンジャーだなあ(´・ω・`)
”おすすめピボットテーブル”だとか”おすすめグラフ”だとか
レビューを見た時点で使ってみる気なくした
スピードについてはまだ未完成品だし
2010に「見栄えがいいだけの余計な機能」を加えているようにしか
見えんから、そういうことがあっても不思議ないと思う
製品版では多少改善されているかもしれんけどね
A B C 1 10.2 8 1 2 6 9 3 3 10 6 4 11 10 5 14 16 6 100 20 A2で=LOOKUP(A1,B$1:B$6,C$1:C$6とすると6になります 10を返すにはどうしたらよいですか? つまり8以下なら1、8超9以下なら3、9超10以下なら6、10超11以下なら10という具合に求めたいです
>>754 Office2013だよぉ〜〜♥♥
コホ・・・ノリを間違えた・・・
757 :
749 :2012/12/21(金) 19:10:57.54
>>751 ありがとうございます
でもぴったり10のときは6を返したいのです
IFしかないんじゃないか?
>>757 B列の値に0.1たしておくとかしたらダメなん?
>>757 そういうときはB列が降順の表にしてINDEXとMATCHの照合の型-1を使うのが正解
かなり前にも同じようなこと書いたがアホどもには理解されなかった
なんだ?モーグに同じような質問あるぞ?
おかしな回答にお礼を言って閉じてるが
>>749 か?
まともな回答者もいるようだが
>>755 えー2013てそんななんだぁ!いいなぁー!
2003で十分
【1 OSの種類.】 Windows7 【2 Excelのバージョン】 Excel2010 【3 VBAが使えるか.】 いいえ 【4 VBAでの回答の可否】 可 EXCELのシート1にリストがあります。 例) チキンカレー ビーフカレー たぬきうどん きつねうどん カレーうどん シート2の指定のセルに、カレーと入力したらドロップダウンで チキンカレー ビーフカレー カレーライス と候補が出てクリックして指定することは出来ますか? 入力規則のドロップダウンを使用していたのですが、リストの量が多くて探すのが大変で… イメージ的には検索エンジンの感じなのですが、EXCELで出来ますか? よろしくお願いします。
できます tk、件数が多いと “びろ〜んリスト” は使いにくいよw
あ、 まぁーぃぃゃw
767 :
714 :2012/12/22(土) 10:23:23.29
>>729 ども。
714の続きなんですが、年号の4ケタを返すとき
来月が来年だったらどう書けばいいですか?
日付は、Dateを使います。
今日だったら raigetsu_yyyy = 2013 となり、
システム値を先月にしたら raigetsu_yyyy = 2012 を返したい。
>>767 俺はエスパーレベルが低いので質問の意味がよくわからんがこうか?
raigetsu = Format(DateAdd("m", 1, Date), "mm")
raigetsu_yyyy = Format(DateAdd("m", 1, Date), "yyyy")
769 :
714 :2012/12/22(土) 11:21:38.70
770 :
名無しさん@そうだ選挙にいこう :2012/12/22(土) 14:51:54.84
>>765 出来るんですね。ありがとうございます。
びろーんと出て使い辛いです。
どうしたら使いやすくなるのでしょうか?
やり方を教えていただけると助かります。
イメージ的には検索エンジンの感じ 中傷スギちゃんでワケワカメ
772 :
名無しさん@そうだ選挙にいこう :2012/12/22(土) 18:30:57.96
Excel作業疲れにコンビニ行ったんだけど 若い店員はサンタの帽子かぶってるのに 60才くらいのオバサンはなにもかぶっていませんでした。 コンビニ会社に「60才以上の店員はかぶらなくてもいい」という免除のルールみたいなのがあるのですか?
オーナーかオーナーの妻でしょう
>>771 ヤフーとかの検索窓に入力したら入力中に候補がビローンと下に出るでしょ。あれだと思う。
>>765 件数が多いとリストが伸びるから途中まで入力してリストを絞っていきたいのだと思う。
このスレの古くからの住人でExcel上級者まら クリスマスの夜は当然Excelで関数を組んだり集計をまとめたりしながら一晩中過ごす事が最高の幸せであると言う事で相違はないであろうか?
Excel中級の俺は勝ち組!
上級者の俺はVBAだぜ〜〜?
780 :
名無しさん@そうだ選挙にいこう :2012/12/23(日) 00:06:05.55
>>776 はい。ズバリそれです。
言葉足らずですみません。
もしわかる方いらっしゃったら教えて下さい。
よろしくお願いします。
>>780 そういうのはリストの多段連動化で十分だろ
つ 「入力規則 リスト 多段 連動」@Google
検索エンジン的なリアルタイムの候補連動は、VBA使えば出来なくはないけど
製作コストと利便性の向上が割に合わない
まあ客相手の商用ソフトやWebサービスなら、それだけのコスト掛けてでも僅かな利便性を向上させる価値もあるが
個人で使うなら、リストの多段連動化あたりがコストパフォーマンス的に落としどころだろ
まあ自分で作れるってなら割に合わない手間掛けてでも利便性を追求するのも勝手だがな
あとは、リストの多段化で妥協するか、自分でVBAの勉強してでもリアルタイム候補連動を実現したいかは
君が自由に判断してくれて結構だ
>>780 キーワードを入れるセルを固定にしていいなら関数と作業列で出来るけど
>>782 出来るんなら例でもいいから関数書けよ。回答にならんだろ。
784 :
名無しさん@そうだ選挙にいこう :2012/12/23(日) 16:05:58.57
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000,2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 @セルに入力したXとYの値を原点とした関数グラフを作成 (X=10、Y=5ならその値が原点となる関数グラフを作成) Aセルに入力したZの値をプラスした原点を中心の円を作成 (Zに値が0.1ならXが10.1&-10.1、Yが5.1&-5.1を通る円を作成) Bセルに入力したa(X座標)とb(Y座標)の値をそのグラフに点で表示 (aの値が10.05ならX座標の10.05、bの値が9.99ならY座標の9.99に点で表示) このような事はエクセルで可能でしょうか? 様は位置度の計算をグラフ化(目視化)したいんです
ようわからんけどバブルチャートみたいなもん?
>>784 「excel vba オートシェイプ」とかで検索してみたらどうでしょ
VBAが使えないなら厳しいかもしれんけど
数学ダメダメだから何言ってんのかわからん XとYの値だけじゃグラフなんて作れないんじゃないの?
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 塗りつぶしの色をショートカットで使えるようにできないでしょうか? 毎回セルを選択して塗りつぶしの色をクリックしています。
【4 VBAでの回答の可否】 可 すいません。 VBAは可です。
XPで2010とは珍しい組合せですな
>>784 @A
縦軸、横軸のオプションで設定
縦軸との交点、横軸との交点をいじるだけ。
B
単純に散布図
>>788 普通、「毎回セルを選択して塗りつぶしの色をクリックする」で問題無いと思うけど。。
セル選択と色指定のマウス移動がわずらわしいならCtrl+Yとか、、
特定の値のセル複数に着色にしたいということなら条件付き書式
>>789 セル選択して、そのセルを青で塗りますよーボタンなら超カンタンに出来る
>>793 数百あるファイルをデータベースと合っているか確認作業をしています。
なので条件式などは使えません。
Ctrl+Yは気づきませんでした。
ありがとうございます。
>>794 そのボタンはクリックする必要があるのでしょうか?
>>795 数百ある確認作業に塗りつぶしを使ってる時点でなんか間違ってる気がするがね。
マクロならボタンでうごかすのもショートカットに割り当てるのも同じなのでどっちでも出来る。
>>797 目視確認ですが
間違っている場所はその都度赤字で修正しています
俺が上司ならそういう作業してる奴は無能の烙印押すぞ おそらくデータベースはExcelデータじゃないんだろうが 1日かけてでもExcelシートに落として関数で比較しろ
その作業、お前がその作業をするであろう時間分の給与の1/10で請け負う!
すいません 今回は時間がないのでCtrl+Yで行きたいと思います。 関数は今後勉強したいと思います。
いやいや、関数ってそんな大層なもんじゃなくてifで比較するだけじゃん
俺はF4派だな
>>802 たいそうなもんじゃないだろうがIFだけじゃ無理だろw
>>781 ありがとうございます!
助かりました。
利便性は向上させたいのですがコスト面は難しいです…
教えて頂いた方を検索してチャレンジします。
ありがとうございましたm(__)m
他の助言くださった皆様もありがとうございましたm(__)m
8行目以降のデータを書き換えてる箇所がネックになっており、 会社のノーパソで処理すると12秒も掛かっています。 どこをイジると速くなりますか? j1 = Range("IV5").End(xlToLeft).Column End_B = Range("B65536").End(xlUp).Row StartTime = Time For i2 = 8 To End_B Cells(i2, j1 - 1).Value = Cells(i2, j1 - 1).Value + Cells(i2, j1 + 4).Value Cells(i2, j1 + 5).FormulaR1C1 = "=RC[-5]+RC[-2]-RC[-1]" Next i2 StopTime = Time StopTime = StopTime - StartTime MsgBox Second(StopTime)
>>806 セルに書込むと数式の再計算がされるからだろ
For文の前に、Application.Calculation = xlCalculationManual
後に、Application.Calculation = xlCalculationAutomatic
を入れて再計算を止めてみ
808 :
806 :2012/12/24(月) 20:53:25.93
>>806 自宅PCだと、Application(ry を入れる前が10秒、入れた後は0秒でした。
ありがろうございました。
809 :
806 :2012/12/24(月) 20:55:22.42
うはー、gdgd・・・www
>>807 自宅PCだと、Application(ry を入れる前が10秒、入れた後は0秒でした。
ありがとうございました。
やっぱりクリスマスもExcelだよな!新規ユーザ設定でカスタムボタン追加が熱いぜ!!w
▼━質問テンプレ (使ってみればなんでもできる) ━━━ 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 今A1からH8まで、8x8セルに計算結果のさまざまな数字が入っています C5には 80 という数字が入っているんですが 逆にJ1に 80 という数字を入れたらK1に C5 と返るような計算式ってできますか? 存在しない数字を入れてしまったらエラーのままでいいです また 今のところは重複した数字はありませんので重複は気にしないでいいんですが もしも今後重複が出てきた場合には なるべく左、なるべく上 の順で優位なものひとつを選びたいんですが そこまで考えると計算式では無理でしょうか? 例:該当セルがB4とB7とD1の三つの場合、なるべく左でB列、次になるべく上でB4を選ぶという具合 無理難題を言うようで恐悦ですがよろしくお願いします
>>811 MATCHとADDRESSとMIN関数でできる
=ADDRESS(LOOKUP(L2,B2:J10,A2:A10),LOOKUP(L2,B2:J10,B1:J1)) うーん、、なるべく左っていうのがやり方ワカラン・・・
814 :
名無しさん@そうだ選挙にいこう :2012/12/25(火) 11:40:47.50
>>811 ×恐悦:相手の好意などを、もったいなく思って喜ぶこと。多く、感謝の意を表すときに用いる語。
○恐縮:相手に迷惑をかけたり、相手の厚意を受けたりして申し訳なく思うこと。おそれいること。また、そのさま。
>>811 「なるべく左、なるべく上 の順」がどちらの意味にも解釈できるので、
A2とB1はどっちが優先か書いて
普通に考えたらB1よりA8優先
VBAが使えるならRange.Findで一発で答えが出せるのにめんどくさいね
818 :
811 :2012/12/25(火) 14:30:00.81
あ、ハイ
なるべく左 > なるべく上 です
>>816 さんのおっしゃる通りです
A列>H列がまず優先で、そのあとで同じ列なら1>8に優先なので
A2とB1であればA2のほうを優先したいです
>>811 さんすみません恐縮でした
不慣れな言葉を使ったので肩肘張っちゃったみたいです
あと
>>813 さんの式では#N/Aが返ってきましたが
L列や10行まで範囲を使って計算するのでしょうか?
ちょっとMATCHとADDRRESSとMINについて勉強してこようと思いまうs
819 :
名無しさん@そうだ選挙にいこう :2012/12/25(火) 19:59:24.21
飯島愛と飯島直子は どこが違いますか?
学生です。冬休みにExcel2010を極めていきたいと思うのですが、本当に初心者です。 初心者から始めても使いこなせるぐらい実力がつく、Excelの使い方を学べる勧めのサイトとかあったりしますか?
>>822 >>2 >・B 書籍や解説サイトの紹介以来はスレ以外。ここは技術的な質問のみで。
以来じゃなくて依頼じゃね?
>>823 >スレ以外
ってのも
>スレ違い
の間違いだろうね
っつーか、総合相談所なんだからそういう紹介もアリだけどな。
俺は知らないから紹介できないけどさ。
828 :
名無しさん@そうだ選挙にいこう :2012/12/27(木) 01:02:30.79
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2010 セルの色を分岐し、指定した色でなければメッセージを出すテスト版です。 同じ色(変数)なのに、なぜかメッセージが出てしまいます。 何がマズーですか? Sub test12_27() Dim RD RD = "10053375" i = 2 j = 6 Cells(i, j).Interior.Color = RD If Cells(i, j).Interior.Color <> RD Then MsgBox RD End If End Sub
現在マクロを勉強中ですが マクロの実行中にカーソルのコントロールや数値の手入力を行う事はできないのでしょうか? 実行後手入力は一切受け付けてくれないようですが、 たとえば集計作業は手入力で裏でマクロが動いていて探している集計結果が得られたらファイル書き出し等の アクションが起こるような感じのことができればと思っています。
830 :
829 :2012/12/27(木) 05:18:15.93
>>829 できれば入力作業を全く邪魔することなくバックグラウンドでさらりと自動的に別表が続々と書き出されていたら最高ですがw
>>828 RDが""で文字列として扱われているから。
Sub test12_27()
Dim i As Long
Dim j As Long
Dim RD
RD = 10053375
i = 2
j = 6
Cells(i, j).Interior.Color = RD
If Cells(i, j).Interior.Color <> RD Then
MsgBox RD
End If
End Sub
これならIFで同じと判断される。
>>822 勉強のための勉強はなかなか身につきません。
何かテーマを決めて、実現させるためには
どうしたらいいか、どんな方法があるか、の方法論を
ググって勉強する方が良いと思います。
まず、エクセル的思考方法を身に付けましょう。
>>829 無理だと思っておいてよいでしょう
具体的に何がやりたいのかわかりませんが、
別プロセスでExcelを起動してそちらで手入力作業(?)をしたらどうですか?
>>831 横レスするけど、実際に試したらそれでも駄目だったよ
RDに10053375 を指定しても、
なぜかCells(i, j).Interior.Color の値は
8421631 になってしまって、Ifのところで違うと判定される。
ちなみにExcel2000で試した。
>>829 想定している裏の処理ってのがどういう物かにもよるけど、
Worksheet_Changeイベントとかそういうので起動するマクロだったら
言ってるようなことに近いことはできるよ。
あくまで入力内容を監視して条件に合致したらマクロが起動するってだけだから、
処理が延々と続くようなものだとマクロから抜けれないけど。
手入力の内容を監視して
合致したらAの処理、違ったらBの処理みたいにマクロで分岐させて、
そのマクロがどっちも短時間で終わる処理であれば
次の監視状態になるでしょ。
>>834 じゃあ質問者と同じ2010で試してみて
837 :
834 :2012/12/27(木) 10:51:18.04
838 :
836 :2012/12/27(木) 10:54:39.82
831と別のものだけど試したらいけた
ちなみにこれがTRUEになるので、型の違いだろう
If Cells(i, j).Interior.Color <> RD * 1 Then
>>834 2010か2007で色の構造がやや変わったという話を聞いたことがある
一言で言うと古いExcelで使えない色かと
TRUEじゃねー、FALSEだ
>>828 Sub test12_27()
Dim RD As Long
RD = 10053375
i = 2
j = 6
Cells(i, j).Interior.Color = RD
If Cells(i, j).Interior.Color <> RD Then
MsgBox RD
End If
End Sub
842 :
834 :2012/12/27(木) 15:49:41.42
結局、
>>828 の件をまとめると、
>RD = "10053375"
の部分で数値を""で挟んだのがいけなかった訳だな。
RD = 10053375
としておけば問題なかった。
ただし、それで済むのはExcel2007以降の場合であって、
Excel2003以前の環境だとそもそも
RD = 10053375
という指定が出来ないから正しい結果が出ない。
となるわけか。
勉強になったよ。
843 :
834 :2012/12/27(木) 15:52:32.25
ああ、正確に言えば Cells(i, j).Interior.Colorに 10053375 が指定できないってことだな。
>>843 2003以前だと指定はできるけど
使用可能な色に丸められる
845 :
名無しさん@そうだ選挙にいこう :2012/12/27(木) 16:32:12.04
>>844 >使用可能な色に丸められる
それをさして指定できないという
>>845 10053375をパレットに割り当てておけば指定できるんじゃないの?
そもそも指定ってなんだよ、代入と言ってくれ 代入はできる(エラーにはならない)が イベントで変更される 一般的にはこの仕様を代入できないと言っていいが、 プログラミングの世界でそんなこと言うと面倒な事になる。
>>847 そんなことをいちいち書かなくてもみんな読み取れてるよ・・・
スマン、だったらいいんだ。
素直なひとだと言い争いに発展しない=スレが荒れない。
834は嵐だろ? 質問者がわざわざ2010と書いてるのに、2000で試してダメ出しとか。 もうね(ry
>>822 やりたいことに対してどのような関数があるのかというふうに調べたほうが覚えやすいと思う
関数なんかありすぎて全部は覚えらんね〜す
俺は20過ぎてから仕事ではじめてエクセル使ったけど、意外とテキトーにやってても覚えられるよ
効率よくなくていいなら、初心者向けのテキストというか、初めてのエクセルっぽい名前の本ならいっぱい売ってるけど
853 :
834 :2012/12/27(木) 21:33:34.00
>>851 嵐じゃないよ
てか、バージョン依存があるってことが分からなかったんだから
しょうがないじゃん
Interior.Color の値が8421631に変わったなら、RD = 8421631で試してから書けよ 小学生か?
すごーい!お兄ちゃんVBA使えるんだね^^
資格取ろうとしてるなら
>>852 の方法じゃ受からないけど使えるようになりたいなら
>>852 をオススメする
てゆーか、いまだにOffice2000を使ってるやつは社会から孤立したヒッキー(死語w)くんか、 割れしか使えない超ビンボーだな。
割れ厨は2003か、2013の体験版使ってんだろ
体験版が割れって・・・
861 :
828 :2012/12/27(木) 22:33:35.60
>>831 今までずっと " " で囲んでいました。
ただ、ちょっと不思議なことが・・・
Dim RD As String と宣言したら、RD = "10053375" でも同じと判定されます。
文字列でもおkなんですね・・・
>>861 基本的なところが違う
dim RD
だとvariant型(なんでも入る型)になる。
dim RD as variant と同じ
そして、
RD="1"
と文字列を代入すると、一時的にstring型に変更される
つまり、最初からstringで宣言するのと同じ
863 :
828 :2012/12/27(木) 22:52:00.27
>>862 Dim RD だけでは variant型になるのは知ってます。
だからDim RD As String と宣言しなくても、RD = "10053375" で
同じと判定されると思ってたわけです。
しかし、実際には違うと判断されます。
私の疑問がご理解いただけたでしょうか?
864 :
831 :2012/12/27(木) 22:58:48.81
>>863 ん?よくわからないしどうでもいい。
違うのは型が違うからで、
>>831 で答えが出てるでしょ?
831で一つの答えが出てるけど、861の新たな疑問はどうなの?
Dim RD As String と宣言 → RD = "10053375" で同じと判定 Dim RD As Long と宣言 → RD = 10053375 で同じと判定 どっちでもいいんじゃね?
俺なら色を設定するときはRGBで設定するな 10053375なんて何色なのかパッと見わからん
俺は数値かなぁ そんなプログラムは一回書いたらもう見直すこともないだろうし コードの中に何個もあるならredやらblueやらの変数に入れるかな。予約語かもしれんけど
色を設定するときは、色の設定 - ユーザー設定で実際の色を見ながら決め、 その値を得る方が多くね? 初めからRGBで数値化したら、それこそ何十回と繰り返し作業になるだろ? 赤、青、緑って原色しか使わないならRGBでもいいけどw
871 :
828 :2012/12/27(木) 23:56:51.05
>>864 リンク先を読みましたが、セルの値と変数は同じ扱いと思っていいですか?
「variant型の変数に文字列の数字を入れてもと文字列にはならず、数値となる」
という結論でよろしいでしょうか?
>>871 その結論は違う。
””で代入したら文字列になる。
比較するときに自動型変換が行われる
Stringは自動型変換がされるけどVariantやセルは型変換がされない
って感じ
873 :
829 :2012/12/28(金) 06:07:42.58
>>833 >>835 やはり処理中は無理のようですね。
どうもありがとうございました。
ただExcel上で動いているゲームを見てできるのかなと思ったりしましたが
あれはまた別物なのでしょうか?
>>873 あなたの最初の質問内容を実現させるのは簡単。
だけど処理中に動作させる必要はない。
初心者だから処理速度かかりすぎなマクロを組んでるんじゃね?
「探している集計結果が得られたら」がどういう動作なのかわからんけど。
普通はそういう状況で処理中に操作をする事を考えるんじゃなくて、砂時計見えないぐらいの
処理時間になるようにマクロを組むんだよ。
テキストファイルに書き出すのは体感出来ないぐらいの速さだから頻繁に書き出しても問題ない。
875 :
850 :2012/12/28(金) 08:02:57.33
>>873 ゲームしながら集計作業を手入力でしたいの?
何をしたいのか具体的に書けないの?
877 :
名無しさん@そうだ選挙にいこう :2012/12/28(金) 14:49:41.89
問題1 列の挿入方法として、正しくないものを1つ選びなさい。 A. 列番号を右クリックして、表示された一覧から[挿入]をクリックする。 B. 列を挿入したい場所にあるセルをクリックし、ワークシート左上角をクリックする。 C. 列を挿入したい場所にあるセルをクリックし、[セルの挿入]の[▼]ボタンをクリックして表示される画面で[列全体]をクリックする。 D. 未解答のままにする。 A〜Dでどれが正解ですかっ!?
やってみろよ
Dの存在が気になる 解答としては正しいとも解釈できるのに、選択すると矛盾が生じるから選択できないってことだよな
こんな問題なんのためにやるんだよ 意味ねえよ 列を挿入する方法なんて一つ知ってりゃ良いじゃん
882 :
名無しさん@そうだ選挙にいこう :2012/12/28(金) 20:28:34.73
問題2 チンチンの挿入方法として、正しくないものを1つ選びなさい。 A. 大きくなってから挿入する。 B. ゴムをつけてから挿入する。 C. 女の子が痛がるので挿す方向を間違えない。 D. マンコがぬれてから挿入する。 A〜Dでどれが正解ですかっ!?
883 :
名無しさん@そうだ選挙にいこう :2012/12/28(金) 20:40:14.81
>>877 すごいな、Bなんてほうほうがあるのか
使ってる人いるんだろうか
Bやっても挿入されんけど、左上角ってどこ?
ぼーっとしてた。Bではできないってことなのね。
123456789000(12桁の数字)を入力すると1.23457+E11と表示されてしまいます。 123456789000と表示させるには、どうすればいいですか?
>>887 右クリック
→セルの書式設定
→表示形式
→数値
→ok
マクロを手打ちすると、小文字なのに勝手に最初だけ大文字になるでそ? if a=b then If a = b Then しかーし、WhatとかMatchByteが大文字にならないんだけど何で? A=columns("a").find(what:=kensaku,matchbyte:=false).offset(0,1) A = Columns("a").Find(what:=kensaku, matchbyte:=False).Offset(0, 1)
890 :
名無しさん@そうだ選挙にいこう :2012/12/29(土) 11:33:15.71
【1 OSの種類 vista 】 【2 Excelのバージョン 2007 】 サイト上の数値データをダウンロードして開いて表示していたのですが、 急にC:\Users.......が見つかりません。名前ファイルが正しく入力 されたか確認してくださいというメッセージが出て表示できなくなりました。 アンインストールして再インストールしてもダメでした。 今までは問題なくダウンロードして表示できていたのですが、 解決方法を知っておられる方よろしくお願いします。
>>890 エクセルの問題じゃなくて、ダウンロードしたデータの方に問題があるんじゃねの?それ。
892 :
名無しさん@そうだ選挙にいこう :2012/12/29(土) 12:10:20.26
>>891 どんなデータでも同様のエラーが出てしまいます
>>890 エラーの内容を嫁
C:\Users.......が見つかりません。
ようするにファイルが見つからないんだよ。その見つからないファイルは何なのかどこにあるのか、どうやって開こうと
してるのかの説明がなければ他人には解決できん。
>>889 仕様に関する疑問・質問はメーカーサポートへどうぞ
895 :
889 :2012/12/29(土) 14:16:25.21
仕様ならしようがねえなあ・・・
仕様もないシャレはやめなしゃれ
Excelで関数やマクロ・VBAを書いて様々な統計分析をやる人の年収は大体いくらぐらいですか?
>>897 アンケートはご自身のブログ等でお願いしますね
統計分析を専門にやるひとはExcelでそんなことしません
Excel2003〜2010 新規でファイルを開くと同じウインドウ内に重なって表示されますが必ず新規ウインドウで立ち上がってくるように強制することは出来ないのでしょうか??! 今は毎回アプリを開く数分立ち上げて1個ずつオープンしてますが回数が多いともの凄く骨の折れる作業と化しています、、 宜しくお願い致します。
>>900 更にファイルサーバ経由だと開くのに数秒待たされます間違えて開いて開き直すのに数十秒
もう極悪です・・・・・・
>>900 「excel 新しいウィンドウで開く」でググってみるといいかも
>>901 間違えるのはあなたの問題であってExcelの問題ではありません
>>895 でもしゃれになってないよ。
「しようがない」を漢字で書くと、本当に「仕様がない」だから。
実は、昔は俺も知らなかったんだけど・・・・
数式の質問とかばっかのところ申し訳ないのですが、 エクセルファイルを印刷して紙の右端にパンチで穴を開けたいのですが、右詰めとかに簡単に出来る方法はないでしょうか? いまのところ、Aの列を空白にしてココのサイズ調整で右詰めっぽくしてますが
プリントアウトした時点で時間と資源の無駄遣いです。
プリントアウトした時点で老害
意味不明なプリント→作成者印→確認者印→承認者印→保管・・とかなんだろうなああ。
>>908 クッソワロタwwwwww
俺のところだorz
マジレス希望なんだが印刷無しで上長承認ってどうやってるの?
電子判子。 お値段次第で、ただ〜数百万まで。それ以上もあるかも。 まあ、どこかで割り切りは必要。
なるほどありがとう
>>889 普通は名前付き引数は大文字になったりはしない
LookInやMatchCaseなどが大文字になるのはたまたま同名の予約語(ちょっと違うかもしれないが)があるから
電子判子は法的に無力 だから紙に印刷して朱肉印を押すんだよ 馬鹿ども
>>914 なるほど、勉強になります!
いや〜
>>914 さんがいなければ取引先との契約書を電子印章ですますところでした!
本当に助かりました!!
内部決裁に法的有効も何もないとおもうが
>>906-907 現場ではまだまだ紙が必要…
と思ったけど、セブンイレブンとか大手のスーパーじゃふつーにバイトが端末で発注してるもんなぁ
インターフェイスしだいなんかね
>>908 あるあるwww
しかも、書類によっては署名だけでなく全部手書きじゃないとダメとかイミフ過ぎるよ
パソコンでタイプするのとどれだけ差があるのかと
>>916 あとで言った言わないがあるんだよなぁ
そのためにメールとかキッチリとっとかなきゃだし、社内SNSなんて夢のまた夢だぜぃ…
社員数が増えてきたから、今のシステムをどうにかしたほうがいいと思うんだけどねぇ
>>915 お前、アタマ、おかしいじゃねーの?
904から読むと、印刷しない話かと思うのだが。
契約書は、さすがに印刷しないトコはないと思うぞ。
取引先との契約書を電子印章ですますところでした!ってwwwww 社印を電子印章にする会社なんてあるのかよwwwww 腹イテーwwwwww
そろそろスレ違いなのでよそへいってらっしゃい
無職につっこむのは野暮ですな
印刷ネタで思い出したw プレビューのアイコンをクリックしたとき、 ブックによってはプレビュー画面が出たり 下のようなマークが出るときがあるんだけど 何が原因なんでしょうか? OSはXPと7、Excel2010です。 ┌─┐ | ○ | |ヾ └─┘ 印刷プレ ビューの表示
924 :
名無しさん@そうだ選挙にいこう :2012/12/31(月) 11:22:16.48
登山家や冒険家と呼ばれる人は ふだんどういう経路で収入を得て生活費(食べる、住む、など)をかせいでいるのでしょうか?
=SUM(スポンサー収入、著作権収入、商品開発協力、その他)
927 :
名無しさん@そうだ選挙にいこう :2012/12/31(月) 13:01:31.26
>>927 セルに名前をつける
A1にスポンサー収入、B1に著作権収入、C1商品開発協力、D1その他
そしてそれぞれの収入を入力し、SUMで出すとok
「夢に向かう姿カコイイ」って一生懸命貢いでくれる嫁の支えが一番大きい
930 :
名無しさん@そうだ選挙にいこう :2012/12/31(月) 22:22:15.22
【1 OSの種類 .】 Window7SP1 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 VBA関係なし 【4 VBAでの回答の可否】 VBA関係なし index関数なんですが、 A B C D E F 1 青森 徳島 沖縄 愛媛 和歌山 2 りんご 100 150 160 3 みかん 180 190 80 90 4 パイン 500 390 5 オレンジ 200 160 180 120 190 6 ぶどう 150 270 7 XXXX←ここに商品 8 YYYY←ここに県名 B2〜F6に「出荷」と名前を付けて、 =index(出荷,match(A7,A2:A5),match(A8,B1:F1))と間違って入力した場合、 (本来はmatch(A7,A2:A5)はmatch(A7,A2:A「6」)でないといけない) A7とA8を「ぶどう、和歌山」としてもきちんと270とでてしまうのですが、 Excelのバグでしょうか? これは放置してそのまま使っていい物なんでしょうか?
932 :
名無しさん@そうだ選挙にいこう :2012/12/31(月) 23:08:46.28
>>931 index(B2:F6 じゃなくて、
B2〜F6に名前を付けて
index(名前
です。
2007のバグだったらすまんが、
個人的には
>>930 さんの打ち間違い、見間違いと思うので
もう一度
>>930 を参考にして作りなおしてみては
>>933 2007だと何故か270と出てしまって、そのまま気付かず、
あとで計算式ミスに気づいたとき愕然としたんですが。
2010だと直ってるのかなぁ・・・
>>934 もちろん今は、match(A7,A2:A「6」)に直してます。
不特定多数にシートを配っちゃったんで、
仮にミス修正・アップデートしましたと告知したとしても、
間違った計算式のバージョン使ってる人がいると思うとガクブルなんです。
>>936 その5行か6行かのミス以前に、MATCHで文字列を検索するのに照合の種類で0を指定してないのが問題かと。
省略したら照合の種類は1になるけど知ってて省略してるんかな。
そもそも
>>930 のそのまま作ったらぶどう・和歌山だけじゃなく他の文字列入れてもまともな結果が出てこないけど。
つーかその程度の関数ならバグ疑う前に自分疑った方がいいよ。そんな簡単に見つかるようなバグなんて
ありえないと思っててもいいぐらいかと。
>>937 あ、matchの,0は最初から入れてました。
質問する時、さすがにオリジナルの計算式だと何のシートか特定されるんで
りんご、みかんに平打ちで直したんですが
その時、入れ忘れてたみたいです。
ちなみに元の計算式は(名前は変えますが)
=IF(OR(ISERROR(MATCH(FP3,$GT$113:$HH$113,0)),ISERROR(MATCH(FQ3,$GS$114:$GS$150,0))),0,INDEX(名前,MATCH(FQ3,$GS$114:$GS$150,0),MATCH(FP3,$GT$113:$HH$113,0)))
で、$GS$150ってのが、本来$GS$151まで入れないとダメだったって奴です。
ちなみに”名前”はGT114からHH151までの範囲で、「挿入>名前>指定」で指定する奴です。
何故か式は$GS$150までなのに、正常動作してindexで$HH$113と$GS$151の値を返してくれたので。
そんなこと言われてもわからんのでファイルまるごとアップロードするか式を可能な限り短縮してくれ
>>941 一応、$GS$151に直して問題点自体は解決済みなので、とりあえず次回以降気をつけます。
何で間違ってる式で正常動作したんだろう?ってのが「質問本体」だったので。
ちょっと恥ずかしいシートなので丸上げは勘弁。
あと、あけおめです。
まあバグ疑う前に数式の検証ぐらいはした方がいいわな。
944 :
名無しさん@そうだ選挙にいこう :2013/01/02(水) 11:02:29.13
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 点数により判定を行いたいのですが、下記のコードが標準モジュールでは動くのに、 イベントプロシージャにしようとすると動きません。Callでよんでもダメでした。 また、エクセルも不安定になりリボンの切り替えもできなくなりました。 尚シートは1枚だけです。改善できるのであればどうしたいいか…、 よろしくお願いします。 Private Sub Worksheet_Change(ByVal Target As Range) Application.ScreenUpdating = False Dim 第一賞名, 第二賞名As String Dim 第一点数, 第二点数,数 As Integer 第一賞名 = Range("W2") 第二賞名 = Range("X2") 第一点数 = Range("W1") 第二点数 = Range("X1") Range("T1:T100") = ClearContents For 数 = 1 To 100 If Cells(数, 19).Value >= 第二点数 Then Cells(数, 20).Value = 第二賞名 End If If Cells(数, 19).Value >= 第一点数 Then Cells(数, 20).Value = 第一賞名 End If Next Application.ScreenUpdating = True End Sub
>>944 Worksheet_Changeとはシート内のセルが変化した場合などに呼び出されるもの
Worksheet_Changeの中でセルを変化させるとそこでまたWorksheet_Changeが呼び出され、そしてまた・・・
と無限ループに陥っている
Private Sub Worksheet_Change(ByVal Target As Range)
cells(1,1)="処理中"
if cells(1,1)<>"処理中" then
//処理内容
end if
cells(1,1)=""
end Sub
こんな感じで処理中のフラグを持たせてやれば、一度だけの処理で済む
If Intersect(Target, Range("s1:s100")) Is Nothing Then Exit Sub Application.EnableEvents = False 処理 Application.EnableEvents = True
947 :
名無しさん@そうだ選挙にいこう :2013/01/02(水) 12:01:09.79
>>945 ありがとうございます。なんとなくですが、動かなくなったかがわかりました。
コードを下記のようにしてみたらエクセルは安定したのですが、まだ動きません。
よろしければお教えください。
Sub 賞名設定()
Application.ScreenUpdating = False
Dim 第一賞名, 第二賞名As String
Dim 第一点数, 第二点数, 児童数 As Integer
第一賞名 = Range("W2")
第二賞名 = Range("X2")
第一点数 = Range("W1")
第二点数 = Range("X1")
Range("T1:T100") = ClearContents
For 児童数 = 1 To 100
Cells(児童数, 1) = "処理中"
If Cells(児童数, 1) <> "処理中" Then
If Cells(児童数, 19).Value >= 第三点数 Then
Cells(児童数, 20).Value = 第三賞名
End If
If Cells(児童数, 19).Value >= 第二点数 Then
Cells(児童数, 20).Value = 第二賞名
End If
If Cells(児童数, 19).Value >= 第一点数 Then
Cells(児童数, 20).Value = 第一賞名
End If
Next
End If
Cells(児童数, 1) = ""
Application.ScreenUpdating = True
End Sub
>>947 最後
End If
Next
この二行が逆
だいたい こんなのVBAつかってやることじゃない。関数でやれ
950 :
名無しさん@そうだ選挙にいこう :2013/01/02(水) 12:27:54.71
Excelでセルを正方形にして 簡単なゲームを作りたいんだが 「キー入力」はVBAでどうコードで実現させますか?
directinputかsenkeyか 素直にvb.netかC#.netを使ったほうがいいよ
952 :
名無しさん@そうだ選挙にいこう :2013/01/02(水) 12:45:04.46
>>948 できました。感謝です。
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Application.EnableEvents = False
Dim syou1, syou2 String
Dim ten1, ten2, kazu As Integer
syou1 = Range("W2")
syou2 = Range("X2")
ten1 = Range("W1")
ten2 = Range("X1")
Range("T1:T100") = ClearContents
For kazu = 1 To 100
Cells(kazu, 1) = "処理中"
Next
For kazu = 1 To 100
Cells(kazu, 1) = ClearContents
If Cells(kazu, 1) <> "処理中" Then
If Cells(kazu, 19).Value >= ten2 Then
Cells(kazu, 20).Value = syou2
End If
If Cells(kazu, 19).Value >= ten1 Then
Cells(kazu, 20).Value = syou1
End If
Cells(kazu, 1) = ""
End If
Next
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
Application.EnableEvents = False ↑これだけでいいんだよ "処理中"とか意味ないから
>>952 初歩的過ぎて誰も指摘してないけど、変数の宣言部分もおかしいよ。
Dim a,b As Integer
だと
a はVariant型、b はInteger型になる
面倒でも
Dim a As Integer,b As Integer
って書かないと両方Integer型にはならない
もちろん、Variant型のまま使っても問題ないけど、
もっと大規模なソースコードだと
全体の見通しが悪くなるから
変数の型をきちんと宣言しておいたほうが
何か不具合が会ったときのデバッグ作業が楽になる。
Range("T1:T100") = ClearContents
956 :
名無しさん@そうだ選挙にいこう :2013/01/02(水) 14:21:18.34
>>954 ありがとうございます。
ご指摘のところを直したらスムーズに動くようになりました。
>>950 簡単なゲームを具体的に書いてくれ
何のキーをどんなふうに入力させたいんだ?
958 :
950 :2013/01/02(水) 22:47:00.99
>>957 例えばセルで壁(■)と通路(空欄)を作り、
自分は通路を↑↓←→(あるいは2、4、6、8)ボタンで自由に行き来でき、宝を探したりする。
モンスターが何匹かいて動き回っており、主人公を見つけると追いかけてくる。
武器はたとえは光線銃で、メータがあってそれが残ってるかぎりモンスターを攻撃できる。
みたいなゲーム。
なんでそれをエクセルでやろうと思ったんだろう
>>959 単純に、本当に何も知らないんだろう
たまたま目の前にあったvbaでプログラムを組みたくなる気持ちは、俺も結構分かる
>>959 Excel VBAで作るのが手っ取り早い気がするけど?
もっと簡単な手段を知ってるなら隠さず書いてくれればいいのに役に立たないヤツだな
>>962 手っ取り早くねぇだろOfficeは有料だしゲーム用のライブラリも何もないし
HSPとかJavaとかフリーのもんもいくらでもあるだろ
むしろゲームには一番不向きな言語であろう・・・
VBAでゲーム開発する時に困ること ・入出力が面倒 →画像、動画、音声の出力、キー入力。USBデバイスとかになると死ぬ ・重い →ゲームは一秒に60回の計算、描画がある。 ・バージョン差が激しい →色やセル幅など、見た目のズレが起こる可能性アリ VBAが使えるなら最初はHSPの方が絶対に楽。 今更HSPというのもナンだが。確かクラスが使えないんだっけか。 慣れてきたらC#.NETがオススメ。無料であり、ユーザーが多い。ライブラリもサンプルも死ぬほどある。
新年早々VBAの話題かよw
【1 OSの種類 .】 WindowXP 【2 Excelのバージョン 】 Excel2010 マクロのボタンをクリックして印刷のプレビュー画面を出したいのですが、 マクロの自動記録をやっても何も書かれていません。 どう書けばいいですか? それから、1ページ43行の文書フォーマットがあり、43行までなら拡大/縮小100%、 44〜48行なら横×1縦×2に収め、フッターに1/?ページを設定するには どう書けばいいですか?
968 :
967 :2013/01/03(木) 12:02:50.63
訂正です 【誤】 それから、1ページ43行の文書フォーマットがあり、43行までなら拡大/縮小100%、 44〜48行なら横×1縦×2に収め、フッターに1/?ページを設定するには どう書けばいいですか? 【正】 それから、1ページ43行の文書フォーマットがあり、43行までなら拡大/縮小100%、 44〜47行なら横×1縦×1に収め、48行以上なら拡大/縮小100%で2ページにまたがり、 フッターに1/?ページを設定するにはどう書けばいいですか? 最大70行程度なので、3ページになることはありません。
Sub test() Dim r As Long With ActiveSheet.UsedRange r = .Row + .Rows.Count - 1 With ActiveSheet.PageSetup Select Case r Case Is < 43 .Zoom = 100 .CenterFooter = "" Case Is < 47 .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = 1 .CenterFooter = "" Case Is >= 48 .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = 2 .CenterFooter = "&P/&N" End Select End With End With ActiveSheet.PrintPreview End Sub
修正 Sub test() Dim r As Long With ActiveSheet.UsedRange r = .Row + .Rows.Count - 1 End With With ActiveSheet.PageSetup Select Case r Case Is < 43 .Zoom = 100 .CenterFooter = "" Case Is < 47 .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = 1 .CenterFooter = "" Case Is >= 48 .Zoom = 100 .CenterFooter = "&P/&N" End Select End With ActiveSheet.PrintPreview End Sub
>>963-965 >>958 程度のもん作るなら別にExcelでも困らんだろ
HSPとかJavaとかC#とか知らない言語を一から覚えて作るほうがめんどくさい
Excelでテトリスつくったひとがいるんじゃなかったか それ見れば参考になるんじゃね
>>971 エクセルVBA知ってる前提ならな…
その前提がないんだからどれでもいいってことになる
975 :
967 :2013/01/03(木) 20:16:20.42
>>970 ありがとうございます。
うまくいかなかったので、分解してみました。
With ActiveSheet.UsedRange
r1 = .Row
r2 = .Rows.Count - 1
End With
r = r1 + r2
MsgBox r1=" & r1 & ", r2=" & r2: Exit Sub
r1が1、r2が69でした。
しかし、データがある行数は43で、44〜70は空白セルです。
♪なんでだろ〜ぉなんでだろ〜 なんでだなんでだろ〜〜〜
VBA知っててもキー入力なんて必要にならないからそういう聞き方になっても不思議じゃないと思うが。
>>974 んでキー入力はどうやってかけばいいの?
>>975 最終行の求め方は、いろいろあるので、調べてみてらどうですか
>>952 コードは動けばいいってもんじゃねーぞ
>>955 も指摘してるが ClearContentsは未宣言の変数として扱われてる
未宣言の変数の値はEmptyだからRange("T1:T100") = Emptyって書いてるのと結果的に同じでたまたまうまくいってるだけ
Range("T1:T100").ClearContentsってしないとな
エクセルの資格を取ろうかと思い質問なのですが、 自分のwindows 7のノートPCには最初からエクセルが入っていなくて、 父親の古いXPのノートPCにはエクセル2003が入っています。 なのでエクセルの学習をする時は父親のノートPCを借りようかと思いユーキャンでエクセル2003のゲーム感覚で学習できるソフト付き教材と本がセットのを数ヶ月前に購入しました。 学習ソフトは2003はXPにしか対応していなく、2007、2010はvistaと7だけしか対応していませんでした。 ですが自分のノートPCがあるのにわざわざ父親にノートPCをいちいち借りなきゃ学習できないのがめんどくさくてあまり勉強していませんでした。 ですが、最近エクセル2010を購入して自分のPCからでもエクセルを使えるようにしようかと考えています。 ユーキャンでエクセル2003の教材を買ってしまったのですが、2003の内容書でもエクセル2010で学習できるのでしょうか?
出来ないこともないけど2003〜2007で大分仕様が変わって 2010は2007を引き継いでるからな。分かりづらい部分もあるだろう。でも基本は覚えられるとおも。 ちなみに2010→2013でもかなりインターフェイスが変わってるぞ 今更2003の教材なんか使うより、その辺の1000円2000円の本買ってきて2010か2013覚えたほうがいい
hoge=Columns.Countとか斬新だな
983 :
967 :2013/01/03(木) 20:44:33.28
>>978 With ActiveSheet.UsedRange
r = .Row + .Rows.Count - 1
End With
これ↑を、こっち↓に変えてみました。
For j = 1 To ActiveSheet.UsedRange.Columns.Count
rx = ActiveSheet.Cells(ActiveSheet.Rows.Count, j).End(xlUp).Row
If rx > r Then
r = rx
End If
Next
みなさん、ありがとうございました。
Sub a() Dim x As Long For col = 1 To Columns.Count xnew = Cells(Rows.Count, col).End(xlUp).Row x = Application.WorksheetFunction.Max(x, xnew) Next MsgBox (x) End Sub オワテタ
>>981 2013ってもう発売されていたんですか?
通販サイトで教本は2010、2007あたりが多いみたいなので2010にしてみようかと思います!
教えていただきありがとうございました。
あ
乙
うめ
うめ
うめ
梅
うめるのはやくね?
うめ
うね
うべ
千
今だ!1000ゲットォォォォ!!  ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ (´´ ∧∧ (´⌒(´ ⊂(゚Д゚ )≡≡≡(´⌒;;;≡≡≡ ⊆⊂´ ̄ ⊂ソ (´⌒(´⌒;;  ̄ ̄ ̄ ズザーーーーーッ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。