Excel総合相談所 107

このエントリーをはてなブックマークに追加
1名無しさん@そうだ選挙にいこう
▼━質問テンプレ (必ず使ってね) ━━━
【1 OSの種類         .】 Windows**
【2 Excelのバージョン   】 Excel**
【3 VBAが使えるか    .】 はい・いいえ
【4 VBAでの回答の可否】 可・否

▼━関連スレ━━━━━━━━━━━━
Excel VBA 質問スレ Part26
http://toro.2ch.net/test/read.cgi/tech/1345363310/
VBAなんでも質問スレ
http://toro.2ch.net/test/read.cgi/tech/1342087380/
【質問不可】Excel総合相談所スレの雑談・議論スレ2
http://toro.2ch.net/test/read.cgi/bsoft/1151651536/
Access VBA 質問スレ Part1
http://toro.2ch.net/test/read.cgi/tech/1328536426/
VBプログラマ質問スレ(Ver.6.0 まで) part60
http://toro.2ch.net/test/read.cgi/tech/1351327234/

▼━前スレ━━━━━━━━━━━━━
Excel総合相談所 106
http://toro.2ch.net/test/read.cgi/bsoft/1352953949/
2名無しさん@そうだ選挙にいこう:2013/01/04(金) 07:42:36.86
▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━
・1 現行スレ内で既出の質問が無いか、ページ内検索をしよう。(Ctrl+F)
・2 図やコードを書く場合、TABや連続する半角スペースは無視されるので注意
・3 VBAコードを貼る場合は、部分的に伏せたり省略したりせずに全て貼りましょう。何レス使っても構いません。
・4 2回目以降の質問では名前欄に初回質問の番号を入れよう。
・5 回答内容でわからない部分があっても、すぐに聞き返さずにヘルプやGoogleなどで検索しましょう。
・6 バグ・動作上の不都合・仕様に関する質問などはマイクロソフトのサポートを受けましょう。
  ここは技術的な質問のみで。
・7 VBAはプログラム言語のVisualBasic(6以前)に近い処理が可能で Excelに関係ないことも出来ます。
  Excelの操作に関係ない部分は、スレ違いなのでここで聞かずにVB言語やAPI、COMについて自分で勉強し、
  どうしてもわからない部分はVBスレやAPIスレなどの該当スレで質問しましょう。
  但し向こうはプログラマのスレなので、構文規則などの最低限の事は覚えてから質問しましょう。
  ここみたいに丸投げはダメですよ。
・8 うまくいかなかったにしても自分でやってみたこと(組んだ数式やコード)は書きましょう。
  例えエラーになる式やコードでも、何をやりたいのかを的確に把握する手がかりになります。
  その上で、どううまくいかないのかを具体的に書きましょう。
  エラーが出るなら、何処でどういうエラーが出るのか、
  想定外の結果が出るなら、条件と想定上の結果、実際の結果などを詳しく書いてください。
・9 マルチはダメ。一度マルチしたら、謝っても他のスレの質問を取り下げても回答は得られないと思ってください。
・A テキストボックス(エディトボックス)、コンボボックス(ドロップダウンリスト)、リストボックス、コマンドボタン、
  チェックボックス、オプションボタン(ラジオボタン)、スピンボタン、スクロールバー、等の質問をするときは、
  ユーザーフォーム、コントロールオブジェクト、フォームオブジェクトのどれなのかを必ず書くこと。
・B 書籍や解説サイトの紹介以来はスレ以外。ここは技術的な質問のみで。
3名無しさん@そうだ選挙にいこう:2013/01/04(金) 07:43:00.68
★ルールを無視すると…
 >>1-2あたりのルールに従うか否かは自由だけど、従わないと以下のような不利益があるよ

 ★1.マルチをしてしまったら…
 A.謝っても他での質問を取り下げても、以後その質問に対する回答は付かない物と思ってください。
   それが嫌なら初めからマルチなんてしないように。>>2にマルチ禁止と書いてあり、
   マルチの意味が分からなければ検索すれば出てくるので、「知らなかった」は通用しません。

 ★2.>>1★4に従わず、必要な情報を出さないと…
 A.自分の使用しているバージョンで使えない機能を答えられたり、VBA使えないとか使いたくないと書かないと
   VBAでの解決OKで自分でコード書けるものと勝手に解釈されて、「VBAで出来るから自分でコード書いて」程度の
   適当な回答を返されたりします。また、ここではVBAコード書けない人の丸投げ依頼を許可してますが
   これはきちんとルールに従って質問、依頼した人のみの特権です。

 ★3.情報・条件を後出しすると…
 A.後から出された情報は意図的に無視されたり、質問自体を放置されたりします。
   >>1★4の必須情報はもちろんのこと、要望や条件、既に試したことなどは、
   長文になってもいいので詳細かつ明確かつ具体的に書きましょう。


★VBAについて
 VBAとは、『Visual Basic for Application』の略で
  Application
  ├Workbooks
  |└Workbook
  |  ├Worksheets
  |  |└Worksheet
 というApplication以下のオブジェクトを、VB言語で操作するものを指します。
 例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、
 セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。
4名無しさん@そうだ選挙にいこう:2013/01/04(金) 07:43:21.62
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)

 ▼環境・書式
  ・ 列数を256列以上、行数を65'536行以上に増やす (Excel2007以降では16'384列、1'048'579行扱える)
  ・ Excel2003以前で条件付き書式を3つ以上設定する (文字色だけなら、入力規則でも3つ設定可能。それ以外はVBA)
  ・ 行の高さを0.25きざみ以下の単位で指定する
  ・ セル内の文字を○で囲む、一部のみ2段にする (オートシェイプ、オブジェクト)
  ・ オートフィルタで英字の大小文字を区別する (小文字 → 半角、大文字 → 全角、と使い分ける)
  ・ 祝日を判断する (作業セルに祝日を列挙、VBA)
  ・ 同一列内でセル(行)ごとに列幅を変える、同一行内でセル(列)ごとに列高を変える (セルの結合)
  ・ ヘッダー・フッターのページ番号の開始番号任意指定、ページ番号演算、同シート内で違ったものを指定など
  ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する
  ・ 罫線幅の自由指定
  ・ 表示形式で「10/ 1」といった書式を指定し、日付が一桁の場合のみ日付の前にスペースを入れる (TEXT関数、VBA)
  ・ 書式設定の「折り返して全体を表示する」と「縮小して全体を表示する」を同時に使う (折り返しを有効にして、手動で文字サイズを調整)

 ▼操作
  ・ ファイラーの右クリックメニューからの新規作成で、Excelで設定したシート数のブックを作る (任意のシート数のテンプレートを作成)
  ・ 複数シートを選択して入力規則やシートの保護を設定する (VBA)
  ・ オートコンプリート機能を、別列や離れたセルで動作させる (VBA)
  ・ 選択範囲から一部を除く、Ctrlを押しながらの複数選択で一部を取り消す (VBA)
  ・ 優先キーを3つ以上指定しての並べ替え (優先度の低い方から順に並べ替える)
  ・ 1セルを分割 (分割したいセル以外を結合)
5名無しさん@そうだ選挙にいこう:2013/01/04(金) 07:43:41.35
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)

 ▼数式・関数
  ・ 表示形式以外の書式の取得設定、書式情報を条件とする数式 (ユーザー定義関数)
  ・ 関数式でセルの選択状態を取得する (VBA)
  ・ セルの値でパスを補完して、開いてないブックのセルを参照する (VBA)
  ・ 入力したセルに結果を返す (VBA)
  ・ 範囲を引数にしての文字列連結 (ユーザー定義関数)
  ・ 値の書き換え、値の保持 (VBA)
  ・ 複数の結果を抽出、不定な数の結果を返す (VBA、結果の最大数が解っていれば最大数以上の式を論理式で組む)
  ・ 空白のセルの部分を上詰め、左詰めなどで表示する (作業セルを使って別セルに詰めて表示なら可能、それ以外はVBA)
  ・ VLOOKUP,HLOOKUP,MATCH等の関数で、検索語を全半角両方にマッチさせる (ユーザー定義関数)

 ▼VBA
  ・ ExecuteExcel4Macroの参照で空セルと0値を区別する
  ・ セルの値や変数値で直接変数名を指定する (配列、コレクション)
  ・ VBのコントロール配列と同じような操作をしたい
   (イベント以外ならコントロール名を「同名+連番」にしてControls(名前 & インデックス)で処理、イベントはクラスでWithEvents)

 ▼ユーザーフォーム
  ・ フォーム上から変更したプロパティ値の保持 (シートや外部ファイルに書き出して、次回読み込む)

 ▼グラフ
  ・ 棒グラフでひとつだけ突出したデータがあった場合に波線を入れて位置を合わせる
   (オートシェイプなどで見た目だけそうなるように弄る、別アプリでグラフを作り、オブジェクトとして挿入)
  ┌┐
  〜〜
  ||
6名無しさん@そうだ選挙にいこう:2013/01/04(金) 07:44:10.40
上記 「Excelで出来ないこと、仕様上の制限」 は、一般的に出来ないとされていること、出来ないと思われるものです。
間違いがある可能性もあるので、上記に挙がってるもので「コレはこうすれば出来るよ」というものがあったらご指摘ください。
Excel2010についても未確認な項目が多いので変更点が有ればご指摘下さい。

また、ここに書かれてないことでも、Excelで出来ないことはたくさんあります。
ここに書かれてないからといって必ず出来るはずだなんて思わないように。

>▼環境・書式
> ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する
補足
2007以降ではページレイアウトビューの表示時に限り、幅・高さともcm単位で表示され、
指定も同じくcm単位でできる。
ただし大元がインチ系なのでなかなかピタリの値は出ない。1cm→0.98cmのように
近い値に勝手に丸められる。
7名無しさん@そうだ選挙にいこう:2013/01/04(金) 08:34:10.64
>>1
いい加減テンプレの誤字を直せよカス
8名無しさん@そうだ選挙にいこう:2013/01/04(金) 14:38:03.25
【1 OSの種類         .】 Windows7 home premium service pack1
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

お願いします。 今度、職場でルールや一覧表を書いたポケット版ガイドブックを作ることになりました。
A4で横書き。 それをさらに横半分にし、更にそれを1/4に折り、  合計1/8分割で裏表16ページ分を
作りたいのですが、
折ってもずれないようにするにはどういう工夫が必要でしょうか。(うまく説明できなくてすみません。)

1234
5678  こんなかんじです。
上半分下半分のページが綺麗に折れるよう、そして、隣同士の数字のページが綺麗に折れるようにしたいのです。

よろしくお願いします。
9名無しさん@そうだ選挙にいこう:2013/01/04(金) 18:01:02.35
>>8
この質問はExcelとは関係がないと思うけど、余白はプリンタ毎に微妙に違うから、
好みの状態になるまで何度も微調整しながら印刷を繰り返すしかないんじゃない?
そういうことじゃなくて?
10名無しさん@そうだ選挙にいこう:2013/01/04(金) 18:35:52.66
>>7
プリンタによるけど、割付印刷で設定できませんか
11名無しさん@そうだ選挙にいこう:2013/01/04(金) 18:39:35.85
>>8
ワードに貼り付ける
Excelは画面上の表示と印刷でだいぶズレるから、何度も印刷するにしろWordとかに貼り付けて作業したほうが効率いいと思われ
Excelさんはホント印刷はオマケ機能だよね…
12名無しさん@そうだ選挙にいこう:2013/01/04(金) 19:50:35.06
7です。ありがとうございました。

エクセルで作ったのをワードに移す時、シートの罫線が入ってしまうのですが、これってどうやって消すのですか?
13名無しさん@そうだ選挙にいこう:2013/01/05(土) 06:30:00.45
>>1
おつ
14名無しさん@そうだ選挙にいこう:2013/01/05(土) 15:13:42.01
質問お願いします。
列で10列ごとで計算したいと考えて居ます。
表がこれなんですが、表を指定してA1+A11みたいにやる方法以外に計算することは可能でしょうか。
ttp://www.dotup.org/uploda/www.dotup.org3811969.xls.html
15名無しさん@そうだ選挙にいこう:2013/01/05(土) 15:26:26.63
>>14
表の作り方が不適切なんだけど、そこを直す気はあるかい?

単純な合計とかの計算なのに式を組むのが面倒って場合の要因の大半は
表作り、データ作りの基礎を理解しておらず、自己流で不適切な表を作っていることにあるんだよね

不適切な表のまま、無駄に冗長な式で計算するのをお望みか?
それとも表を適切な状態に作り換えて、簡単に合計を出す方が良いのか?
16名無しさん@そうだ選挙にいこう:2013/01/05(土) 15:35:47.73
>>15
確かにそうですね。
でもなぜか横方式なんです。うちの会社。
17名無しさん@そうだ選挙にいこう:2013/01/05(土) 15:42:02.79
すいません。もし直すとすればどう表を直せばいいか教えて下さい。
18名無しさん@そうだ選挙にいこう:2013/01/05(土) 15:52:40.52
SUMIF()がつかえれば
=SUMIF($B$2:$U$2,V$2,$B3:$U3)
で「服」の合計が出る
19名無しさん@そうだ選挙にいこう:2013/01/05(土) 16:00:38.19
間違えたので訂正
=SUMIF($B$2:$U$2,V$2,B3:U3)
20名無しさん@そうだ選挙にいこう:2013/01/05(土) 16:04:56.86
>>19
>>18でいいんじゃないか?
21名無しさん@そうだ選挙にいこう:2013/01/05(土) 16:07:55.18
そうか いずれにしても他の合計出すときはちょっと修正がいるな
22名無しさん@そうだ選挙にいこう:2013/01/05(土) 16:08:30.32
>>17 縦方式
23名無しさん@そうだ選挙にいこう:2013/01/05(土) 16:10:40.00
>>21
>>18なら修正不要じゃない?
24名無しさん@そうだ選挙にいこう:2013/01/05(土) 16:13:33.12
>>17
正規化するのが一番だが、修正コストと改変の少なさと
計算の簡素化を両立するなら、1シートで一月(ひとつき)分にしな

で、1月、2月、、、12月、合計、ってシート作って
合計シートのB3に、
=SUM('1月:12月'!B3)
って入れれば、串刺し計算といってシートを跨いでの合計が出るよ
25名無しさん@そうだ選挙にいこう:2013/01/05(土) 16:23:12.30
【1 OSの種類         .】 Windows7 home
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

ttp://i.imgur.com/crJsg.png

B2:C6のような表があり、これをE2:F3のように抽出したいのですが、なんかいい方法はないでしょうか?
26名無しさん@そうだ選挙にいこう:2013/01/05(土) 16:27:42.85
ピボットテーブル
27名無しさん@そうだ選挙にいこう:2013/01/05(土) 16:41:21.06
>>24 ないわー
28名無しさん@そうだ選挙にいこう:2013/01/05(土) 16:42:26.54
誤爆?
29名無しさん@そうだ選挙にいこう:2013/01/05(土) 18:36:32.87
>>25 名前でフィルタじゃだめなのか?
E2:F3のようにすると加工しにくくて後々困ると思うが
30名無しさん@そうだ選挙にいこう:2013/01/05(土) 19:47:28.78
変換したいって話ではなく、抽出したいって話だから
元の表は弄らないのだろうから、後々困るとかいう話には繋がらないと思うが?
31名無しさん@そうだ選挙にいこう:2013/01/05(土) 19:48:43.63
俺がやってやる、まってろ
32名無しさん@そうだ選挙にいこう:2013/01/05(土) 20:02:35.75
やめや!VBAつかえ!!!!
3325:2013/01/05(土) 23:41:57.98
>>31
何時間かかってるんだよ!
早くしろ!
34名無しさん@そうだ選挙にいこう:2013/01/05(土) 23:43:43.87
>>33
もう諦めたんや
VBA使ってくれや
35名無しさん@そうだ選挙にいこう:2013/01/05(土) 23:44:18.09
思いついたのはVLOOKUPと配列数式やな
あとは頑張れ…
36名無しさん@そうだ選挙にいこう:2013/01/06(日) 00:09:28.63
面白いなこのスレ
37名無しさん@そうだ選挙にいこう:2013/01/06(日) 00:13:11.72
>>36
それはVBAのスレと違ってコテハンのおっさんがいないからだよ
38名無しさん@そうだ選挙にいこう:2013/01/06(日) 00:58:10.95
複乳 vs VBA厨 糞コテの醜い争い

複乳の回答:回りくどいが初心者には分かりやすく感謝のレスも多かった人気者
VBA厨の回答:凝ったコードで初心者には理解し難く感謝のレスはあまり無かった厄介者
39名無しさん@そうだ選挙にいこう:2013/01/06(日) 02:14:38.75
>>33
作業用シート用意すればいけるんじゃね?
40名無しさん@そうだ選挙にいこう:2013/01/06(日) 05:42:14.16
>>38
その2者は、2者同士の仲は良かったとは思わないが回りから見てるとお互い上手く補完しあえてたように見えたけど?
ほとんど常時常駐体制で簡単な案件に颯爽と回答付ける複乳と、複乳では対応出来ない難しい案件にも対応できるVBA厨って具合に。
スキルレベルで言えばVBA厨の方が遙かに上だったようだけど、あまり出てこない割に簡単な案件にもいちいち蘊蓄入れてウザいからVBA厨だけ居れば万事OKってこともなく、両者が居てこそスムーズに進むって感じだったな。
41名無しさん@そうだ選挙にいこう:2013/01/06(日) 08:55:18.07
詳しすぎる回答者ってのは他回答者から嫉妬やヤッカミを買うからね
コテ名乗って回答するなら弄れるくらいアフォの方が人気者になれる
ここでの人気者だの厄介者だのというのは、解決したらもう来ない質問者視点ではなく
常駐している他回答者視点の話だからな
質問者に有り難がられても、他回答者に嫌われたらボロクソに言われる
42名無しさん@そうだ選挙にいこう:2013/01/06(日) 11:07:09.63
パッケージ版を1つ購入すれば1台のPC以外にもインストールできたりするのでしょうか?
43名無しさん@そうだ選挙にいこう:2013/01/06(日) 11:40:03.59
>>42
パッケージでもDSP版とかOEM版とかはあかんで。
44名無しさん@そうだ選挙にいこう:2013/01/06(日) 12:54:19.67
1台の他に外出用とか同時に一台目と同時に使用しないことで
2台まで桶だべ。
45名無しさん@そうだ選挙にいこう:2013/01/06(日) 14:01:49.48
ahoka
46名無しさん@そうだ選挙にいこう:2013/01/07(月) 05:53:49.78
>>45
誰が?
47名無しさん@そうだ選挙にいこう:2013/01/07(月) 14:47:20.51
俺だ
48名無しさん@そうだ選挙にいこう:2013/01/07(月) 15:06:28.41
いや、俺のことだろ
49名無しさん@そうだ選挙にいこう:2013/01/09(水) 13:47:53.64
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel 2010
【3 VBAが使えるか    .】 勉強中

【4 VBAでの回答の可否】 否
例えば2012年12月分費用のブックを呼び出すのに
sub test
MsgBox (Workbooks("2012年12月分費用").Worksheets("2012年12月分費用") _
.Value)
End Sub
で2012年12月分費用がbookに開いてなければそこから呼び出すことは不可能なんでしょうか
50名無しさん@そうだ選挙にいこう:2013/01/09(水) 14:18:23.18
>>49
MsgBox (ExecuteExcel4Macro("'[2012年12月分費用]2012年12月分費用'!R1C1")

VBAでの回答「否」ってどういうことだってばよ
51名無しさん@そうだ選挙にいこう:2013/01/09(水) 14:20:13.75
間違えた

MsgBox (ExecuteExcel4Macro("'[2012年12月分費用.xlsx]2012年12月分費用'!R1C1")

かな
52名無しさん@そうだ選挙にいこう:2013/01/09(水) 20:47:23.05
VBA初心者ですが
ついにVBAの基本的な構文を一通りマスターして思うようにコードを書けるようになり早速数百の命令文を
書き上げてこれで作業を自動化してゆっくり寝れるかと思いましたが
書いている間に行き着いたのはコードだけもっと桁外れな作業が出来ると言う今までより柔軟で遙かに自由な全く未知の世界だったのです・・・・。
結局更に合理化するためのアイデアを色々と1から積んでいかないといけないのは間違いないと思われるので
やはり寝る暇は無さそうですが一体どうすれば良いのでしょうか?
53名無しさん@そうだ選挙にいこう:2013/01/09(水) 21:10:25.09
Excel2003のVBAで
Dim atai as variant
atai=Range("A1:E60000").value
として大量データを格納する。このatai配列の大量データを、タブ区切りテキストファイルとして保存したい。
いま思い付く方法は、

open textFile for Append as #1 '書き込み用テキストファイル
for r=1 to 60000
  buf=r '連番を振っておく
  for c=1 to 5
    buf=buf & chr(9) & atai(r,c) 'タブ文字で区切る
  next c
  Print #1, buf
next r
close #1

というループくらい。ただ、タブ文字を結合するやり方がスマートじゃない気がするし、大量データだと結構時間がかかる。
もう少し効率のいいやり方はないかな?
54名無しさん@そうだ選挙にいこう:2013/01/09(水) 21:26:36.35
それ普通にシートタブ区切りテキストで書き出せば済むんじゃないの速度は知らんけど。
あとテキストストリーム保存だったら、バッファに全部まとめといて最後に1回writeすればいいんでないの。
55名無しさん@そうだ選挙にいこう:2013/01/09(水) 23:48:00.96
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel 2010

複数のブックがあり、お互いにリンクが張られています。
これらをマクロで開くとき、「更新しますか?」のメッセージを出さず、
強制的に更新させるにはどうすればいいですか?

また、終了時には元に戻したいです。


Workbooks.Open FileName:="C:\Book1.xls", UpdateLinks:=3
Workbooks.Open FileName:="C:\Book2.xls", UpdateLinks:=3
Workbooks.Open FileName:="C:\Book3.xls", UpdateLinks:=3
みたいに書いてみたものの、うまく更新されません・・・
56名無しさん@そうだ選挙にいこう:2013/01/10(木) 05:10:01.74
最近目を閉じてもExcelのCELLがはっきりと見える事があるのですが
ここにいる人たちもそうなのでしょうか?
57名無しさん@そうだ選挙にいこう:2013/01/10(木) 22:53:56.32
>>56
眼科に行きなさい
58名無しさん@そうだ選挙にいこう:2013/01/11(金) 00:32:27.89
うっ
59名無しさん@そうだ選挙にいこう:2013/01/11(金) 23:29:52.71
=SUMPRODUCT(範囲A, 範囲B)
で計算するときに、Aは先頭から、Bは最後からの組み合わせで計算させたいのですが、
良いテクニックなどはありますか?
60名無しさん@そうだ選挙にいこう:2013/01/12(土) 14:49:13.09
Excel初心者ですが
多数の表を集計している時に
1つのセルの中に複数の要素が入れられたら便利だのになあと思う時があるのですが状態にできれば
61名無しさん@そうだ選挙にいこう:2013/01/12(土) 14:52:00.50
>>60
誤爆スマソ・;・
Excel初心者ですが
多数の表を集計している時に
1つのセルの中に複数の要素が入れられたら便利だのになあと思う時があるのですが、
たとえばある箇所だけ1セルに1つの表が凝縮されて入っているみたいな・・・
1セルに複数の要素を収納する方法はあるのでしょうか?
62名無しさん@そうだ選挙にいこう:2013/01/12(土) 15:02:44.50
どういう妄想してるのか知らんが
Excelでそんなことするメリットはない
63名無しさん@そうだ選挙にいこう:2013/01/12(土) 15:05:11.51
>>61
イメージ通りになるかどうかはわからんが
セルにハイパーリンクを仕掛けて
セルをクリックしたら別のシートにある表を表示する
…といった程度ならできる
64名無しさん@そうだ選挙にいこう:2013/01/12(土) 15:16:42.73
>>61
>>62
たとえば千個の表がありその結果をまとめる集計データを新しいbookで作るとします。
新しいbookには千個の表から抽出した結果のリストができますがその結果から千個の表のうちの30個を見たいとなるとその
30の表をを探して開いて分析するとなると結構な時間と手間がかかります。
千個の表を1ブックにまとめてリンクを張ったりしますとその作業だけで何日もかかりますし作ったリンクのほとんどは使われません。
そこでリンクではなくいっその事1セルの中に丸々表がはいていればすぐ見れて良いのになあと思いましたが・・w
65名無しさん@そうだ選挙にいこう:2013/01/12(土) 15:22:40.94
>>64
現状再分析する30程度の表を開いて表を行ったり来たりしているうちに何をやっているのか全くわけがわからなくなります。
自分の経験不足が問題なのでしょうが。(笑)

>>63
ありがとうございます。
66名無しさん@そうだ選挙にいこう:2013/01/12(土) 15:24:50.15
ピボットテーブルで
6764:2013/01/12(土) 15:36:21.11
>>66
やはりそれですか・・・何度か試しましたが思うように使いこなせませんでした。。またチャレンジしてみます。
ありがとうございます。
68名無しさん@そうだ選挙にいこう:2013/01/12(土) 19:52:11.88
俺もピポットテーブル使いこなせん
なんかいい例が載ってるサイト無いの?
俺が見たところは何処も非現実的な要素でしか構成されてないのでまったく参考にならん
てか、ピポットテーブル使ってると要素が多すぎて何を表現したかったのか理解できなくなるタスケテ
69名無しさん@そうだ選挙にいこう:2013/01/12(土) 19:58:06.48
>>68
必要な要素に絞って抜出し集計できるのがピボットテーブルの強みだと思うぞ
だから要素が多すぎて云々と言うのは理解できない

単に元のテーブルが整理されてないからのように思える
70名無しさん@そうだ選挙にいこう:2013/01/12(土) 20:28:08.50
ピボットテーブル使いこなすにはどうしたらいいのって聞く奴は多いけど
ピボットテーブル使いこなすにはピボットテーブルの使い方を勉強するのではなく
データベースの扱い方を学ぶべきなんだよね
71名無しさん@そうだ選挙にいこう:2013/01/12(土) 21:01:25.45
サンプルのデータファイルくれればピボットのサンプルつくるよ
72名無しさん@そうだ選挙にいこう:2013/01/12(土) 21:21:21.98
>>64
そういう考え方のソフトはあるんですよ。
JMPとか
73名無しさん@そうだ選挙にいこう:2013/01/12(土) 21:22:29.88
途中で終わっちゃった、
JMPとかQlikViewとかTableautとか

扱い方はちょっと異なるけど。
その範囲を選べば、それだけが対象として扱える。
74名無しさん@そうだ選挙にいこう:2013/01/12(土) 21:28:32.23
日付 店 商品名 分類 価格 数量   で毎日家計簿つけとけ

ある程度貯まったらピボットテーブル使ってみ?
便利さを実感できるから
75名無しさん@そうだ選挙にいこう:2013/01/12(土) 22:51:54.15
ピポットテーブルを使いこなせないっていう意味がわかんね
それってピポットテーブルを使う必要性がないってことじゃないの?
76名無しさん@そうだ選挙にいこう:2013/01/13(日) 06:35:05.63
>>70
そういうとを言ってるんじゃないと思うぞ。

>>68
自分の仕事で必要なデータに出会えば
すぐに理解できるよ。
いまのところは基本だけ覚えておけば大丈夫だと思う。
7776:2013/01/13(日) 06:36:54.76
間違ったー
>>69
そういうとを言ってるんじゃないと思うぞ。

だった。
78名無しさん@そうだ選挙にいこう:2013/01/13(日) 17:14:03.44
「そういうと」は間違いじゃなかったのか
79名無しさん@そうだ選挙にいこう:2013/01/13(日) 17:34:07.42
>>76=77
「自分の仕事で必要なデータ」が誰にでもすぐ
エクセルで処理しやすい形で提供される可能性のほうが
実際の職場では、はるかに小さいと思いますです

俺は >>70 さんと >>74 さんを支持したいな
8055:2013/01/13(日) 19:30:00.06
55ですが・・・
81名無しさん@そうだ選挙にいこう:2013/01/13(日) 20:12:51.40
>>80
Application.DisplayAlerts = False
で、できなかったっけ?
82名無しさん@そうだ選挙にいこう:2013/01/13(日) 21:23:38.35
データを流しこむ用のシートがあって、そこから集計用のシートに必要な部分(品名とか個数とか)をピックアップして集計を行い、ランキング化しております。
データは300行くらいあるのですが、中には不要な項目(大分類、中分類など)もあり不要な項目は除外するように設定したいです。

現在は
=IF(
OR(D19=0,C19="",データ!A19=" スナック",データ!A19=" 丼物"),
"",
データ!B19)
な感じでやってますが、データに不要な項目が増えてきて数式に追加するのがダルくなってきました。
何より、数式が美しくないのがよろしくないです。

別途、除外リストを作り、そのリストに記載されているものはカウントしないようにしたいのですが、なんかいい方法はないでしょうか?
83名無しさん@そうだ選挙にいこう:2013/01/13(日) 21:29:50.64
ピボットテ(ry
84名無しさん@そうだ選挙にいこう:2013/01/13(日) 21:43:44.96
分析データで0〜1000までの破損強度を計るテストを500回づつ2つの異なる条件で行い
条件1と条件2の差違を割りだすに使える関数はありますでしょうか?
データーは
90
88
102
67
89
と言ったようなデーターでそれぞれの条件で頻度が高い値は何かや
条件1には存在しても条件2では存在しない数値値はこれです!
よって条件1と2は全くの別物とか類似しているとかと言うような事を
自動的にさらっと求める事を目指しています。。
85名無しさん@そうだ選挙にいこう:2013/01/13(日) 21:59:40.58
>>84
AVERAGE
86名無しさん@そうだ選挙にいこう:2013/01/13(日) 22:01:44.78
>>82
除外リストをVLOOKUP()で参照する式を作業列につくってフラグたてる
あとはピボットテーブルで
87名無しさん@そうだ選挙にいこう:2013/01/14(月) 11:17:25.45
    1日 2日3日4日5日6日7日8日9日10日11日12日13日14日15日16日17日18日19日20日21日22日 累計
23年度 実績5 6 7 8 9 4 5 2 5 6 7 8 9 1 6 6 5 2 3 35
24年度 実績4 3 9 9 5 30
こういう表があり、累計にはどちらも同じ日での計算をする場合、延々とこんな式を入れて作りましたが、
もっと簡単にする方法はありませんか?マクロはなしで教えてください。
=IF(AND(ISNUMBER(B6),C6=""),B5,IF(AND(ISNUMBER(B6),ISNUMBER(C6),D6=""),SUM(B5:C5),
IF(AND(ISNUMBER(B6),ISNUMBER(C6),ISNUMBER(D6),E6=""),SUM(B5:D5),IF(AND(ISNUMBER(B6),ISNUMBER(C6),ISNUMBER(D6),ISNUMBER(E6),F6=""),SUM(B5:E5),
IF(AND(ISNUMBER(B6),ISNUMBER(C6),ISNUMBER(D6),ISNUMBER(E6),ISNUMBER(F6),G6=""),SUM(B5:F5),IF(AND(ISNUMBER(B6),ISNUMBER(C6),ISNUMBER(D6),ISNUMBER(E6),ISNUMBER(F6),ISNUMBER(G6),H6=""),SUM(B5:G5),
IF(AND(ISNUMBER(B6),ISNUMBER(C6),ISNUMBER(D6),ISNUMBER(E6),ISNUMBER(F6),ISNUMBER(G6),ISNUMBER(H6),I6=""),SUM(B5:H5),
IF(AND(ISNUMBER(B6),ISNUMBER(C6),ISNUMBER(D6),ISNUMBER(E6),ISNUMBER(F6),ISNUMBER(G6),ISNUMBER(H6),ISNUMBER(I6),J6=""),SUM(B5:I5),・・・・・・・・
8887:2013/01/14(月) 11:23:42.78
枠がずれてしまいましたが
1日〜22日までの累計があって23年度はそれぞれ5 6 7 8 9 4 5 2 5 6 7 8 9 1 6 6 5 2 3 と言う数字が入り累計には5日目までの数字を合計しています。
24年度は4 3 9 9 5と言う数字が入っておりその後は未記入ですので単純なsum関数でいいのですが、23年度は毎日24年に数字が入るために自動で同日の計算をするというものです。
89名無しさん@そうだ選挙にいこう:2013/01/14(月) 11:34:24.52
>>87 
そんな複雑なことしてもあとで困るだけ。俺なら日付は日付として扱う
A列:日付、B列:実績 の縦に長い票にする
同じ日で累計したいなら適当な列にDAY(A列)とでもすればいいし、実績以外のデータも自由に負荷できる
90名無しさん@そうだ選挙にいこう:2013/01/14(月) 11:49:59.44
要するに、H24の入力済みの日付に対応する、H23の日付に入力された値の合計を出したいわけだな

=SUMIF(B6:W6,">0",B5:W5)
91名無しさん@そうだ選挙にいこう:2013/01/14(月) 12:01:30.26
式が複雑になる原因は、元の表の不適切さにあるという格言通りのパターンだな
92名無しさん@そうだ選挙にいこう:2013/01/14(月) 12:24:18.36
87です。
>>90
おおおっありがとうございました。
これです。こんな簡単にできるんですね。
上のバカ長いAND関数をアップした私が恥ずかしい。いつまでも初心者の
域から脱することが出来ません。
93名無しさん@そうだ選挙にいこう:2013/01/14(月) 12:46:54.84
ただし、H24で途中に空白がある場合、対応するH23の日付に値が入力されていると
正しい累計は出ない
94名無しさん@そうだ選挙にいこう:2013/01/14(月) 14:20:18.29
セルに書いた複数行のコメントのうち、1行目だけマクロで取り出せますか?
下記の場合なら、txt1 = "あいうえお" にしたい。
┌───────┐
│ あいうえお     │
│ かきくけこ.     │
│ 2013/01/11   │
└───────┘
9594:2013/01/14(月) 14:22:51.94
補足

コメントは、押し返しせずに改行で2〜3行です。
96名無しさん@そうだ選挙にいこう:2013/01/14(月) 14:28:26.68
最近、ピポットテーブルって言えば許されると思ってる流れになってるよな
97名無しさん@そうだ選挙にいこう:2013/01/14(月) 14:52:32.11
>>94

Sub test()
Comment = Range("A1").NoteText()
a = InStr(Comment, Chr(10))
txt1 = Left(Comment, a - 1)
MsgBox txt1
End Sub
98名無しさん@そうだ選挙にいこう:2013/01/14(月) 15:06:11.50
>>97
それだと1行しかなかった時にエラーになる

>>94
こっちのが安全
a = Split(Cells(1, 1), Chr(10))
txt1 = a(0)
Debug.Print txt1
99名無しさん@そうだ選挙にいこう:2013/01/14(月) 15:10:17.73
つ[コメントは、押し返しせずに改行で2〜3行です]
100名無しさん@そうだ選挙にいこう:2013/01/14(月) 15:13:19.97
押し返しがなんだかわかりませんが、わたし気にしません
10194:2013/01/14(月) 15:30:55.63
>>97
ありがとうございます。
┌──────────────
|コンパイルエラー         
|Functionまたは変数が必要です
└──────────────
になり、a= が反転してました。
Dim a As Integerにしたら、うまくいきました。

>>98
上記同様、コンパイルエラーになりました。
Dim a As Integerにしたら、
┌──────────────
|配列がありません
└──────────────
になり、a が反転してます。
未だ解決方法が見つからず・・・

>>99-100
すみません、折り返しの誤記です。
102名無しさん@そうだ選挙にいこう:2013/01/14(月) 15:37:56.10
>>101
>>98のほうは
Dim a As String
103名無しさん@そうだ選挙にいこう:2013/01/14(月) 15:49:28.84
おいおい、同じエラーが出るもの教えてどうなるw
Dim a() As String
だろ

あと
a = Split(Cells(1, 1), Chr(10))
txt1 = a(0)

txt1 = Split(Cells(1, 1), Chr(10))(0)
に要約出来る

間にUBoundでの例外処理を入れないならな
104名無しさん@そうだ選挙にいこう:2013/01/14(月) 17:07:28.26
>>84
ttest
105名無しさん@そうだ選挙にいこう:2013/01/14(月) 18:19:24.30
フィルターがかかったシートに
別のシートの選択範囲からのデータをコピペしようとすると
みなさんおなじみの現象でうまくできません。

どうすればいいですか? (不明な点は「エスパー」願います)
106名無しさん@そうだ選挙にいこう:2013/01/14(月) 18:29:55.91
無理
10794:2013/01/14(月) 18:35:55.69
>>102-103
また違うエラーが出てしまいました。
┌─────────────────
|実行時エラー '9':
|インデックスが有効範囲にありません。
└─────────────────
このとき、デバッグをクリックすると txt1 = a(0) で止まってます。

UBoundは、ググってもよく分からなかったので
とりあえず今回は考えないこととします。
108名無しさん@そうだ選挙にいこう:2013/01/14(月) 19:20:24.45
>>93
空白ではなく0でも正しい累計が出ないのですが、0の場合は正しい数字が出る方法は
ないでしょうか?
109名無しさん@そうだ選挙にいこう:2013/01/14(月) 19:23:40.26
Excel初心者ですが列のアルファベト表記は数が多くなると全くわけがわからなくなるのですが
ユーザーインターフェース上の表記をA (1) B (2) と出ていれば初心者でもすぐわかると思うのですが
表示を強制的に修正することはできないのでしょうか?
110名無しさん@そうだ選挙にいこう:2013/01/14(月) 19:33:50.75
>>109
PCにポストITで、それを貼っとく。

VBAでcells(i,"G")がOKと知り、剥がしたけど。
111名無しさん@そうだ選挙にいこう:2013/01/14(月) 19:43:36.60
>>109
できません
列も行と同じように数字で表示する方法(R1C1参照形式)ならありますが

セルの表記がA(1)B(2)とかだと、慣れるにつれかえってわずらわしくなる
だけだと断言しときます
112名無しさん@そうだ選挙にいこう:2013/01/14(月) 19:52:48.49
>>108

=SUMIF(B6:W6,">=0",B5:W5)
11394:2013/01/14(月) 19:54:06.80
a = Split(Cells(1, 1), Chr(10)) の Cells(1, 1) がダメだったのね・・・

解決しました。
114名無しさん@そうだ選挙にいこう:2013/01/14(月) 20:57:33.05
>>107
txt1 = a(LBound(a))
115名無しさん@そうだ選挙にいこう:2013/01/14(月) 21:06:49.20
無意味なことをw
116名無しさん@そうだ選挙にいこう:2013/01/14(月) 21:33:04.22
MsgBox "VBA厨さんの地方は大雪で大変でしたね"
117名無しさん@そうだ選挙にいこう:2013/01/14(月) 21:54:47.44
118名無しさん@そうだ選挙にいこう:2013/01/15(火) 07:20:43.86
>>112
ありがとうございます。
おかげさまで完全に解決しました。
119名無しさん@そうだ選挙にいこう:2013/01/15(火) 19:59:35.73
【1 OSの種類         .】 Windows7 home 64bit
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 なるべくナシで

一行おきに色を変えたいです。
=MOD(ROW(),2)=0
が有名ですが、フィルタで非表示行があるときも、表示ベースで隣接している行に対して一行おきに色を変更したいです。
どうにかならないでしょうか?
120名無しさん@そうだ選挙にいこう:2013/01/15(火) 20:12:30.94
>>119
2010ならテーブル使えばよかろ
挿入>テーブル
デフォのスタイルが1行ごと塗り分け済
121名無しさん@そうだ選挙にいこう:2013/01/15(火) 20:40:46.83
>>119 subtotal
122名無しさん@そうだ選挙にいこう:2013/01/15(火) 20:43:00.47
Excel初心者ですが
Excelを活用して億万長者になった人はいるのでしょうか?
123名無しさん@そうだ選挙にいこう:2013/01/15(火) 20:56:35.56
124名無しさん@そうだ選挙にいこう:2013/01/15(火) 21:03:42.45
>>122
ビルゲイツ
125名無しさん@そうだ選挙にいこう:2013/01/16(水) 18:34:18.36
【1 OSの種類         .】 WindowsVista
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
作業で使う計算式を全部盛り込んだExcelシートを作り、最初は便利だと褒められていたのですが、
最近、「おまえのシートは重すぎる、軽くしろ」と言われ、修正を余儀なくされています。

そこで質問です。
現在、シートの軽量化のために、一番多用しているVLOOKUPを見直しているんですが、
A・A1=VLOOKUP(C2;D2:E53;2;0)
B・A1=INDIRECT("E"&(MATCH(C2;D2:D53;0)+1))
どちらも挙動は同じですが、どちらがより動作が軽いでしょうか?

VLOOKUPを使っているセルだけで数百個(下手をすると千くらい)あるため、
全部直してから「実はINDIRECT-MATCHのほうが重かった」では徒労過ぎるので、質問しました。
もし、VLOOKUPよりも、INDIRECT-MATCHよりも「更に軽い関数があるよ!」と言う場合は、
そちらを教えて戴けると非常に助かります。
126125:2013/01/16(水) 18:48:41.35
125です。追記が2つあります。

追記1・
家のOpen Officeで式をコピッたため、カンマがセミコロンに化けました。ごめんなさい。

追記2・
ほとんどの式のD2:E53に相当するの部分は、数式〜名前の定義で、名前をつけています
A1=VLOOKUP(C2,名前1,2,0)
こんなかんじです。これ(名前の定義した場合)の重さも教えていただけると助かります。

つまり話を総合すると、以下の中から一番軽い物を教えていただけると有り難く存じます。
軽ければどんなに変則的な計算式になってもかまいません。
A・A1=VLOOKUP(C2,D2:E53,2,0)
B・A1=INDIRECT("E"4&(MATCH(C2,D2:D53,0)+1))
C・A1=VLOOKUP(C2,名前1,2,0)
D・その他、もっと軽い関数がある(〜〜関数<具体例>)
127名無しさん@そうだ選挙にいこう:2013/01/16(水) 19:26:01.65
VLOOKUPが1000個くらいで重くなるようなら、PCを買い換えたほうがいい
128名無しさん@そうだ選挙にいこう:2013/01/16(水) 19:40:12.43
【1 OSの種類】 WindowsXP
【2 Excelのバージョン】 Excel2007
【3 VBAが使えるか】いいえ
【4 VBAでの回答の可否】否

EXCELで以下のような表を作りたいと考えています。

 A B C
1○ ▲ 5
2× ○ 4
3▲ ▲ 4

・仕様としては、A列とB列には、○、▲、×のどれかを任意入力する。
・○は3点、▲は2点、?は1点として、各行のA列とB列の和をC列に表示する。

この時C列に入る数式を教えて下さい。
よろしくお願いします
129名無しさん@そうだ選挙にいこう:2013/01/16(水) 19:53:26.60
=FIND(A2,"?▲○")+FIND(B2,"?▲○")
130名無しさん@そうだ選挙にいこう:2013/01/16(水) 20:05:00.95
>>125
つ 配列数式 (配列を引数にする式ではなく、配列に結果を返す方の配列数式)

この説明で解らないなら、
「私の能力では重すぎるシートしか作れないので、軽くする必要があるなら他の人に作ってもらって下さい」
と言って断るか、勉強して自分で組めるようになれ

解らない場合、断るか勉強するかのどっちを取るかは君に任せる
131125:2013/01/16(水) 21:18:38.64
>>127
自分以外の人間が、自分以外のPCでそのシートを使うときに「重い」なので、
安易に「PC買い換えろ」と言うわけには・・・。

ちなみに、家のOpen Officeではサクサクです。
Excelと仕様が違って、重いシートはファイル読み込みに時間がかかる代わりに、
一つ一つの計算式の結果出すのはアホみたいに軽いんですよ。
「重い」ってクレームに「ハァ?軽いじゃん」と中々気付かなかったくらいですよ。

>>130
配列数式ですね。ありがとうございます。
今検索してみましたが、中々軽そうで、しかも面白そうです。
元プログラマなんで、配列も、*,+によるand,orも熟知してるので、
簡単に直せそうです。

お二方、ご回答ありがとうございました。
132名無しさん@そうだ選挙にいこう:2013/01/16(水) 21:38:12.06
配列数式だと早くなるんか??
VLOOKUPで重いから配列数式使うなんて状況ありえるんか??

つーか>>125
単にゴミデータが蓄積してて重いとかそういうオチは無い?

何か目印として行全体塗りつぶししたり消したりよくわからん操作をするエクセル無知な人にエクセル使わせたら
1週間後とかに激重ブックに変身することあるけどそういう方向は大丈夫か?

エクセル 重い とかでググってまず出てくる
http://matome.naver.jp/odai/2134672226548347701
こういう内容は知ってますか?

特にここの「使ってない行・列の削除をする」の方法でゴミデータが確認できる場合、ブックを使う人がどこかで
間違った操作をしてゴミデータ増やしてる可能性あるよ。
133名無しさん@そうだ選挙にいこう:2013/01/16(水) 21:47:44.60
>>131
まずはデフラグさせろ
134名無しさん@そうだ選挙にいこう:2013/01/16(水) 21:53:36.42
条件付き書式とかつかってるとすげー重くなるのは確か
知らない間に増殖してるし
135名無しさん@そうだ選挙にいこう:2013/01/16(水) 22:37:39.67
>>132
> 配列数式だと早くなるんか??
> VLOOKUPで重いから配列数式使うなんて状況ありえるんか??

ヒント:( )の中
136名無しさん@そうだ選挙にいこう:2013/01/16(水) 22:54:34.36
ピボット初心者ですが
毎日記録されているデータを月ごとで集計しようといちばん上の枠に日付の項目を放り込んでみると
何をどうやっても1日ごとにばらけるのですが月ごとで集計結果を出すには一体どうすれば良いのでしょうか?
137名無しさん@そうだ選挙にいこう:2013/01/16(水) 22:56:07.94
>>135
んで早くなるんか?どれぐらい?
138名無しさん@そうだ選挙にいこう:2013/01/16(水) 23:32:22.66
どのくらいかは状況によって違う
139名無しさん@そうだ選挙にいこう:2013/01/16(水) 23:47:00.54
>>136 作業列に月を出す
140名無しさん@そうだ選挙にいこう:2013/01/16(水) 23:52:05.74
>>139
1/6
1/7
1/8
2/2
2/3
2/4

1
1
1
2
2
2
に別列に変換する必要が有ると言う事でしょうか?日にち入りの状態では不可ですか?
141名無しさん@そうだ選挙にいこう:2013/01/17(木) 00:04:45.96
秒単位で変化するデータを分析していますがシートに平たく書き出すのではなく
ダイナミックにセルの数値が変動するような感じでExcelの表に時間軸を持たせる事は出来ないのでしょうか?
142名無しさん@そうだ選挙にいこう:2013/01/17(木) 00:35:59.74
>まずはデフラグさせろ

デフラグなんて言葉を久しぶりに見たw
貧乏人は苦労するよねw
143名無しさん@そうだ選挙にいこう:2013/01/17(木) 04:21:14.73
>>139
>>140
月刊統計は何となくわかりました。ありがとうございます。
同様に週間統計とクオーター統計もピボットで切り替える対称にしたい場合もあるのですが、
この場合は何か自動で割り出す方法はあったりするのでしょうか?
手入力としたらクオーターはまだ何とかなりますが週間は数が多いとさすがにきついですね、、w
144名無しさん@そうだ選挙にいこう:2013/01/17(木) 04:37:14.28
>>143
週は
=WEEKNUM
ですね自己解決しました。
四半期も流し読みでまだ理解してませんが
http://www.eurus.dti.ne.jp/yoneyama/Excel/vba/function/vba_date.html
できる?ようですね。
145名無しさん@そうだ選挙にいこう:2013/01/17(木) 15:16:33.04
ピボットテーブルの月毎集計て

グループ使うてまとめたらあかんの?(´・ω・`)
146名無しさん@そうだ選挙にいこう:2013/01/17(木) 20:35:44.43
一時期に比べて過疎ってるような気がするけど
ここ最近で急激にExcelの人気が落ちて
誰もやってる人がいなくなってしまったのかな?
それとも寒くなるとExcelをする人がいなくなるのか?!
147名無しさん@そうだ選挙にいこう:2013/01/17(木) 20:41:40.53
>>146
2chに飽きた
148名無しさん@そうだ選挙にいこう:2013/01/17(木) 21:01:56.54
>>146
雪かきが忙しい
149名無しさん@そうだ選挙にいこう:2013/01/17(木) 22:25:14.07
office2010 Windows8 です。

すみません、VLOOKUPが急に使えなくなりました。
今までできていたのに、CSVタイプのファイルを参照できなくなりました。
でも、以前作成してあった古いバージョンのエクセルファイル(xls)は参照できます。

範囲を参照すると、

「正しくありません」

となり、続行すると、

「このバージョンのファイルに、ワークシートのサイズである256列の外(IW列以降)または 65536行の外にあるエクセルを参照する数式を含めることはできません。」

とでます。

どうすればいいですか?教えてください。<m(__)m>
150149:2013/01/17(木) 23:18:40.30
今、yahoo知恵袋を検索したら、私とまったく同じ症状の方がいて、
それを参考にしました。

新バージョンのファイルに、旧バージョンのファイルをコピーしてVLOOKを試みたところ、
できました。

参照ファイルの問題ではなく、もとにしているファイルが、旧バージョンで作成したものだから
だったようです。

ありがとうございました。
151名無しさん@そうだ選挙にいこう:2013/01/18(金) 02:53:11.18
>>148
VBAで自動化
152名無しさん@そうだ選挙にいこう:2013/01/18(金) 03:38:33.09
If 積雪 = True Then Call 雪かき()
153名無しさん@そうだ選挙にいこう:2013/01/18(金) 10:35:22.57
If 童貞 = True Then Call 自殺()
154名無しさん@そうだ選挙にいこう:2013/01/18(金) 11:09:39.87
>>152-153
If *** = True Then 〜
とか
If *** = False Then 〜
という書き方は冗長

True判定のIfなら
If *** Then 〜
Falseなら
If Not *** Then 〜
と書くべき
155名無しさん@そうだ選挙にいこう:2013/01/18(金) 11:48:45.76
普通はね

でも稀な例として、対象がTrue、False以外の値を返す場合もある
そういう場合はIf *** = True Thenとする必要がある場合もあるので
「このケースの場合」ではなく、一概に「この書き方は冗長」というのはちょっと浅慮

例を出すと、値が"a"の場合
If *** = True Then
なら正常な否判定になるが、
If *** Then
だとエラーになる

まあ変数や戻り値の型をValiantにして、真偽値も文字列も混在して格納する(返す)というのは
設計としてどうかとも思うが、言語としてそういうことも出来る仕様であり、実際にもそういうものが
存在している以上、覚えて置いた方がいい
156名無しさん@そうだ選挙にいこう:2013/01/18(金) 14:05:26.52
素人はそこまで考えなくていい。
エラー出てから対処すればOK

プロならそこまで考慮しなくちゃダメだがな。
157名無しさん@そうだ選挙にいこう:2013/01/18(金) 18:52:41.23
エラーが出ればいいけどね
関数の戻り値がたとえ数値型でも

If Func1 = 123 Then
If Func1 Then

はどっちもエラーにならないから演算子や条件は省略せず明記した方が安全
158名無しさん@そうだ選挙にいこう:2013/01/18(金) 19:08:11.47
>>157
冗長の意味わかってないんじゃね?エラーが出るからとかそういう理由で=Trueを省くほうが良いと言ってるわけじゃないけど。

TrueFalseの判断でIf ○ ThenのところにBoolean以外を使う時点でおかしいからあなたの理論での安全性は必要ありません。
それを防ぐのは=Trueを省かないという方法じゃなくて、しっかり型を宣言して正しい型を使う事の方が重要。
159名無しさん@そうだ選挙にいこう:2013/01/18(金) 19:21:52.60
@ If Func1 = 123 Then
A If Func1 Then

@は、もしFunc1が123だったらホゲホゲ
Aは、どーゆー意味なの?
160名無しさん@そうだ選挙にいこう:2013/01/18(金) 19:47:52.57
1がTRUEで他がFalseだっけ
0がFALSE 他がTRUE?
どっちかになるんじゃないかな
161名無しさん@そうだ選挙にいこう:2013/01/18(金) 19:54:19.97
>>159
VB、VBA、MS-BASICの場合はIf の条件に数値だけ書かれると「0」と「0以外」で分岐する
「0」がFalse
「0以外」がTrue
という扱い
162名無しさん@そうだ選挙にいこう:2013/01/18(金) 19:59:03.78
N88-BASICの時代は、メモリを節約するために

IF X+Y<>0 THEN

みたいな式を

IF X+Y THEN

と書くのが定番のテクニックだった
当時はこれが当たり前だったから、あとで別人がソースを読んでも困ることなんてなかった
163名無しさん@そうだ選挙にいこう:2013/01/18(金) 19:59:48.59
というか

If ・・・ Then
は、
If CBool(・・・) Then
だと思えば良い

CBool関数の規則でTrueやFalseにされる値はそれに
CBool関数で真偽値に変換できない値はエラーになる
164159:2013/01/18(金) 20:09:19.41
>>161
へぇ〜、初めて知ったw
ありがとうごじゃりまする。

でもさ、俺は万年初心者だから If *** = True Then 〜の方が分かりやすいな。
165名無しさん@そうだ選挙にいこう:2013/01/18(金) 20:15:30.17
TWB = ThisWorkbook.Name
TWS = ThisWorksheet.Name 
と書いたら、
2行目で「オブジェクトが必要です」ってエラーになるんだけど、
ThisWorksheet.Nameじゃだめなんですか?
166名無しさん@そうだ選挙にいこう:2013/01/18(金) 20:36:28.22
ThisWorksheetってどこから来たんだ?

ブックに置いて、ブックは単一だからThisWorkbookというオブジェクトがあるが
ブックに置いて、シートは不特定多数存在する可能性があるから
ThisWorksheetなんてものは存在しないし仕様上ありえないんだが・・・

シートのコードモジュールでなら、Meでそのコードモジュールが属するシートのオブジェクトを掴めるから
Sheet1のコードモジュールでMe.NameならSheet1が
Sheet2のコードモジュールでMe.NameならSheet2が得られるけどね
167名無しさん@そうだ選挙にいこう:2013/01/19(土) 10:23:22.57 BE:845011627-2BP(0)
シートは入れ子には出来ないのでしょうか?
例えば、日計表を一日づつ、またそれをひと月づつ、またそれを年度毎に入れ子にしてまとめ、
各々の時節の合計額を出すのを簡単に出来たらなと思うのですが。。。(子シートの同セル合計を親シートで出せたり)
168名無しさん@そうだ選挙にいこう:2013/01/19(土) 10:37:05.40
視覚上でシートタブを入れ子にするってことは基本的に出来ないし
むりやりやるにはVBAが必要だけど
計算上で親子関係を作るのは可能だよ

親、子1、子2、子3、1孫1、1孫2、1孫3、2孫1、2孫2、2孫3、3孫1、3孫2、3孫3

とシートを作れば、「子1」シートに
=SUM(1孫1:1孫3!A1)
で、「子1」の子である「1孫*」達のA1の合計が出せるし
「親」シートに
=SUM(子1:子3!A1)
で、子1〜3のA1の合計を「親」シートに出せる
169名無しさん@そうだ選挙にいこう:2013/01/19(土) 10:43:40.51
そういうのは全データを1枚のシートに並べて、ピボットテーブルで集計した方が簡単だよ…
170名無しさん@そうだ選挙にいこう:2013/01/19(土) 11:01:19.12
場合によってはそれな入力性が激しく悪くなる可能性があるからなぁ
ユーザーフォームで入力補助フォーム作れるレベルならいいんだが
ここで質問してる奴がそのレベルに達してるとは思えないし
171167:2013/01/19(土) 17:31:22.63 BE:1810737656-2BP(0)
なるほど分かりましたありがとう。
有用っぽいから簡単に出来ると思っていましたが、意外と難しいんですね。。
頑張ってやってみます。
172名無しさん@そうだ選挙にいこう:2013/01/19(土) 18:29:36.41
普通はデータベースにやらせることだからね
当然データベースでは有用だからそういうことも出来るけど
Excelはデータベースソフトじゃないからな
本当のデータベースを使いこなせない奴が、
簡易データベース代わりに使うことがあるというだけで
173名無しさん@そうだ選挙にいこう:2013/01/19(土) 22:29:49.70
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

とあるセルに通貨を入力しようと思っています。
円なら"\10"に、ドルなら"$10"のように表示させようと思っています。
単純に"10"と入力しただけではそれが円なのかドルなのか判断のしようがないので
隣のセルに選択リストを作り、それが"円"が選択された状態なら"\10"と、
"ドル"が選択されている状態なら"$10"と表示させることができればと思っています。

どういう方法を用いればこういうことが可能になりますか?
174名無しさん@そうだ選挙にいこう:2013/01/19(土) 22:52:10.69
IF TEXT                       
175名無しさん@そうだ選挙にいこう:2013/01/19(土) 23:09:00.98
じゃ既に値が入力されてるセル自体の表示を弄るのは無理だな
Excel2007以降なら、確か条件付き書式で表示形式指定できたと思うが
2003ではそれも出来ないし
176名無しさん@そうだ選挙にいこう:2013/01/19(土) 23:11:34.45
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range

For Each r In Target
If r.Column = 2 Then
Select Case r.Value
Case "yen"
'
Case "doller"
'
End Select
End If
Next
End Sub
177名無しさん@そうだ選挙にいこう:2013/01/19(土) 23:29:00.44
隣のセルに円とかドルとか入力するくらいなら、かわりに¥と$を入力したほうがかんたんだとおもうが
178名無しさん@そうだ選挙にいこう:2013/01/19(土) 23:48:50.93
みなさん、レスありがとうございます。
$か\を直接入力する方が簡単そうなので単純にそちらを選ぼうかと思います(^^;)
179しおりん推し:2013/01/20(日) 12:19:27.31
Excelで2010の下付きアイコンが出せないけど,
このアイコンありますか
180名無しさん@そうだ選挙にいこう:2013/01/20(日) 12:32:54.26
ショートカットのこと言ってんの?
Excel.exe右クリしてショートカット作成しろ
181名無しさん@そうだ選挙にいこう:2013/01/20(日) 12:34:21.77
ホームタブにあるよ
182名無しさん@そうだ選挙にいこう:2013/01/20(日) 15:52:32.22
下付きより上付きがイイな
183名無しさん@そうだ選挙にいこう:2013/01/20(日) 17:01:41.81
挿入もいいよ
184名無しさん@そうだ選挙にいこう:2013/01/20(日) 20:21:32.52
ピストンもいいね
185しおりん推し:2013/01/21(月) 01:38:52.29
>>181
どうもないんだよね.
フォントのところの右下の斜め矢印から,
いちいちやってるんだけど.
>>180
あほちゃう?
186名無しさん@そうだ選挙にいこう:2013/01/21(月) 03:13:42.67
「すべてのコマンド」を見ても「下付き」が見当たらないからどこにもないと思う
自分でマクロを作ってボタンに登録するしかない

「下」で始まるボタン一覧
ttp://volac.net/aup/img/aup6601.png
187名無しさん@そうだ選挙にいこう:2013/01/21(月) 21:13:43.96
アクティブセルの文字を下付にするマクロをショートカットに登録するのが一番手っ取り早いんでね。
188名無しさん@そうだ選挙にいこう:2013/01/21(月) 22:24:54.14
>>187
セル単位でしか使えなくていいのかな
189名無しさん@そうだ選挙にいこう:2013/01/21(月) 23:13:00.45
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

Sheet1のA列をSheet2のB列に引用するときは、Sheet2のB1に「=Sheet1!A1」で下へフィル
Sheet2のB列をSheet2のC列に引用するときは、Sheet2のC1に「=Sheet1!B1」で下へフィル
というのはわかるのですが
これと同じことを、R1C1形式でやる場合にはどうすればいいのでしょうか?
190名無しさん@そうだ選挙にいこう:2013/01/21(月) 23:19:49.08
>>188
じゃぁ、セレクトにすれば?
191名無しさん@そうだ選挙にいこう:2013/01/21(月) 23:32:19.18
>>189
それやってみて、表示をR1C1に変えてみればわかるんじゃない?
192名無しさん@そうだ選挙にいこう:2013/01/21(月) 23:39:49.19
>>190
いや、文字単位でしたいのかなと考えていました
H2Oの2だけとか
193名無しさん@そうだ選挙にいこう:2013/01/22(火) 00:20:30.77
>>191
わかりました
ありがとうございます
194名無しさん@そうだ選挙にいこう:2013/01/22(火) 01:48:45.63
>>186
なんで「下線」「下罫線」が2つずつあるの?
195名無しさん@そうだ選挙にいこう:2013/01/22(火) 09:04:23.40
いっぱいあるとうれしいんじゃない?
196名無しさん@そうだ選挙にいこう:2013/01/22(火) 12:25:19.05
フィルターしたシートに
他シートのSelectした部分のデータを
「うまく」コピペするためのコードを教えていただけませんか?

コピー先だけがフィルターされてて、コピー元はフィルターされてません。
「うまく」とは表示されてるセルにちゃんと記入されるということです。
197名無しさん@そうだ選挙にいこう:2013/01/22(火) 13:29:16.57
コードってことはVBA?
一旦フィルタ解除する、貼り付ける、再度フィルタ掛ける
を自動化すればいいだけじゃね?

テンプレ(質問時必須事項)を省略してるから
こっちも具体的なコードは省略するが
198名無しさん@そうだ選挙にいこう:2013/01/22(火) 14:29:15.91
まるちー
199名無しさん@そうだ選挙にいこう:2013/01/22(火) 19:25:21.91
200Excel2010:2013/01/22(火) 19:41:25.77
B2〜D6セルの文字、コメント、色、罫線を消すマクロで
自動記録をちょっとイジって次のようにしました。
しかし、罫線の削除のところが長いので短いコードにできますか?

With Range("B2:D6")
.ClearContents
.ClearComments
.Interior.Pattern = xlNone
.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone
.Borders(xlEdgeLeft).LineStyle = xlNone
.Borders(xlEdgeTop).LineStyle = xlNone
.Borders(xlEdgeBottom).LineStyle = xlNone
.Borders(xlEdgeRight).LineStyle = xlNone
.Borders(xlInsideVertical).LineStyle = xlNone
.Borders(xlInsideHorizontal).LineStyle = xlNone
End With

ただし、B2〜D6セルの周囲に文字とかあるので、
Rows("2:6").Delete Shift:=xlUp ではダメです。
201名無しさん@そうだ選挙にいこう:2013/01/22(火) 19:47:13.26
.Borders.LineStyle = xlNone
202Excel2010:2013/01/22(火) 20:26:12.51
>>201
おぉぉ、凄いぃぃぃ!!!
ありがとうございます。
203名無しさん@そうだ選挙にいこう:2013/01/22(火) 23:21:40.57
複数のExcelの表を手入力で集計していると異常に時間がかかったり
眠くなって全く進まない時があるのですが一体どうすれば良いのでしょうか?!
回避方法はあるのでしょうか?
204名無しさん@そうだ選挙にいこう:2013/01/23(水) 00:06:50.47
そんなときこそVBA
205名無しさん@そうだ選挙にいこう:2013/01/23(水) 00:12:14.16
>>203
自分に弱いってことなら、精神科にでも言ってみてはどうでしょうか
カフェインなら薬局でも買えるし、結構おすすめ
206名無しさん@そうだ選挙にいこう:2013/01/23(水) 00:15:18.19
頭による結果の判断と評価の書き込みがあるのでなかなかそうも、、、VBAが鋭い評価を書いてくれると最高ですが!(笑)
207名無しさん@そうだ選挙にいこう:2013/01/23(水) 00:48:33.30
> VBAが鋭い評価を書いてくれると最高ですが
「鋭い評価」をアルゴリズム化出来れば、VBAがその通りに評価してくれるよ

いまやコンピュータは、将棋やチェスの世界の頂点と同等以上の思考をさせられるのだから
208名無しさん@そうだ選挙にいこう:2013/01/23(水) 01:48:40.43
VBAに鋭い評価をさせることができることはできるが、
そのためには鋭い評価をできる視点が必要なわけで、
どんな人は評価されるまでもないコードを書けるわけで・・・

がんばれ、みんながんばれ時は流れて東へ西へ
209名無しさん@そうだ選挙にいこう:2013/01/23(水) 02:47:33.45
excelの関数について超わかりやすく説明&解説してるサイトや参考書ってないですか?

ちなみに
http://www.eurus.dti.ne.jp/yoneyama/Excel/kansu/itiran.html
ここはものすごくわかりづらく糞サイトでした。
なぜなら
FIND関数、その他一部関数についての説明が一切ない。
また説明がないにも関わらず、その関数を例に使用する。
また、書き方がゴミ。
例えば
「〜を返します。」
なんでこんな書き方をするのか。「表示する」でいいのに。
210名無しさん@そうだ選挙にいこう:2013/01/23(水) 02:49:21.23
excelの関数について超わかりやすく説明&解説してるサイトや参考書ってないですか?

ちなみに
http://www.eurus.dti.ne.jp/yoneyama/Excel/kansu/itiran.html
ここはものすごくわかりづらく糞サイトでした。
なぜなら
FIND関数、その他一部関数についての説明が一切ない。
また説明がないにも関わらず、その関数を例に使用する。
また、書き方がゴミ。
例えば
「〜を返します。」
なんでこんな書き方をするのか。「表示する」でいいのに。
211名無しさん@そうだ選挙にいこう:2013/01/23(水) 02:52:49.31
あと例えばこのSUMPRODUCTの説明とか。
http://www.eurus.dti.ne.jp/yoneyama/Excel/kansu/sumproduct.htm

 サムプロダクト
=SUMPRODUCT(配列1,配列2)
・配列の対応する要素間の積をまず計算し、さらにその和を返します。
ただし、SUMPRODUCT関数は数値以外の配列要素は、0であると見なされます。
・SUMPRODUCT関数で複数条件の件数をカウントしたり、合計を出すことができます。
・SUMPRODUCT関数を用いて、1行/1列おきに計算することもできます。


なんでこんなに説明がへたくそなの?こんな書き方されたらわかるわけないじゃん。

SUMPRODUCT(A、B)って入力した場合、このAとBを、SUMPRODUCTはどうしてくれるのか
って書けよバカじゃねーのかよ。
なんでこのコンピュータ関係の説明ってみんなゴミ糞以下なんですかね?
日本語苦手なんですかね?っていうか相手に教える気があるんでしょうか?
ほんっとーにわかりづらいの。ていうか、あたかもこれは皆最初から知ってるかのように話すの。
ほんとゴミ。
212名無しさん@そうだ選挙にいこう:2013/01/23(水) 02:57:14.26
何この痛い子?

「私はバカです」ってアピールしたいの?
だとすれば大成功してるけどさ
213名無しさん@そうだ選挙にいこう:2013/01/23(水) 03:07:49.08
>>212
人をバカ呼ばわりする前にまず正々堂々と反論してみろよ。
214名無しさん@そうだ選挙にいこう:2013/01/23(水) 03:11:18.65
例えば
SUMPRODUCT(A、B)

この場合、AとBに何が起こるか

って書かないと、応用きかないでしょ?
>・配列の対応する要素間の積をまず計算し、さらにその和を返します。

なんでこんなわけのわからない書き方するの?
法律家とかの間で流行ってる、わざとわけのわからない言い回しをして、賢い人アピールですか?
お前が賢いかどうかなんて、世界の99.99999999999999999999999999%の存在が興味がないんだが?
だったらわかりやすく、応用が利くようにかけよ?
215名無しさん@そうだ選挙にいこう:2013/01/23(水) 03:12:53.09
>>212は池沼丸出し
216名無しさん@そうだ選挙にいこう:2013/01/23(水) 03:43:42.40
有効な質問残件無し

次の方どうぞ
217名無しさん@そうだ選挙にいこう:2013/01/23(水) 06:00:17.39
「返す」って表現については俺もからまれた記憶があるなあ

エクセル初めてって人に教えてたときのことなんだけど
関数に引数を渡すと答えが「返って」くるんだということが
どうしてもイメージできなかったらしくて
「返す」ってなによ! とさんざんゴネられた

理屈抜きで慣れさせたほうがマシとひたすら
「とにかくこうしろ」といろいろなケースで簡単な関数だけ
使わせていたら、あるとき不意に理解したらしい
「あれ。こういうことだったの」と、文句を言わなくなった
218名無しさん@そうだ選挙にいこう:2013/01/23(水) 07:24:25.59
もともとはreturnを直訳しちゃったのが問題なんだよな
この手の翻訳が変なコンピューター用語はいっぱいある

きちんと意訳すれば、関数は「解く」、あるいは結果が「出る」あたりになったと思うんだけどね
219名無しさん@そうだ選挙にいこう:2013/01/23(水) 10:18:17.47
なるわけねーだろアホか
220名無しさん@そうだ選挙にいこう:2013/01/23(水) 15:24:23.72
【1 OSの種類 Windows XP】
【2 Excelのバージョン  Excel2007 】
【3 VBAが使えるか いいえ】
【4 VBAでの回答の可否】 否

図形描画で作成した図形に「テキストの編集」で入力した文章のフォントを変えたいのですが
特定のフォントがホームのドロップダウンリストに表示されず、変更できない状態です

特定のフォントというのが、自分でインストールしたフリー素材のフォントなのですが
3種類インストールした内、2種類しか選択できませんでした
普通のセルでフォントを変更する時は3種類全て選択でき、実際にフォントの変更が可能なのですが図形内のテキスト編集のみ何故かリストから消えている状態です

ちなみに3種類のフォントは「過充電FONTフルBOLD」「過充電FONT細字フル」「じゃぽねすく」で
「じゃぽねすく」の選択ができません
221名無しさん@そうだ選挙にいこう:2013/01/23(水) 16:23:26.03
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel97
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

データの入力規則「リスト」で元の値「=$C$1:$C$50」などが選べる他、
この=以降にIF条件式を入れるとそのIFの通りにリストを作れますが、
(例:=IF($B$1="OK",$C$1:$C$50,$D$1:$D$50)とすると、B1セルが「OK」の場合、
C1〜C50をリストにして、「OK」でないならD1〜D50をリストにできるようです)

この際に、$C$1から$C$50までのデータの中で、
Nullや0のセルを除外してリスト化したいのですが、
どのような条件式を入れたらいいでしょうか?
(例:C5とC10がNullの場合、C1〜C4、C6〜C9、C11〜C50だけを
リストに表示させたい。尚、C1〜C50の値は他のセルの状況に合わせて
変動しますので決め打ちはできません)
222名無しさん@そうだ選挙にいこう:2013/01/23(水) 16:49:07.27
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 始めたばかり
【4 VBAでの回答の可否】 可

教えてください。
Option Explicit

Sub Macro1()
'
' Macro1 Macro
'

'
Range("B2:B10,B12,B12:B17,B19:B26").Select

End Sub

同じSelectをCellsを使ってやりたいのですが、どのように書いたら
よいかわかりません。教えてください。(マクロの記録って、A1形式でしか記録してくれないんですよね。)
223名無しさん@そうだ選挙にいこう:2013/01/23(水) 17:33:27.73
>>222
Range(Cells(1,2),Cells(3,4)).Select
 で、1行2列のB1から、3行4列のD3までのB1:D3

Cells(2,2).Resize(9).Select
 で、2行2列のB2から9行範囲のB2:B10

Union(Cells(12, 2).Resize(6), Cells(19, 2).Resize(8)).Select
 で、12行2列のB12から6行範囲のB12:B17と
   19行2列のB19から8行範囲のB19:B26を合わせてB12:B17,B19:B26

With Columns(2)
  Union( _
    Range(.Cells(2), .Cells(10)), _
    Range(.Cells(12), .Cells(17)), _
    Range(.Cells(19), .Cells(26)) _
  ).Select
End With
 で、2列目の、2行目から10行目と、
         12行目から17行目と、
         19行目から26行目を合わせてB2:B10,B12:B17,B19:B26
224名無しさん@そうだ選挙にいこう:2013/01/23(水) 18:49:14.58
>>223
ううう、思ったよりずっと複雑なんですね。
じっくり読んで勉強させて頂きます。
ありがとうございました。
225名無しさん@そうだ選挙にいこう:2013/01/23(水) 20:54:42.64
VBAについて質問ですが
複数のExcel画面を立ち上げ多場合それぞれの画面で同時に違うコードを走らせる事は可能なのでしょうか?
VBAは裏でつながっててだめですとか言われてしまうのでしょうか?
226名無しさん@そうだ選挙にいこう:2013/01/23(水) 21:10:56.54
>>225
複数のExcel.exeを起ち上げれば、Excel.exe単位で個別にコードを実行させることは出来るけど
一つのExcelで複数のブックを開いて、そのブック単位で別々のコードを実行させることは出来ない

というか、俺もVBAを簡易開発環境代わりに使ってた初心者の頃、複数のコードを同時実行したくて
同じ疑問に行き当たったが、ブックやシートを操作するのがメインでそれの補助にVBA使うのではなく
コードを実行するのがメインなら、VBSなりVB2010EEなり使った方が煩わしさは少ないよ
227225:2013/01/23(水) 21:33:05.61
>>226
詳しい説明 ありがとうございます。
まだ右も左もわからないVBA初心者ですのでVBS?は初耳です調べてみます。
228225:2013/01/23(水) 21:40:11.78
>>226
ちなみに利用目的はExcelの数値をあれこれ集計する作業の高速化です
初心者ながら命令コードはいきなり千行を超えて処理にもっさり時間がかかってしまう問題がでたため
コードを分割して実行できればと思いました。
とりあえずプロシージャの記述が大きすぎますとかしかられましたw
229名無しさん@そうだ選挙にいこう:2013/01/23(水) 21:44:08.78
そんなにでかいとメンテできなくなる 適当に分けてmainから呼び出す形にしないと
230名無しさん@そうだ選挙にいこう:2013/01/23(水) 21:59:11.80
処理が複雑だからコードが多いんじゃなくて
冗長なことやってるからコードも処理時間も膨大になってるだけだろうな
まあ俺も経験した道だがな
231名無しさん@そうだ選挙にいこう:2013/01/23(水) 22:21:16.09
ちゃんとテーブル作っておけば、集計なんかピボットで一瞬なのに
232名無しさん@そうだ選挙にいこう:2013/01/24(木) 06:01:04.04
ちゃんとエクセル使えない人が作ったデータを集計しなきゃならん事はよくあるんだぞ。
233名無しさん@そうだ選挙にいこう:2013/01/24(木) 07:20:59.96
データをテーブルが使える形に加工するのが速いか
関数やVBAを駆使しまくって集計するのが速いか
そういう問題だわな

その場限りの集計でいいのか
データが更新されたら継続的に集計しなけりゃならんのかにもよるが
234名無しさん@そうだ選挙にいこう:2013/01/24(木) 08:58:08.25
そこでindirect
235名無しさん@そうだ選挙にいこう:2013/01/24(木) 09:09:23.05
ところが毎回表の大きさが変わってな…
なんで必要な項目まで増えたり減ったりするんだよ、「備考2」なんて追加したの誰だよ
236名無しさん@そうだ選挙にいこう:2013/01/24(木) 09:26:04.09
>>234
indirectで済むのはむしろ単純な部類だ
エクセル初心者さんが作るデータを舐めてはいけない
237名無しさん@そうだ選挙にいこう:2013/01/24(木) 10:50:39.11
VlookupとIndirectを組み合わせればなんとか
場合によってはVlookupじゃなくてIndex使わなきゃいけないときもあるが、数式が長くなってデバッグに難がある以外は問題無い
デバッグといえば、ifを使うときは

if(a1=0,
"111",
"222")

みたいな感じで確認しやすいように改行して編集したりするんだけど、バージョンによっては改行が保存されてなかったりするよな
238名無しさん@そうだ選挙にいこう:2013/01/24(木) 11:08:48.82
どうせなら改行だけでなくインデントも使うと更に幸せになれるかも

×
=if(a1=0,
"111"
,if(a1=1,
"222",
"333"))


=if(
  a1=0,
  "111",
  if(
    a1=1,
    "222",
    "333"
  )
)


因みに、俺は自作アドインに「数式自動整形」「数式整形解除」の機能を盛り込んでいるので
数式の確認やデバッグの時だけボタンひとつで改行&インデントして、終ったら基本的に1行に戻してるので
数式においては整形状態が保存されないとかは知らないし関係ない感じだな
セル内改行してると、そのセル選択した場合に数式バーがシート上に出張ってきて邪魔なので
数式に限らずセル内改行は極力やらず、やっても基本的に1改行で2行までにしてる

でも数式ではなく文字列でセル内改行が勝手に解除されるとしたら、かなり問題だと思う
改行が保存されないのは数式の場合だけ?それとも数式に限らずセル内改行は勝手に消えることあるの?
239名無しさん@そうだ選挙にいこう:2013/01/24(木) 11:09:26.77
2010で印刷設定って昔のようにできなくなった?
プリンター買い換えたら余白の大きさが全部変わって、
1枚ずつ再設定で死にそう

少なくとも2003では複数シート選択して一括で変更できたのに
240名無しさん@そうだ選挙にいこう:2013/01/24(木) 22:17:33.07
>>238
インデントはめんどくさいな
さすがにそこまで視認性が必要な状況は無いだろう。
>>239
これを機にvbaを覚えてみては?
241名無しさん@そうだ選挙にいこう:2013/01/25(金) 04:10:16.08
>>240
プリンターの機種ごとに固有の設定はVBAでも鬼門だよ
用紙サイズの選択ぐらいしかまともにできない
インクジェット専用紙を手挿しトレイに入れてフチ無し印刷とかやろうとするとドハマりする
242名無しさん@そうだ選挙にいこう:2013/01/25(金) 09:35:12.60
Excelで、インクジェット専用紙を手挿しトレイに入れてフチ無し印刷する書式ってどんなもの?
243名無しさん@そうだ選挙にいこう:2013/01/25(金) 11:52:00.32
A1235.xlsx
A22356.xlsx
A31415.xlsx
A4126.xlsx

上記のファイルを開いてる状態で、A1235.xlsx と A22356.xlsx を
変数に入れるとき、@とAにはどう書けばいいですか?

For Each wb In Workbooks
 If Left(wb.Name, 2) = "A1" Then
  Set wb1 = @
 ElseIf Left(wb.Name, 2) = "A2" Then
  Set wb2 = A
 End If
Next
244名無しさん@そうだ選挙にいこう:2013/01/25(金) 12:14:32.78
Set wb1 = wb
245名無しさん@そうだ選挙にいこう:2013/01/25(金) 12:40:22.52
>>244
ありがd
でも、もう少し根が深かったので再質問です。

各ファイルのアクティブなシートをSetしなければなりませんでした。
次の書き方で動きましたが、ブックをActivateせずに変数に入れられますか?
Workbooks(wb.Name).Activate
Set ws1 = Workbooks(wb.Name).Worksheets(ActiveSheet.Name)
246名無しさん@そうだ選挙にいこう:2013/01/25(金) 12:53:23.39
ついでに、セルやシートやブックを対象に何かするときに
アクティベートしている状態でないといけないか、それともアクティベートしなくてもいいか、
その基準みたいなものはありますか?
247名無しさん@そうだ選挙にいこう:2013/01/25(金) 13:13:10.75
たくさんのセルの文字列を連結するにはどうすればいいですか?
さらにそのセル間に"-"のハイフンを入れたいです。

例えば、A1セルからJ1まで山手線の駅名が入ってて
やりたいのは「新宿-渋谷-恵比寿-品川-有楽町-東京-新橋-秋葉原-上野-池袋」を1つの別のセルに出力することです。

*山手線の途中の駅名が省略されているという苦情は受け付けません。
248名無しさん@そうだ選挙にいこう:2013/01/25(金) 13:14:38.17
>>246
以前は、対象のブックをその都度Activeにし、シートをSelectして、
Cells(i, 1) = "" とか書いてましたが、今は Set 変数= hogehoge にして
変数.Cells(i, 1) = "" にしてます。
249名無しさん@そうだ選挙にいこう:2013/01/25(金) 13:14:54.33
*新橋も受け付けぬ。
250名無しさん@そうだ選挙にいこう:2013/01/25(金) 13:30:22.26
Sub 山の手()
 For unko = 1 To 10
  chinko = chinko & "-" & Cells(1, unko).Value
 Next unko
 Range("A3").Value = Right(chinko, Len(chinko) - 1)
End Sub

ダサw
251247:2013/01/25(金) 14:00:10.13
>>250
ちょっとそのコード臭いんですけど。
というかVBAはわからないんで、普通のExcelの関数かなにかでお願いできないかしら?
252名無しさん@そうだ選挙にいこう:2013/01/25(金) 15:00:30.47
ほれw

=A1&"-"&B1&"-"&C1&"-"&D1&"-"&E1&"-"&F1&"-"&G1&"-"&H1&"-"&I1&"-"&J1
253名無しさん@そうだ選挙にいこう:2013/01/25(金) 15:07:30.49
=CONCATENATE(CONCATENATE(A1,"-",B1,"-"),CONCATENATE(C1,"-",D1,"-"),CONCATENATE(E1,"-",F1,"-"),CONCATENATE(G1,"-",H1,"-"),CONCATENATE(I1,"-",J1))
254247:2013/01/25(金) 16:19:49.55
書いたように「A1セルからJ1まで」はただの例。
実際はいろんなセルアドレスだし
1行とはかぎらず複数行x複数列のこともあるのに。(このときは左上から始まり右に、行の最後で次の行の最初の列に行く)
255名無しさん@そうだ選挙にいこう:2013/01/25(金) 16:30:15.95
ピボットテーブルは何のためにつかいますでしょうか?

まず1行で趣旨を教えていただき、
次に詳細を教えていただくか、まとめサイトにご誘導ください。
256名無しさん@そうだ選挙にいこう:2013/01/25(金) 16:33:06.13
このオッサンが有名なTANAKAさんですか?
http://officetanaka.net/img/banner.png
257名無しさん@そうだ選挙にいこう:2013/01/25(金) 16:37:38.15
>>254
対象が変わったら式の中のアドレス書き換えれば良いだけの話でしょ

心の中で「このセルとこのセルと・・・このセルを連結したい」と思ったらその通りの結果になるなんて
VBA使っても無理なわけで、対象が変わったら書き換えを行うことは絶対に避けられないし

ただ、規則性があれば書き換えが楽なVBAを使うか、VBAの使い方勉強するの面倒なら手軽に使えるが
書き換えはやや面倒な数式使うかで、君は数式使うことを選択したわけだが、やっぱりVBAがいいってなら
例の悪臭漂うコードから悪臭(変数名)だけ変えればいいし
258247:2013/01/25(金) 17:02:32.80
どいつもこいつも、使えねーやつらだな。
259名無しさん@そうだ選挙にいこう:2013/01/25(金) 17:46:48.20
2つも最初の質問を解決できる回答が付いたのに
それでも使えないと言うなら、君が条件後出しばかりで
きちんと質問できてなかった証拠だから、自分の使え無さの裏返しということになる
260247:2013/01/25(金) 18:26:25.29
>>258はニセモノです。
261247:2013/01/25(金) 18:28:09.40
>>259
どちらもハゲのそのまんま東のようにそのままつなげただけじゃん。

「関数名(選択範囲, 連結文字)」みたいなのがあったらそれを教えてほしいし
なければもっと汎用的に使える方法を知りたい。
262名無しさん@そうだ選挙にいこう:2013/01/25(金) 18:34:05.53
そんなお馬鹿な247に・・・

っ[ユーザー関数]
263名無しさん@そうだ選挙にいこう:2013/01/25(金) 18:44:51.62
範囲指定して文字列を連結できないか、という質問は飽きるほど見てきた
しかし、いまだにそういう機能は提供されてない
現状はマクロを使うしかない
264名無しさん@そうだ選挙にいこう:2013/01/25(金) 18:50:26.47
>>261
Function 関数名(選択範囲, 連結文字)
  For Each c In 選択範囲
    s = s & c & 連結文字
  Next
  関数名 = Left(s, Len(s) - Len(連結文字))
End Function

使い方
=関数名(A1:J1,"-")
265名無しさん@そうだ選挙にいこう:2013/01/25(金) 18:55:55.46
>>261
Excelのバージョンが分からないのだが、
最新版を使ってるならこれでどうだ?

=Combined(A1,"-",E9)
注:A1からE9まで、全てのセルに文字列を入れてから使え!
266名無しさん@そうだ選挙にいこう:2013/01/25(金) 19:53:32.68
セルやシートやブックを対象に何かするときに
アクティベートしている状態でないといけないか、それともアクティベートしなくてもいいか、
その基準みたいなものはありますか?

>>248
さっぱり分かりませんがどういう意味ですか?
267名無しさん@そうだ選挙にいこう:2013/01/25(金) 20:23:33.06
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010

加工したファイルを保存するとき、同じファイル名があったら
「○○というファイルが既にあります。置き換えますか?」とメッセージが出ますが、
このとき「いいえ」または「キャンセル」をクリックするとエラーメッセージが出ます。
エラーメッセージを出さないようにするにはどうすればいいでしょうか?
無条件で上書きしたくないので、Application.DisplayAlerts = Falseでは駄目です。
268名無しさん@そうだ選挙にいこう:2013/01/25(金) 20:49:39.28
>>267
これVBA使って良い質問だよね?
んで、エラーメッセージってどんなの?
多分、保存をキャンセルしたことで
保存を前提に組んでるVBAのコードと不整合が生じてるんだと思うんだけど。
とりあえずエラートラップ入れて例外処理組んだら良いんでないかい?

つーかVBAの質問ならソースぐらいさらそうよ
269名無しさん@そうだ選挙にいこう:2013/01/25(金) 21:21:13.64
>>268
実行時エラー '1004'
'SaveAs' メソッドは失敗しました: 'Workbook' オブジェクト と出ます。

267の説明だけで、エラーは書かなくても分かると思い敢えて書きませんでした。
SaveAsまでの過程は関係ないので、ソースも不要だと思ってます。
270名無しさん@そうだ選挙にいこう:2013/01/25(金) 21:21:35.07
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

4行*4列にランダムな4桁の数字が入ってる表があります。
別途指定する下2桁と一致する4桁の数字の数を数えたいです。

4444 3141 1245 5364  指定の2桁=44   
4548 1241 1295 5364  その個数=?
1611 2044 3733 4955
2647 2728 3343 4950

この例だと(4444と2044だから、) その個数=2という風に。
modを使い、100で割った余りが44だったらプラス1みたいにすればいいと思うのですが。。。
sumproduct やcountifやsumif を使いましたがどれもうまくいきません。どうか知恵をよろしくお願いします。
271名無しさん@そうだ選挙にいこう:2013/01/25(金) 21:29:02.90
>>269
回答にソースが必要か否かの判断を自分で出来るくらいなら
回答そのものが不要だと思ってます。

以上。


>>270
=SUM((MOD(A1:D4,100)=44)*1)

を入力したらCtrl+Shift+Enterで確定
式が { } で囲われた状態になれば正しい結果が出てるはず
44の部分は指定数値を入力するセルアドレスに書き換えて
272名無しさん@そうだ選挙にいこう:2013/01/25(金) 21:39:39.36
>>271
なるほど、俺って案外できる子なのかも・・・

ちなみに、「以上」と書いたあとは句点を打たないんだよ。
勉強になったでしょ?
273名無しさん@そうだ選挙にいこう:2013/01/25(金) 21:41:53.76
残念、ハズレ
274247:2013/01/25(金) 21:53:52.77
どいつもこいつも、使えねーやつらだな。
275名無しさん@そうだ選挙にいこう:2013/01/25(金) 21:54:50.61
>>272
× 勉強になったでしょ?
○ 勉強になったでしょ。

日本語は正確にね。
276247:2013/01/25(金) 21:55:40.73
>>274はニセモノです。
277名無しさん@そうだ選挙にいこう:2013/01/25(金) 21:59:04.89
278名無しさん@そうだ選挙にいこう:2013/01/25(金) 22:27:39.91
>>270です。
>>271
ありがとうございました。一発でできました。すばらしいです。

ご相談なのですが・・・
会社のPCにはexcelがはいっていて成功したのですが、
このファイルを家の、excelが入ってないopen officeのcalで
使おうとすると、 open officeは  Ctrl+Shift+Enter は
対応してないようで、エラーになってしまいます。

Ctrl+Shift+Enterを使わない代用方法はありますでしょうか?
279名無しさん@そうだ選挙にいこう:2013/01/25(金) 22:29:35.41
>>275
問いかけだから、「勉強になったでしょ?」でおk
280名無しさん@そうだ選挙にいこう:2013/01/25(金) 22:32:13.75
間違った内容じゃ勉強にならないから、問いかけなら

「いいえ」

と答えてやればいいのか?
281名無しさん@そうだ選挙にいこう:2013/01/25(金) 22:45:05.72
以上。

初めて見たよw
こんなバカな書き方w
282名無しさん@そうだ選挙にいこう:2013/01/25(金) 22:51:12.75
>>247
A2=新宿、
B2=A2&"-"&B1
あとは右にオートフィル
縦にどうなってるかは知らんが、
まぁ横向きに出せればこれの応用で縦向きにも連結できるでしょ
>>278
それは配列数式って言うんだけど
openoffice2.0で既に対応してるっぽい
http://homepage1.nifty.com/tabotabo/ooo/oootop/ooo2/ooo2_calc_01.html
なにか間違っているか、もう少しぐぐったりして頑張ってみて。

と思ったけど試してみたら出来た
=SUM((MOD(A1:D4;100)=44)*1)
という式が正解。エラー508なら、多分カンマをセミコロンにするのを忘れている。
おれもすっかり忘れてたわ。
283267:2013/01/25(金) 22:53:53.41
>これVBA使って良い質問だよね?
んなこと書かなくても判るだろ?

>んで、エラーメッセージってどんなの?
書き込みをキャンセルしたときのエラーも知らんのか?

>つーかVBAの質問ならソースぐらいさらそうよ
もぅね(ry


>とりあえずエラートラップ入れて例外処理組んだら良いんでないかい?
これだけマトモな回答だったな
284名無しさん@そうだ選挙にいこう:2013/01/25(金) 23:08:46.87
>>282
>なにか間違っているか、もう少しぐぐったりして頑張ってみて。

・・・もう少しぐったりして・・・・
って読んじゃった。
285名無しさん@そうだ選挙にいこう:2013/01/25(金) 23:09:39.77
>>283
こちらからは質問者のスキルレベルは分からないし、
質問者が勘違いしていたり訳分からんことしてるケースはままあるわけで
ああいう文章からそれを読み取ることは難しいのよ

一応、ありがちなエラーの原因は予想したから回答だけはしておいたでしょ
エラーメッセージやソースの開示を求めるのは
そういった要素からなら過不足なく状況を把握できる可能性が高いからだよ
286名無しさん@そうだ選挙にいこう:2013/01/25(金) 23:43:23.32
>>270>>278 です。
>>282
ありがとうございました。
LibreOffice にしたら一発でできました。

そして、さっきはできなかったんですが、
いまやったらOpenOffice でもできました。
お手数おかけしました。
287名無しさん@そうだ選挙にいこう:2013/01/25(金) 23:46:12.03
>>281
見識が狭いんだね。
勉強になったかい?
288名無しさん@そうだ選挙にいこう:2013/01/26(土) 00:27:00.92
高卒ニートかw
論文を書いたこともなければ、ビジネス文章すら見たことないなら
知らないのも無理は無いなw

ハロワ行って、履歴書の書き方でも教わって来いよw
以上。 なんて書いたら注意されるぞw
289名無しさん@そうだ選挙にいこう:2013/01/26(土) 01:31:59.90
つーか、エラー対策としてエラートラップを入れて回避するなんて当たり前なんだがな。
もっとも、エラートラップは回避策の手段であり、エラーの原因を潰しておかないと
だめなのは言うに及ばず。
290名無しさん@そうだ選挙にいこう:2013/01/26(土) 06:19:33.38
なんでいつも正しい日本語講座が始まるんだ?
こんなとこの書き込みに正しい日本語の書き方なんて意識してねーし。
291名無しさん@そうだ選挙にいこう:2013/01/26(土) 08:24:53.72
>>288
もういいって
こういうのって無理すれば無理するほど
後で自分のカキコを読み返して恥ずかしくなるぞ
292名無しさん@そうだ選挙にいこう:2013/01/26(土) 08:29:55.91
以上とか書いて恥ずかしくない神経の奴に何言っても無駄だ
293名無しさん@そうだ選挙にいこう:2013/01/26(土) 08:36:13.33
履歴書w

箇条書きの最後に付ける「以上」と
文章の最後に付ける「以上」を混同してたわけか
奴が何故「以上。」に執拗に噛み付いてたか解った

まぁ、頑張って就職活動してくださいな
294名無しさん@そうだ選挙にいこう:2013/01/26(土) 09:03:58.46
ところで質問の件は解決ということなのかな
295名無しさん@そうだ選挙にいこう:2013/01/26(土) 09:10:21.71
解決

以上。
296名無しさん@そうだ選挙にいこう:2013/01/26(土) 09:27:04.13
これで両方解決か
297247:2013/01/26(土) 09:35:53.00
俺の問題が解決してないんですが
298名無しさん@そうだ選挙にいこう:2013/01/26(土) 09:43:59.63
例の2つ以外に、後出し条件にも対応した回答が更に2つ付いてるじゃん
ってことでこれも解決

有効な質問残件なし
299名無しさん@そうだ選挙にいこう:2013/01/26(土) 09:47:00.15
____________________
|| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄||
||                                ||
|| 回答にソースが必要か否かの判断を自分で出来るくらいなら
|| 回答そのものが不要だと思ってます。     ||
||                                ||
|| 以上。                          ||
||                                ||
||     箇条書きの最後は  以上。 です      ||  いいですね
||                        。  ∧_∧ 
||                         \(゚ー゚*) 
||____________________ ⊂⊂ |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄|
  ∧ ∧     ∧ ∧     ∧ ∧       |____|
  (・,, ∧ ∧  (  ∧ ∧ (  ∧ ∧
〜(_(  ∧ ∧ __(  ∧ ∧__(   ∧ ∧
  〜(_(  ∧ ∧_(  ∧ ∧_(   ∧ ∧  カジョウガキ?
    〜(_(   ,,)〜(_(   ,,)〜(_(   ,,)
      @(___ノ  〜(___ノ   〜(___ノ

      / は〜い、先生  \
                 以上。
300名無しさん@そうだ選挙にいこう:2013/01/26(土) 09:55:00.84
負け犬の遠吠え見苦しい・・・
301名無しさん@そうだ選挙にいこう:2013/01/26(土) 09:58:59.59
>>293
>箇条書きの最後に付ける「以上」

そもそも箇条書きに「以上」なんて書かないし、271は箇条書きじゃないし・・・
バカなの?



以上。
302名無しさん@そうだ選挙にいこう:2013/01/26(土) 10:05:16.87
的外れなこと言い続けてると、その時は悔しさを紛らわせることが出来ても
後から読み返したり思い返したりして、余計に惨めになるからほどほどに
303名無しさん@そうだ選挙にいこう:2013/01/26(土) 10:09:55.66
負け犬の遠吠え見苦しい・・・
てゆーか、こっち↓でやれ
http://toro.2ch.net/test/read.cgi/bsoft/1354358619/
304名無しさん@そうだ選挙にいこう:2013/01/26(土) 10:29:11.66
Excelの雑談ですらないんだけどな。

単に情報後出しどころか出し渋りした奴が
まともな指摘に逆ギレして暴れてるだけで。
305243, 245:2013/01/26(土) 10:33:03.91
>>298
これが解決してません。

A1235.xlsx
A22356.xlsx
A31415.xlsx
A4126.xlsx

上記のファイルを開いてる状態で、A1235.xlsx と A22356.xlsx のアクティブシートを
変数に入れるとき、ブックをActivateせずに変数に入れられますか?

For Each wb In Workbooks
 If Left(wb.Name, 2) = "A1" Then
  Workbooks(wb.Name).Activate
  Set ws1 = Workbooks(wb.Name).Worksheets(ActiveSheet.Name)
 ElseIf Left(wb.Name, 2) = "A2" Then
  Workbooks(wb.Name).Activate
  Set ws2 = Workbooks(wb.Name).Worksheets(ActiveSheet.Name)
 End If
Next
306名無しさん@そうだ選挙にいこう:2013/01/26(土) 10:35:20.11
ついでにセルやシートやブックを対象に何かするときに
アクティベートしている状態でないといけないか、それともアクティベートしなくてもいいか、
その基準みたいなものはありますか?
307243, 245:2013/01/26(土) 10:40:10.31
>>306
質問の意図が分からないですが、>>248ではダメですか?

今まではアクティブ、セレクトしてた
今はSet 変数にしてる

つまり、基準は後者です。
したがって、ブックをActivateせずに変数に入れられるかという質問です。
308名無しさん@そうだ選挙にいこう:2013/01/26(土) 10:46:22.97
>>305
Application.ScreenUpdatingdeで表示更新止めておけば
Activateメソッド実行しても逐一表示上でActivateされることはないよ

それすらダメだというなら、内部でしかActivateされず、
表示が切り替わる煩わしさもないActivateメソッド実行に
なんの弊害があるのか聞こうじゃないか
309306:2013/01/26(土) 10:53:20.37
>>307
さっぱり分かりませんがどういう意味ですか?

たとえばアクティブじゃないシートに対してSelectしようとすると
エラーが出てエラいこっちゃということになります。

でもその対象シートをアクティベートしたあとにSelectすると
問題なくできる、というようなことを言っています。
310名無しさん@そうだ選挙にいこう:2013/01/26(土) 11:12:27.37
よくわからんが、こういうこと?

For Each wb In Workbooks
Set ws = Worksheets(wb.ActiveSheet.Name)
MsgBox ws.Name
Next
311243, 245:2013/01/26(土) 11:15:55.39
>>308
Application.ScreenUpdatingdeは、いつも宣言しています。
画面が切り替わるのが嫌だから、という意味ではないです。

かなり前ですが、Range("A1").Select: Selection.Copyのような書き方は
無駄で動作も遅くなると指摘され、シンプルにしようと心掛けています。

そこで、今回の質問はActivateせずに変数に入れられるか否か、という
疑問が出てきたわけです。
結果的にできないなら、このままで大丈夫です。

>>309
なぜ理解できないのかが理解できません。
(しかも、二度も同じコピペとか)

アクティブじゃないシートに対してSelectしようとするとエラーが
出るのは、前スレあたりでも話題になりましたので知ってます。
ただ、今回の質問は For Eachで開いてるブックを探し、該当する
ブックのアクティブシートを変数に入れるものです。
(何度書けばいいのやら・・・)
312名無しさん@そうだ選挙にいこう:2013/01/26(土) 11:34:05.07
あれ、これでいいのか?

For Each wb In Workbooks
Set ws = wb.ActiveSheet
MsgBox ws.Name
Next
313名無しさん@そうだ選挙にいこう:2013/01/26(土) 13:52:15.46
Excel2010を立ち上げると、こんな感じで複数のファイルが出てきます。
ttp://uproda.2ch-library.com/627777hP9/lib627777.jpg

これらの中で、(a)と(c)は不要なので消したいのですが、ぐぐったら
「PERSONAL.XLSB」は各ユーザーのExcel起動用のフォルダ「C:\ユーザー\(アカウント名)\AppDate\Roaming\Microsoft\Excel\XLSTART」 に保存されます。
と出てきたものの、AppDateとかRoamingとかのフォルダが見つかりません。
スタート - 検索から *personal* で探しても出てきません。。。
どうやって消せばいいでしょうか?
あと、(b)が怪しいですが、消してもいいのでしょうか?
314名無しさん@そうだ選挙にいこう:2013/01/26(土) 14:28:50.98
>>313
(a)(c)を選んで、イミディエイトウィンドウで実行
DebugPrint ThisWorkbook.Path

(b)はアドインで分析ツールをはずせばよい
315243, 245:2013/01/26(土) 19:39:35.99
>>312
ありがとうございます。
シンプルでいいですね。
316名無しさん@そうだ選挙にいこう:2013/01/26(土) 19:41:51.52
しかし、スキルが低い回答者にレスされるのも迷惑だよね。
317名無しさん@そうだ選挙にいこう:2013/01/26(土) 19:55:32.72
自覚があるのはよいことです
318名無しさん@そうだ選挙にいこう:2013/01/26(土) 20:37:26.84
ごめんね
319名無しさん@そうだ選挙にいこう:2013/01/26(土) 23:38:59.78
以上。

これ、他スレでも使って流行らせようぜw
320名無しさん@そうだ選挙にいこう:2013/01/26(土) 23:47:07.52
結局リボンって使いやすいの?
321名無しさん@そうだ選挙にいこう:2013/01/26(土) 23:53:53.61
2003との併用は苦労する。
切り替えなら慣れで何とかなる。
322名無しさん@そうだ選挙にいこう:2013/01/27(日) 00:08:24.69
慣れ
323名無しさん@そうだ選挙にいこう:2013/01/27(日) 00:51:34.99
未だに悔しがってるとかどんだけw
つーか珍しくも何ともないから流行るもクソもないだろw
324名無しさん@そうだ選挙にいこう:2013/01/27(日) 07:03:10.48
新しく始める人に教える場合は
確かに2003までの頃より
2007でリボンにかわってからのほうが
覚えが速いみたい

あくまで俺個人の印象だし、それほど大量の人間に
教えているわけではないので、一般的かどうかはわからん
325名無しさん@そうだ選挙にいこう:2013/01/27(日) 07:35:13.26
>>324
あ、それあるかも。
326名無しさん@そうだ選挙にいこう:2013/01/27(日) 08:44:52.73
>>321-322,325
ありがとうございます
327名無しさん@そうだ選挙にいこう:2013/01/27(日) 10:31:55.32
>>316
246はともかく、266、306、309はトンチンカンだったなw
結局この人は質問者を困惑させたかっただけだろ?
328名無しさん@そうだ選挙にいこう:2013/01/27(日) 13:29:48.39
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel203
【3 VBAが使えるか    .】 勉強中
【4 VBAでの回答の可否】 可

@表
  [日付け] [1][2][3][4][5][6][7]・・・
  [たろう ] [a][a][b][b][c][a][x]・・・
  [じろう ] [b][c][x][a][a][b][a]・・・
  [はなこ] [c][b][a][x][b][c][b] ・・・
    :

A表
    [a勤務][b勤務][c勤務][やすみ]
[1日] [たろう][じろう][はなこ][    ]
[2日] [たろう][はなこ][じろう][   ]
[3日] [はなこ][たろう][   ][じろう]
 :
[31日]

@表からオートフィルタを使って名前を抽出し、同じシート内のA表に貼り付けたいです。
実際の人数はもっと大勢で勤務パターンも多いです。a、b、c・・・の各勤務の人数は1日最大7、8名です。A表は縦にどんなに長くなってもおkです。
1日のa勤務の人を抽出→コピー貼り付け→b勤務の人を抽出→コピー貼り付け→c勤務の人を抽出→コピー貼り付け→2日のa勤務の人・・・・
という具合に1ヵ月分を一気にやりたいです。今は1日づつチマチマやってます。
ネットであちこち見ましたがいまいちわかりません。よろしくお願いします。
329名無しさん@そうだ選挙にいこう:2013/01/27(日) 14:01:55.63
そんな貴方にピボットテーボ
330名無しさん@そうだ選挙にいこう:2013/01/27(日) 14:08:33.78
まず、たろう、じろう、はなこに社員コードつけた方がいいぞ
331名無しさん@そうだ選挙にいこう:2013/01/27(日) 14:15:09.28
@表からオートフィルタを使って名前を抽出し、同じシート内のA表に貼り付けできる?

俺には無理だわw
332名無しさん@そうだ選挙にいこう:2013/01/27(日) 16:12:57.27
Set MENU = Worksheets("MENU")
MENU.Copy After:=MENU

このようにして追加したシートの名前を"MENU2"に変え、
Set MENU2 = にセットするには?
333名無しさん@そうだ選挙にいこう:2013/01/27(日) 17:02:00.28
【1 OSの種類         .】 Windows Xp Home Edition SP3
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否

クイックアクセスツールバーに追加できる要素「ドキュメントの場所」で
表示できる長さを長くしたいのです。
Excel2003ではマウスでドラッグして長く出来たのですが、
Excel2007では同じ方法では出来ませんでした。
何か別の方法があるのでしょうか?
それともサイズ変更することは出来ないのでしょうか?
334名無しさん@そうだ選挙にいこう:2013/01/27(日) 17:21:42.95
>>333
固定だと思ふ

幅が足りなくなれば(そうとう多くのボタンを置かないとそうならないが)
横向きの▲▲が出てそこから選べる
335名無しさん@そうだ選挙にいこう:2013/01/27(日) 17:31:37.42
>>328
めんどいから作った
http://www.dotup.org/uploda/www.dotup.org3887843.xlsx
コピーするより連動させたほうが早いだろ
336333:2013/01/27(日) 19:30:56.74
>>334
そうですか固定ですか。残念です。
開いているファイルのフルパスをひと目で確認したいというニーズは、あんまり無いのですかね。
回答ありがとうございました。
337名無しさん@そうだ選挙にいこう:2013/01/27(日) 19:36:36.29
開いているファイルのフルパス、をニーズにするほうが問題と思う

似たようなファイルの数式を書き換えるならわかるが、
今のファイルがどれか・・・は、まずいと思う
338332:2013/01/27(日) 20:09:16.45
ねぇねぇ、332だけど誰か教えて〜
339名無しさん@そうだ選挙にいこう:2013/01/27(日) 20:10:40.56
>>336
「ドキュメントの場所」ではなく「ドキュメントの詳細プロパティ」ボタンじゃあかんかね?
その場に表示されるのではなくワンクリック必要だが
340名無しさん@そうだ選挙にいこう:2013/01/27(日) 20:33:23.85
>>333
リボンの下に表示するようにしても、だめかな。
341名無しさん@そうだ選挙にいこう:2013/01/27(日) 20:47:39.03
>>332 こういうこと?

Dim Menu As Worksheet
Set Menu = Worksheets("MENU")
Menu.Copy After:=Menu

Dim Menu2 As Worksheet
Set Menu2 = Menu.Next
Menu2.Name = "Menu2"
342332:2013/01/27(日) 21:13:55.78
>>341
ありがとう、醤油〜こと
343名無しさん@そうだ選挙にいこう:2013/01/27(日) 21:17:30.54
例えば10万から6%引くにはどうすればいいんですか
344名無しさん@そうだ選挙にいこう:2013/01/27(日) 21:21:13.06
>>343
a1=100000
b1=a1-a1*0.06
345333:2013/01/27(日) 21:29:44.31
>>339
パスがプロパティのウィンドウに収まらないほど長かったりするので、
ワンクリックで確認できないことが多そうです。

>>340
リボンの下に表示しても長さは変わらないようです。

回答ありがとうございました。
346名無しさん@そうだ選挙にいこう:2013/01/27(日) 21:57:33.43
>>345
じゃ、QATにフルパス表示するマクロを登録するとか
347名無しさん@そうだ選挙にいこう:2013/01/27(日) 22:00:28.02
>>343
100000-100000*6%
348名無しさん@そうだ選挙にいこう:2013/01/27(日) 22:14:45.82
>>345
確認するだけでいいなら、
オフィスボタン=>配布準備=>プロパティ
を選択すると、シートの上に新しいバーが出てくるので
ちょっと小さく(細く)しておいて、左上の矢印クリックすると
必要な時に、ファイル情報がみられる。
これだと面倒かな?

ただ、私のPCでそれやると、なぜかExcelがうまく終了しないんだけど
これはバグかな?
349名無しさん@そうだ選挙にいこう:2013/01/27(日) 22:27:03.81
=100000*(1-0.06)
350名無しさん@そうだ選挙にいこう:2013/01/28(月) 00:03:09.37
【1 OSの種類         .】 Windows8pro 64it
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

■Sheet1

 列     A    B    C    D    E

1      1    商品A  2000   -    -
2      2    商品B  1000   -    -
3      3    商品C  650    -    -
4      4    商品D  280    -    -

■Sheet2
                  前月売上 前月順位   
 列     A    B    C    D    E

1      1    商品B  1500   1000   2
2      2    商品D  700    -    -
3      3    商品A  500    -    -
4      4    商品C  100    -    -


A列は順位、C列は当月の売上金です。
Sheet2の1行目のように、D列に先月(Sheet1)の同商品の売上金、
E列に先月(Sheet1)の同商品の順位を、2行目以降も一気に表示
する場合はどうすればよろしいでしょうか。
351名無しさん@そうだ選挙にいこう:2013/01/28(月) 00:19:50.69
VLOOPうp RANK
352名無しさん@そうだ選挙にいこう:2013/01/28(月) 00:21:08.69
あ゙ーーーーーまちがえたぁーーーーーー

VLOOKうp RANK
あとはggrks
353名無しさん@そうだ選挙にいこう:2013/01/28(月) 08:47:01.10
>>344>>347>>349
これを関数でやるとしたら? 
354名無しさん@そうだ選挙にいこう:2013/01/28(月) 08:57:50.45
関数を使う必要がない計算に関数を使えという発想がわからないです(´・ω・`)
355名無しさん@そうだ選挙にいこう:2013/01/28(月) 09:16:11.58
>>353
Function WARIBIKI(a, b)
  WARIBIKI = a + a * b
End Function

A1=WARIBIKI(100000,-6%)
356名無しさん@そうだ選挙にいこう:2013/01/28(月) 13:39:40.19
【1 OSの種類         .】 Windows7 home 64bit
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

上司が2007とか2010のリボンスタイルが見にくいようで、2003しか使ってくれません。
2007と2003がインストールされているようですが、2007は専ら.xlsxの拡張子のファイルが送られてきた時に開く用と割り切っている様子で、普段は一切使いません。
AverageIFなどの便利な関数が使えなかったりA2:B50000と指定せずにA:Bと適当に範囲指定するとエラーが出たり条件付き書式が3つまでしか使えなかったりと、色々面倒です。
どうすれば、2007の方を常用してくれるようになるでしょうか?
357名無しさん@そうだ選挙にいこう:2013/01/28(月) 14:32:04.59
>>356
上司または部署でミーティングをする機会があればその場で提案しましょう
358名無しさん@そうだ選挙にいこう:2013/01/28(月) 14:40:02.67
>>356
「仕事の能率が落ちるので、新しいExcelの使い方を覚える気のない人はこの仕事から外れてください」と注意する
ただし上司に直接言うんじゃなくて、Excelが苦手な部下に言うといい
もちろん上司の近くではっきり聞こえるように

正式な名前は忘れたけど、第三者を使って間接的に意思を伝えるってのは
直接言いにくい時によく使われる手。「三角切れ」なんて言われることもある
そういう部下がいなければ、事前に頼んで演技に協力してもらう
359328:2013/01/28(月) 14:44:19.32
>>335様はじめ、レスくれた方ありがとうございます。
難しくて理解するのに少し時間がかかりそうだけど、がんばります。
仕事の都合でレス遅くなりました。ごめんなさい。
360名無しさん@そうだ選挙にいこう:2013/01/28(月) 14:59:55.20
>>356>>358
上司だけの問題ならその方向でもいいけど関係企業が2007に未対応でそこでも取り扱うデータである場合も
考慮する必要があるのかもしれない
361名無しさん@そうだ選挙にいこう:2013/01/28(月) 21:13:46.17
>>355
向上心を持てって言ってんだろ
お前のはそれ上昇志向だよ
362名無しさん@そうだ選挙にいこう:2013/01/28(月) 21:39:03.50
>>353
SUMって関数得意だべ?

=sum(=100000*(1-0.06))

でいいよw
363名無しさん@そうだ選挙にいこう:2013/01/28(月) 21:54:58.81
=w
364名無しさん@そうだ選挙にいこう:2013/01/28(月) 22:03:33.00
>>353が求めてるのはこれだろう
=PRODUCT(100000,SUM(1,-0.06))
365名無しさん@そうだ選挙にいこう:2013/01/28(月) 22:14:04.19
>>353ほれ
=IF(AND(A1=100000,B1=A1-A1*0.06 ),100000-100000*6%,100000*(1-0.06))
366名無しさん@そうだ選挙にいこう:2013/01/28(月) 22:27:27.37
面白いとでも思ってるの?
367名無しさん@そうだ選挙にいこう:2013/01/28(月) 22:34:45.76
だって関数でって言うことなんだもの
368名無しさん@そうだ選挙にいこう:2013/01/28(月) 22:54:23.33
>>356
うーん、俺なら上司の上司に直訴かなぁ。
以下、俺が同じ立場だったら送る報告書。

上司の上司様、上司がoffice2010に移行していただけなく、困っています。
以下、会社として移行しなければならない、具体的な理由を申し上げます。

office2003のサポートは一年後、切れます。それ移行はウィルスに対してとても弱くなります。
上司の表計算ソフト一つのために、会社の信用、顧客の個人情報を天秤にかけている状態とも言えます。

今なら2010に不慣れだったとしても、2003を使うことができます。
一年もあれば併用しつつ、十分意向できると思います。
実際に私も2003からの移行には戸惑っていました。
サポートの切れた一年後に意向すると、強制的に2010しか使うことが出来ず、
急な用事に対処できない、また余計なストレスも貯まると思います。

以上の理由から、上司に対して今すぐにでも、2010に移行していただくように
取り計らっていただけないでしょうか。
よろしくお願いします。

って感じかな。どうだ、ダメか。
369名無しさん@そうだ選挙にいこう:2013/01/28(月) 22:58:10.59
エクセルの無料の練習用ソフトってどっかに落ちてないですかね?
370名無しさん@そうだ選挙にいこう:2013/01/28(月) 22:59:04.27
あ、ごめ
相談場所間違えた。
371名無しさん@そうだ選挙にいこう:2013/01/28(月) 23:03:03.37
368はニートか?
372名無しさん@そうだ選挙にいこう:2013/01/28(月) 23:04:11.71
>>369
基本的なことならOpenOffice
短期間で最新版なら公式の試用版
373名無しさん@そうだ選挙にいこう:2013/01/28(月) 23:08:50.91
356の上司は決して間違ってないと思う。
上司はマネージメントが仕事であって、エクセルの関数が使えなくても問題ないし、
部下が作った資料(目標に対する結果)が見られればいいだけ。
サポートが切れたら、言われなくても乗り換えるだろうよ。
374名無しさん@そうだ選挙にいこう:2013/01/28(月) 23:29:46.54
>>373
部下が2007で作った資料が見れなかったらダメ上司じゃんw
375名無しさん@そうだ選挙にいこう:2013/01/28(月) 23:50:13.83
>>374
2003でもxlsxを見れるアドインかなにかはあるよ
376名無しさん@そうだ選挙にいこう:2013/01/28(月) 23:56:36.02
>2007と2003がインストールされているようですが、2007は専ら.xlsxの拡張子のファイルが送られてきた時に開く用と割り切っている様子

インスコされてるんですってよ
377名無しさん@そうだ選挙にいこう:2013/01/29(火) 00:02:25.72
てゆーか、356は何で困ってるんだろう?
2007の関数を上司に使ってほしいわけ?(バカジャネーノ

上司が使ってるエクセルのバージンもハキ〜リしてないのは、
普段からコミニュケェーソンがとれてないんじゃないの?
378名無しさん@そうだ選挙にいこう:2013/01/29(火) 01:12:25.28
>>377
いや、2003発売から10年も経ってるんだぜ
互換性もあるし、セキュリティ面でまずい
移行しない理由が「慣れていない」というのも最高にかっこわるい
そんな上司は持ちたくない
379名無しさん@そうだ選挙にいこう:2013/01/29(火) 06:55:00.25
>>378
でも新しいモノ受け付けない現状維持大好きな上司はどの会社にも一人はいるけどな。
380名無しさん@そうだ選挙にいこう:2013/01/29(火) 12:28:11.50
.xls使用禁止。
.xlsxで統一する。
381名無しさん@そうだ選挙にいこう:2013/01/29(火) 12:31:43.64
上司の扱い方までここで質問してんじゃねーよ
382名無しさん@そうだ選挙にいこう:2013/01/29(火) 17:57:57.22
オートフィると、アイコンみたいな感じのやつが出るんですが、Escキーを押しても消えません><
どーやったらこのウザすアイコンみたいな感じのやつを消せますか?
383名無しさん@そうだ選挙にいこう:2013/01/29(火) 18:17:36.27
>>382
無視して次の操作(入力でもなんでも)すれば勝手に消える
ほっとけばいい
384名無しさん@そうだ選挙にいこう:2013/01/29(火) 19:13:40.42
>>270
です。前回はありがとうございました。

次は、別途指定する下3桁と一致する4桁の数字の数を数えたいです。
044 の場合、 2044だけなので、1個が正解なのですが、44の数も一緒に
数えてしまいうまくいきません。最後はE1に数字を入れるだけでF1,F2が自動で出るようにしたいです。

Rightで右から3桁とか、Textにするとかやったのですが、
どうもうまくいきません。最後は教えてもらった Ctrl+Shift+Enterで確定
でいいと思うのですが。どうか知恵をよろしくお願いします。

  A   B   C  D    E       F
1 4444 3141 1245 5364  044 = 指定の下3桁は   
2 4548 1241 1295 5364        個数=? 個
3 1611 2044 3733 4955
4 2647 2728 3343 4950
385名無しさん@そうだ選挙にいこう:2013/01/29(火) 21:31:12.18
リボンを2003のツールバー表示みたいにするアドインだかフリーソフトだかがあったような気がする
386名無しさん@そうだ選挙にいこう:2013/01/29(火) 22:46:34.29
>>381
VBAでの解答が欲しかったのさ
387名無しさん@そうだ選挙にいこう:2013/01/30(水) 01:15:54.37
上司にExcelを教えるVBA
388名無しさん@そうだ選挙にいこう:2013/01/30(水) 02:09:09.60
356もおバカだが、368も勝るとも劣らずwww

大企業は未だに2003が主流なわけで、パソコンはリース、
ソフトは自前だから仕方が無い。
社員全員のソフトを更新したら、億単位で金が掛かるからなぁ・・・
その点、中小はいいよねw
389名無しさん@そうだ選挙にいこう:2013/01/30(水) 02:10:50.46
x 社員全員
o PC所有者全員
390名無しさん@そうだ選挙にいこう:2013/01/30(水) 18:04:27.23
よほど規模の小さい企業でなきゃライセンス契約だろ
億単位ってどんだけムダ金使ってんだ(´・ω・`)

確かに未だに2003使ってる企業が多々あるのは知ってるが
2007やら2010も入ってて、ただデータをやり取りする際は
面倒が起きにくいようにxlsを使うだけというケースがもっとも
多いように思うぞ
391名無しさん@そうだ選挙にいこう:2013/01/30(水) 19:41:11.31
中小にすら就職できないニートの戯れ言だから放っておけ
392名無しさん@そうだ選挙にいこう:2013/01/30(水) 19:43:27.81
2003ってセキュリテーに問題あんの?
393名無しさん@そうだ選挙にいこう:2013/01/30(水) 19:58:27.26
>>392
今は別に
普通に更新かけてりゃ2007/2010と変わらん

ただし2003のサポートは2014年の4月に終了する
それ以降はなにかあってもMSは面倒見ない
394名無しさん@そうだ選挙にいこう:2013/01/30(水) 21:50:25.45
ほぅほぅ、つまり>378は世間知らずってことですね
395名無しさん@そうだ選挙にいこう:2013/01/30(水) 22:33:37.85
すみません 知ってたら教えてください

2月7日にOffice2013が発売されますね
Excel2013だけ買おうかと思ってますが
今回はアップグレード優待版はないのでしょうか?
396名無しさん@そうだ選挙にいこう:2013/01/30(水) 22:58:43.63
>>395
なんか無さそう
officeならあるんだけどね
397名無しさん@そうだ選挙にいこう:2013/01/31(木) 00:20:08.44
マクロで、メッセージを出して[はい]なら何もせず続け、[いいえ]なら終了とするとき、
ググって探しましたが、もっと簡素化できますか?

Q = MsgBox("おkですか?", vbYesNo)
Select Case Q
  Case vbYes
    '何もしない
  Case vbNo
    Exit Sub
  Case Else
    Exit Sub
End Select
398名無しさん@そうだ選挙にいこう:2013/01/31(木) 00:35:05.42
>>397
VBAはよくわからんけど変数Qはなくてもいいんじゃない?

Select Case MsgBox("おkですか?", vbYesNo)
  Case vbYes
    '何もしない
  Case vbNo
    Exit Sub
  Case Else
    Exit Sub
End Select
399名無しさん@そうだ選挙にいこう:2013/01/31(木) 00:36:42.74
>>397
If MsgBox("おkですか?", vbYesNo) <> vbYes Then Exit Sub
400名無しさん@そうだ選挙にいこう:2013/01/31(木) 00:37:14.88
アタイ阻止
401名無しさん@そうだ選挙にいこう:2013/01/31(木) 00:45:55.67
>>399
すげーw
402名無しさん@そうだ選挙にいこう:2013/01/31(木) 01:48:36.45
ifの評価の中で色々するのは、間違いそうですごく抵抗がある
慣れてないだけかな
403名無しさん@そうだ選挙にいこう:2013/01/31(木) 10:08:23.57
>>399は色々って程のことはしてないだろ

If 変数 比較演算子 定数 Then

の「変数」部分を関数にしただけのオーソドックスな使い方
でも俺はMsgBoxの場合、OkOnlyやOkCancelならIf使うけど
YesNoならCancel無しの2値でもSelect Caseだな

因みにYesNoCancelではなくYesNoなら、[×]ボタンも無効になって
Cancelが返ることは無くYesかNoだけなので、SelectCaseでやるならCase Else要らないし、
Ifでやるなら<> vbYesではなく= vbNoでExitしたほうが「[いいえ]なら終了とする」の仕様に合ってるな
404名無しさん@そうだ選挙にいこう:2013/01/31(木) 11:48:52.99
>>395
EXCEL2010単体の人に適用できるかどうかわからないけど
とりあえずOFFICEの無償アップグレードプログラムに登録しておいてアップグレードが可能であると向こうで判断
されたらアップグレードを行う。
で、アップグレードのなかでEXCELだけアップグレードするようにすればいいかと
405404:2013/01/31(木) 11:54:00.25
>>395
補足
無償アップグレードプログラム
http://www.microsoft.com/ja-jp/office/2013offer/default.aspx

通るかどうかわからないけどやらないでおくよりやっておいてみた方がいいかと。
406名無しさん@そうだ選挙にいこう:2013/01/31(木) 23:40:13.86
VBA初心者ですが
プロシージャ名の最後を下記のように数字にして

Sub name1()
命令1
End Sub

Sub name2()
命令2
End Sub

Sub name3()
命令3
End Sub

計算結果に応じて同じ数字の命令へ飛ばしたいのですが
goto 等で呼び出すプロシージャ名の最後を変数に指定するには
一体どうすれば良いのでしょうか?

goto name & 変数1〜3

で出来そうな物ですが動いてくれません。
宜しくお願い致します。
407名無しさん@そうだ選挙にいこう:2013/02/01(金) 00:31:51.05
>>406
Run
408名無しさん@そうだ選挙にいこう:2013/02/01(金) 05:24:15.12
>>407
Run は外部プログラムの実行と説明されているようですがどうやって使うのでしょうか?
スペース空けて記述って便利そうでもなれないと何が何だかよくわかりませんね、
409名無しさん@そうだ選挙にいこう:2013/02/01(金) 05:37:46.11
VBAはなにやら暗黙のルールがありすぎ!訳わからん!
そういうのを細かく網羅して解説しているサイトは無いのでしょうか?
410名無しさん@そうだ選挙にいこう:2013/02/01(金) 05:46:37.46
PHPとかなら¥記号で文字定期と変数を切り分けたりしますが VBAでは一般文字と変数をどうやって区別させているのでしょうか?
411名無しさん@そうだ選挙にいこう:2013/02/01(金) 06:41:38.75
>>409
Webに結構あるよ
412名無しさん@そうだ選挙にいこう:2013/02/01(金) 08:35:48.85
暗黙のルールってそんなにあったっけ
413名無しさん@そうだ選挙にいこう:2013/02/01(金) 08:55:35.79
クッソ古いのを継ぎ足し継ぎ足しで作ってるから、暗黙のルールっていうかガラパゴス化して
他の言語やってる人から見たら意味わからんこと多いんだろ。
414名無しさん@そうだ選挙にいこう:2013/02/01(金) 19:08:25.82
SheetsとWorksheetsの使い分けを教えてホスィ〜
Sheets("Sheet1").Selectでも動作するし、Worksheets("Sheet1").Selectでも動作する
415名無しさん@そうだ選挙にいこう:2013/02/01(金) 19:40:33.20
特に困っているわけではないのですが、CountIFなどで範囲指定する際に必要以上に範囲を広げると処理速度が遅くなったりするでしょうか?

例:
=COUNTIF(C1:C90000,A1)

今は200件くらいしかデータがありませんが、不要になったデータを削除せずに放置しておけば5年後10年後には1000件、2000件に達するかなぁと思い、あとになってエラーが出てからデータを直すよりは今のうちにセットしておいたほうがラクかなぁと。
2007以降だったらC:Cでもだいじょぶみたいなのですが、2003ベースなんで…
416名無しさん@そうだ選挙にいこう:2013/02/01(金) 20:15:02.33
だから そういうのはテーブルつかえって
417名無しさん@そうだ選挙にいこう:2013/02/01(金) 20:23:39.92
2003だと90000行なんて無いが
418名無しさん@そうだ選挙にいこう:2013/02/01(金) 21:16:53.35
ついでに言うと2003にはテーブルないぞ>416
リストというテーブルもどきならあるが
419名無しさん@そうだ選挙にいこう:2013/02/01(金) 21:42:29.25
構造化参照べんりなのに つかえないってかわいそう

それはともかく、テーブルが使えないなら最下行をダミーにして
行を追加するときはダミーの上に挿入すればいい
ダミーまで範囲指定しとけばいくら行を追加しても問題ない
420名無しさん@そうだ選挙にいこう:2013/02/01(金) 21:46:31.22
>>416
テーブルとやらを使えば、エクセルがよくわからない素人が、出力されたデータを貼り付けるだけでも結果表示をさせることが可能でしょうか?
コンピュータから出力されたデータがただのデータの羅列なので、見やすく整形するのが今回の目的で、フォーマットだけ作ってあとは現地のみなさんでデータだけ貼ってもらえれば…と思ってます。
最初からわかりやすい形で出力してくれるのがベストなんですけどね

>>417
そーいうのいいから結果だけ教えろよエクセル中級が!
421名無しさん@そうだ選挙にいこう:2013/02/01(金) 22:26:07.03
2回目以降の質問では名前欄に初回質問の番号を入れよう。
422名無しさん@そうだ選挙にいこう:2013/02/01(金) 23:01:38.92
統合とオートサムを使う串刺し集計って何が違うんですか?

同じ範囲のシートしか合計出せないなら串刺しいらないと思いませんか?
423名無しさん@そうだ選挙にいこう:2013/02/01(金) 23:44:16.45
>>412
dim a as string
dim b as string
dim c as string
c = a + b
これでエラーにならないんだぜ。
>>415
その部分を書き換えた場合は当然、遅くなる
d1を書き換えても遅くはならない。
424名無しさん@そうだ選挙にいこう:2013/02/02(土) 02:13:01.21
>>423
暗黙のルールと暗黙の型変換は違うだろ

暗黙の型変換ってマニュアルに明記されてなかったっけ?
ざっと探してみたけど、VBのドキュメントはあったけどVBAが見あたらん
425名無しさん@そうだ選挙にいこう:2013/02/02(土) 02:17:34.08
>>414
Sheetsにはワークシート以外にもグラフシート、モジュールシート、ダイアログシート、マクロシートを含む
Worksheetsはワークシートだけ
大半は過去の遺物なので使い分ける必要はない
426名無しさん@そうだ選挙にいこう:2013/02/02(土) 11:42:37.27
例えば家計簿を作って1月分にバランスシートを作って新しいブックにコピペすると
参照した数字にレフ!が出ます
貼り付けの画面で値と数値の書式123%を貼り付けたら正しく表示されるんですが
バランスシートで幅を広げたそれは無効になってしまいます
元の列幅を維持にしたらいけるんですがややこしいのは四半期、上半期、通期など
ではコピペできないんです
説明はわかりにくいんですがこれは素直に新しくバランスシートを作ったほうがいいんでしょうか
427名無しさん@そうだ選挙にいこう:2013/02/02(土) 11:49:56.30
>>426
まず、何の理由で#REF!が出ているのか
それを先に自分で追求しなはれ

#REF!は数式内で無効なセルを参照しているときのエラー
コピペった段階で、参照できないセルができているはずだから
428名無しさん@そうだ選挙にいこう:2013/02/02(土) 17:40:44.37
個人マクロブックに保存したユーザー定義関数を呼び出すときに
personal.xlsb!......を省略する方法は無いでしょうか?
429名無しさん@そうだ選挙にいこう:2013/02/02(土) 17:46:35.06
Sub test()

If Range("b8") > 0 Then

Range("A1").Value = "大きい"
Else
Range("A1").Value = "小さい"
End If
End Sub

VBA初心者ですが上のような判定命令で
あまり複雑にせずにゼロの場合はスルーさせる方法を教えて下さい
宜しくお願い致します。
430名無しさん@そうだ選挙にいこう:2013/02/02(土) 18:52:26.98
>>429
ElseをElseIfにするだけでいいのでは?

ElseIf Range("b8") <> 0 Then
Range("A1").Value = "小さい"
431名無しさん@そうだ選挙にいこう:2013/02/02(土) 19:23:01.28
>>430
うまくいきました!!どうもありがとうございました。
432名無しさん@そうだ選挙にいこう:2013/02/02(土) 20:49:17.56
VBA初心者ですが
=0- (A3+P5)
のようなカッコを含む計算式をVBAで記述刷る場合一体どうすれば良いのでしょうか?

テスト変数 = 0 - ( Range("A3) + Range("P5"))

とあてずっぽで入れてみましたが当然エラーが出ました・・・(笑)
433名無しさん@そうだ選挙にいこう:2013/02/02(土) 21:24:09.53
それだけ見ると"A3 の右に"が足りないだけじゃんと思うけど
なんで「当然エラーが出ました・・・(笑)」と思ったのか
434432:2013/02/02(土) 21:33:11.66
>>433
なぬーーw お恥ずかしい・・全く問題無く実行出来ました。 ありがとうございました。
435名無しさん@そうだ選挙にいこう:2013/02/02(土) 21:55:39.72
色変わらんの?
436名無しさん@そうだ選挙にいこう:2013/02/02(土) 23:07:35.98
【1 OSの種類         .】 WindowsXP 7 8
【2 Excelのバージョン   】 Excel2003 か 2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

20130101_ America_001
20130202_America_001
20130202_Brazil_001
20130202_Canada_001
20130204_America_001
20130302_Canada_001
20130402_Brazil_001

のようなデータがあるとして、
真ん中にあるような文字(国名)だけの個数を数える関数はありますか?
437名無しさん@そうだ選挙にいこう:2013/02/02(土) 23:22:11.51
>>436
真ん中にある文字だけを、文字列操作関数使って作業列に書き出す
あとは種類数(>>436の例では3種類)が知りたいのか、種類別の個数(同、3個、2個、2個)が知りたいのか解らないが
どっちにしろ対象部分だけ抽出しちゃえばどうにでも料理できるだろ

あとVBA可になると、関数は探して使うものではなく、作って使うものになるからな
作業列使いたくないとかなら、配列変数に対象文字だけ抜き出して処理するユーザー定義関数作ってもいいし
438名無しさん@そうだ選挙にいこう:2013/02/03(日) 00:28:14.88
excel2010


セルに外部のエクセルファイルへのリンクがあるファイルがあるのですが、
元のファイルがなくなっても表示され続けています。

おそらく、元ファイルのデータを一緒に保存しているからだと思うのですが、
その認識であっているでしょうか?

また、表示されるセルとされないセルがあります。
一緒に保存される外部ファイルの範囲というのはどうやって決まるのでしょうか?
たとえば、日付を入力すると、外部ファイルのその指定日の行が表示される、といった
数式で、去年くらいまでは表示されるのですが、それ以前のは表示されずエラーと出ます。

よろしくお願いします。
439名無しさん@そうだ選挙にいこう:2013/02/03(日) 00:44:37.20
>>436
その列の該当箇所を選択して、「データ」メニューから「区切り位置」を選択して
「_」を指定して分割する
http://i.imgur.com/AMiP7yn.png
そうすると、こうなる
http://i.imgur.com/ZellN7P.png
あとはcountif関数で数えたり好きにすれば良い
440名無しさん@そうだ選挙にいこう:2013/02/03(日) 01:41:31.25
>>438
知らん。
試してみたが、おそらくある程度残っているのだろう
消したほうが無難
個人的な意見だと、これはIE準拠臭い
不安定な外部ファイルはあまり使わないほうがいいと思う
441名無しさん@そうだ選挙にいこう:2013/02/03(日) 02:20:30.63
>>440
そうですか・・・・・・・
同じブック内のシート同士の参照だと、シートを消したとたんにエラー表示されるのに、
違うブックへのリンクのところは残ってるんでどういう仕様なのかと思ったのです。

希望的には残っててほしいんですが、
442名無しさん@そうだ選挙にいこう:2013/02/03(日) 08:17:41.07
違うブックでも、そのブックを開いているときにシートを消すと、エラーになりませんか。

「外部参照のエラー」も記録されているのかも。
443名無しさん@そうだ選挙にいこう:2013/02/03(日) 12:57:02.89
>>442
その通りになりました。

参照している外部のシート丸ごと保存してるんですかね・・・
参照元のセルに任意の管理番号を入力すると、参照先の消えている
シートのデータが表示されますから。

実際に参照しているセルのデータだけ保存されるのであればわかりますが、
まだ一度も参照していないセルの値まで管理番号を変更すれば見れてしまうんですから。

もう少し検索してみます。ありがとうございました。
444名無しさん@そうだ選挙にいこう:2013/02/03(日) 13:16:56.26
>>443
管理番号というのが意味不明だけど、
こんな感じらしい
http://okwave.jp/qa/q3909392.html

外部参照は基本的に使わないほうが、良いと思う
445名無しさん@そうだ選挙にいこう:2013/02/03(日) 13:57:08.96
VBA初心者ですが
VBAはExcelのシートファイルをアプリで開いてない状態でも(保存されているファイルに対して直接)
特定のセルの情報を書き換える事は可能なのでしょうか?
446名無しさん@そうだ選挙にいこう:2013/02/03(日) 14:09:54.31
>>445
出来るっちゃぁ出来る
CreateObject("Excel.Application")でExcelオブジェクトを作って、対象ファイルを非表示で開けばいい
447名無しさん@そうだ選挙にいこう:2013/02/03(日) 14:17:05.17
>>446
なるほどちょっと一手間かかりそうですね、ありがとうございます。
448名無しさん@そうだ選挙にいこう:2013/02/03(日) 14:20:20.08
>>446
保存されているバイナリが直接リライトされれば究極の高速化だと思っていたのですが
やはりオープンは必要なわけですね。w
449名無しさん@そうだ選挙にいこう:2013/02/03(日) 16:01:31.70
>>444
管理番号というのは、業務の話です。エクセルとは関係ありません。すいません。
見てみます。ありがとうございまs。
450名無しさん@そうだ選挙にいこう:2013/02/03(日) 20:12:51.76
>>448
書き換える部分と内容もバイナリ(バイナリアドレス&バイナリ値)で指定できるなら
直接リライトも出来るよ
451名無しさん@そうだ選挙にいこう:2013/02/03(日) 21:04:51.07
それって下手したらエクセルファイルが壊れるんじゃ
452名無しさん@そうだ選挙にいこう:2013/02/03(日) 23:26:52.52
xlsの書き換えは難しいけど、xlsxなら中身は単なるテキストだからけっこう自由に読み書きできるよ
453名無しさん@そうだ選挙にいこう:2013/02/04(月) 00:27:15.90
>xlsxなら中身は単なるテキスト

バイナリだよw
454名無しさん@そうだ選挙にいこう:2013/02/04(月) 00:34:14.33
思いっきりバイナリデータが入ってた
と思ったけどぐぐったらxmlデータとある
ドユコトー
455名無しさん@そうだ選挙にいこう:2013/02/04(月) 04:31:21.61
拡張子をzipに変えてみ
456名無しさん@そうだ選挙にいこう:2013/02/04(月) 07:54:50.17
>>455
ありがとう!
こういうデータだったのか
457名無しさん@そうだ選挙にいこう:2013/02/04(月) 16:56:00.31
【1 OSの種類         .】 WindowsVista
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 なるべく関数でお願いします

ア あ
エ え
ア え
ア あ ☆
イ い

上記の様な表があるとき
1行目と4行目はA列/B列で同じ組み合わせとなりますが
その際、二つ目以降の重複(上記で言うと4行目 とそれ以降の同組み合わせ)に対し
識別のための印を付けられる判定ができる計算式を教えてください。
よろしくお願い致します。
458名無しさん@そうだ選挙にいこう:2013/02/04(月) 17:31:00.72
>>457
次のように処理するのはどう?
2行目からデータが入っていると仮定して
@D列に1行目から連番を振る。
AA列とB列をキーにソートする
BC列の2行目に次の式を入れる
 =if(A1&B1=A2&B2,"☆","")
CC列の式を下にコピーする
D結果をコピーし、同じ列に値貼り付けをする。
ED列の連番で並び替えて行を元の順序にする。
459名無しさん@そうだ選挙にいこう:2013/02/04(月) 17:31:43.36
ちょい修正
@D列に2行目から連番を振る。
460名無しさん@そうだ選挙にいこう:2013/02/04(月) 18:35:28.74
3ヶ月前の日付を関数で求めるのってどうするんでしたっけ? ( この際土日祝日など一切無視で)

vbaなら DateAdd("m", -3, Now()) で出せるんだけど
461名無しさん@そうだ選挙にいこう:2013/02/04(月) 18:48:25.96
edate(日付,-3)
462名無しさん@そうだ選挙にいこう:2013/02/04(月) 18:51:52.71
>>461
ありがとう!
463457:2013/02/04(月) 19:07:04.83
>>458
やってみます!
助かります!
464名無しさん@そうだ選挙にいこう:2013/02/04(月) 20:56:11.26
1 8 1 0 3 6 9 5 9 1 9 6 9 3

と並んでるとします。

この羅列から 3 6 9 の次に来る数字を表示させる関数はありますか?

また、3 6 9 の次に該当する数字が2個ある場合、2個とも表示させる方法はありますか?

よろしくお願いします。
465名無しさん@そうだ選挙にいこう:2013/02/04(月) 21:10:31.46
>>464
数字は各セルに1桁ずつ?
セル範囲が決まってるなら全部文字列として連結してFINDで場所を調べる
複数あって数が不定の場合は、作業セルをたくさん使うかVBA
466名無しさん@そうだ選挙にいこう:2013/02/06(水) 06:33:42.05
製造業の日報集計したいんだけどエクセルで出来るかな。

日報に書かれる内容は、作業者、日付、品名、工程、良品数、不良種類、不良数
一人の作業者が複数の品名、行程をする。
一つの工程に対して不良種類と不良数は複数になる。

アクセスならテーブル3つで
テーブル1  日報ID、日付、作業者
テーブル2  詳細ID、日報ID、品名、工程、良品数
テーブル3  詳細ID、不良種類、不良数
こんな感じになるんでしょうか。
エクセルでやる場合はどうしたらいいかな?
467名無しさん@そうだ選挙にいこう:2013/02/06(水) 08:07:37.77
>>466
テーブルの作り方に正解はないよ
目安となる正規化という概念はあるけど
466みたいにシートを分けて、index+matchで値を引っ張ってくればok
468名無しさん@そうだ選挙にいこう:2013/02/06(水) 08:29:56.53
>>466
テーブル3つ→ワークシート3つにする
シート1のA列=日報ID、B列=日付、C列=作業者
のように決めてデータを上から順番にどんどん詰めていく
Excelをデータベースのように使う場合はこれが基本
469名無しさん@そうだ選挙にいこう:2013/02/06(水) 08:59:45.34
>>466
集計目的ならアクセス的思考を取っ払え

そのまま作業者、日付、品名、工程、良品数、不良種類、不良数 の列で
あとはズラズラデータを入力していけばよい

でピボットテーブルで終わり
作業時間の列も増やすと、品名ごとに総作業時間も出るから工数管理も楽

慣れたらピボットテーブル作成時のマクロを記録して
編集画面で週単位とか月単位とかでまとめ直したり
標準では3つまでのフィールドを追加したりいろいろ強引に作れる
470名無しさん@そうだ選挙にいこう:2013/02/06(水) 09:02:31.29
ワークシートは1つでよい
ピボットテーブルを3つでもいくつでも管理に使う分だけ作っといて
あとは更新だけすればよい
471名無しさん@そうだ選挙にいこう:2013/02/06(水) 09:05:42.19
更に慣れたら
今度はワークシートをアクセスからリンクさせ
リンクで得たアクセスのシートからレポートを作成し
必要な書式で納品書だの請求書だの書類作成・保管すればよい
472名無しさん@そうだ選挙にいこう:2013/02/06(水) 09:24:33.64
>一つの工程に対して不良種類と不良数は複数になる。

恐らくこれを気になってるんだろうけど

2/5 A男 納豆 包装 外観キズ 3
2/5 A男 納豆 包装 外観凹み 1
2/5 A男 納豆 包装 中身漏れ 5
のように同じ日付、同じ作業者、同じ工程でもそのまま不良種類があるだけデータを記入していけば良い

数10人規模の製造管理なら1年分入力したって問題ないデータ量だよ
473名無しさん@そうだ選挙にいこう:2013/02/06(水) 09:43:14.31
納豆が漏れたのか
…ヌルヌルになるな
474名無しさん@そうだ選挙にいこう:2013/02/06(水) 11:02:25.81
ヌルポ
475名無しさん@そうだ選挙にいこう:2013/02/06(水) 11:33:40.97
ガッ
476名無しさん@そうだ選挙にいこう:2013/02/06(水) 21:50:33.34
B5〜C12セルに数式または空白セルがあり、0を超える数字と、
セルに付けたコメントをE5〜G12セルに転記するマクロでの質問です。
ttp://uproda.2ch-library.com/631929y1l/lib631929.jpg

--【条件】------------------------------------------------
 B列のセルが0より大きい数値なら、その数値をE列のセルに書く
 B列のセルにコメントがあれば、そのコメントをG列のセルに書く
 C列のセルが0より大きい数値なら、その数値をF列のセルに書く
--------------------------------------------------------

これら8通りの組み合わせを次のIF文で書きましたが、
重複しているところもあり散漫に感じます。
どこか無駄を省くことはできますか?
 
477476:2013/02/06(水) 21:51:21.63
Sub sample()
  Dim i As Integer
  For i = 5 To 12
    If Cells(i, 2).Text <> "" Then
      If Cells(i, 2).Value > 0 Then
        Cells(i, 5).Value = Cells(i, 2).Value
        If Cells(i, 3).Value > 0 Then
          Cells(i, 6).Value = Cells(i, 3).Value
          If Cells(i, 2).NoteText() <> "" Then
            Cells(i, 7).Value = Cells(i, 2).NoteText()
          End If
        End If
      Else
        If Cells(i, 2).NoteText() <> "" Then
          Cells(i, 7).Value = Cells(i, 2).NoteText()
        End If
        If Cells(i, 3).Value > 0 Then
          Cells(i, 6).Value = Cells(i, 3).Value
        End If
      End If
    Else
      If Cells(i, 3).Value > 0 Then
        Cells(i, 6).Value = Cells(i, 3).Value
      End If
    End If
  Next i
End Sub
478466:2013/02/06(水) 21:52:45.12
>>466です。みんなレスありがとう。
エクセルでシート3つにするとデータの修正とか繰り返した場合にどこかで矛盾が出てきそうだから不安でした。
皆はどうしてるのかなと思って。

エクセルは関数とVBAも少しはわかるんですがピボットテーブルが全くわかりません。でも集計ならピボット使うべきだと思うの
でピボットで扱いやすい形に持っていきたいです。

>>472の内容に良品数の項目入れた場合、良品の行には良品だけ、不良の行には良品数が空白という形になりそうですが、
この形でピボットテーブルは問題無く使えますか?問題無ければとりあえずデータ入力はこの形で進めておいて、
ピボットの使い方は本一冊買ってきて勉強しようと思ってます。

日付 名前 品名 工程 良品数 不良種 不良数
2/5  A男 納豆 包装 200    
2/5  A男 納豆 包装       外観キズ 3
2/5  A男 納豆 包装       外観凹み 1
2/5  A男 納豆 包装       中身漏れ 5
479名無しさん@そうだ選挙にいこう:2013/02/06(水) 22:05:08.99
>>476-477
For i = 5 To 12
  If Cells(i, 2).Value > 0 Then Cells(i, 5).Value = Cells(i, 2).Value
  If Cells(i, 3).Value > 0 Then Cells(i, 6).Value = Cells(i, 3).Value
  If Cells(i, 2).NoteText() <> "" Then Cells(i, 7).Value = Cells(i, 2).NoteText()
Next i

じゃダメなのか?

数値か空白(Empty)なら > 0 の比較演算だけで十分だし
結果は8通りあっても「B列にコメントがある場合は、B列の値はH列に書き出す」みたいに
別の条件に干渉するものが無く、全て独立した条件なら、コードでの条件も
それぞれ独立して書けば良いだけだが
480476:2013/02/06(水) 22:47:25.16
>>479
おkです。ありがとうございます。
なんでここまで省略できるのか、ちょっと時間をくださいw
481476:2013/02/06(水) 22:49:48.88
あ、理解できました。
何ともお恥ずかしい・・・
482名無しさん@そうだ選挙にいこう:2013/02/06(水) 22:50:40.41
理解はやっ
483名無しさん@そうだ選挙にいこう:2013/02/06(水) 23:20:50.92
476の表で、
If Cells(i, 2).Value > 0 Then MsgBox "B" & i & "=" & Cells(i, 2).Value
だとメッセージが3回出て、

If Cells(i, 2).Text > 0 Then MsgBox "B" & i & "=" & Cells(i, 2).Value
だとメッセージが5回出る。

B11〜B12を空白にしてるんだけど何で?
484名無しさん@そうだ選挙にいこう:2013/02/06(水) 23:52:20.97
>>478
良品数は2/5の分だから
どれか不良の行と同じにまとめても問題ない

というか
日付 名前 品名 工程 数 品質
2/5  A男 納豆 包装 200 良品       
2/5  A男 納豆 包装 3  外観キズ 
2/5  A男 納豆 包装 1  外観凹み 
2/5  A男 納豆 包装 5  中身漏れ  これでいいんじゃね?行数は減らないけど
485名無しさん@そうだ選挙にいこう:2013/02/07(木) 00:02:07.11
【1 OSの種類         .】 Windows7 64bit
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

既に反転(選択)されたセルから、任意のセルを反転解除するにはどうすればいいですか?
例えばA1:L40と反転させ、B4、D10、G30を反転解除させる、というようなことです。
CTLRキーを押しながらクリックしてみてもうまくいかないようです。
486名無しさん@そうだ選挙にいこう:2013/02/07(木) 00:04:00.35
あー
複数人で製造してればちょっと問題あるな

日付 名前 品名 工程 数 品質
2/5  A男 納豆 包装 200 良品       
2/5  A男 納豆 包装 3  外観キズ 
2/5  A男 納豆 包装 1  外観凹み 
2/5  A男 納豆 包装 5  中身漏れ
2/5  B男 納豆 包装 200 良品       
2/5  B男 納豆 包装 1  外観凹み 

これだとA男とB男2人で200作ったのか、400作ったのかわけわからなくなる
製造内容によってデータ入力とフォーマットに注意が必要
487名無しさん@そうだ選挙にいこう:2013/02/07(木) 00:08:45.43
>>483
何も入ってないセルのValueは「Empty」という特別な状態になって、それは0より大きいと判断される
488名無しさん@そうだ選挙にいこう:2013/02/07(木) 00:12:40.61
>>485
無理
489名無しさん@そうだ選挙にいこう:2013/02/07(木) 00:22:11.98
>>487
数値としては0と同じじゃないの?
0より大きいではtrueにならないけど

Sub a()
If Cells(1, 1).Value > 0 Then
MsgBox "0よりおおきい"
End If

If Cells(1, 1).Value = 0 Then
MsgBox "0とおなじ"
End If
End Sub
490名無しさん@そうだ選挙にいこう:2013/02/07(木) 01:04:24.13
>>489
A1〜A3に0,1,Aと入れてA4には何も入れない状態で確認してみると、何も入ってないA4だけが
ValueとTextで異なる状態になる

Sub a()
  For i = 1 To 4
    Debug.Print TypeName(Cells(i, 1)), TypeName(Cells(i, 1).Value), TypeName(Cells(i, 1).Text),
    Debug.Print Cells(i, 1) > 0, Cells(i, 1).Value > 0, Cells(i, 1).Text > 0
  Next
End Sub
491名無しさん@そうだ選挙にいこう:2013/02/07(木) 01:12:15.54
>>483
Cells(i, 2).Text ← 数値に変換出来ないVariantなString
0 ← 整数

数値に変換出来ないVariantなStringと整数を比較演算子で比べると
整数よりも数値に変換出来ないVariantなStringの方が大きいと判断されるらしい

VariantなStringが数値に変換出来るかどうかは IsNumeric で調べる
IsNumeric(Cells(i, 2).Text) だと Falseが返る


てことで、セルの中身が数字かどうか、チェックしながら進めた方がよさげ

temp = Cells(i, 2)
if isNumeric(temp) And temp > 0 then 〜
492名無しさん@そうだ選挙にいこう:2013/02/07(木) 01:41:50.73
一体vbaは何と比べているんだ…
493名無しさん@そうだ選挙にいこう:2013/02/07(木) 02:28:13.86
494名無しさん@そうだ選挙にいこう:2013/02/07(木) 02:42:05.42
Sub a()
  Dim v As Variant
  Dim s As String
  
  v = 1: Debug.Print v > 0
  v = "1": Debug.Print v > 0
  v = "A": Debug.Print v > 0
  v = "": Debug.Print v > 0

  s = "1": Debug.Print s > 0
  s = "A": Debug.Print s > 0  ' エラー
End Sub
495名無しさん@そうだ選挙にいこう:2013/02/07(木) 02:43:41.21
一方のバリアント型 (Variant) の式が Empty で、もう一方は数値
0 を Empty 式として使用して、数値比較を実行します。

0とみなすってことなのか?
496名無しさん@そうだ選挙にいこう:2013/02/07(木) 05:16:40.27
【1 OSの種類         .】 Windows7 home premium service pack1
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

挿入→図でjpg、pngなどの画像を挿入したときに勝手に画像が縮小されて
出てきます。
画像を右クリックし図の書式設定のサイズの欄で100%に変更しているのですが、
最初から100%固定で出すことができませんでしょうか。
仕事で何百シートもあり、困っています。どなたかお助けいただけたら
助かります。
497名無しさん@そうだ選挙にいこう:2013/02/07(木) 06:04:48.16
>>496
VBA必須
しかしVBAでの回答=否なので無理
498466:2013/02/07(木) 06:20:52.47
>>486
その品質列は良いですね。その方法で入力してみようと思います。
今の時点で、なぜ二人で200か400かわからなくなるのかが解らないですが、とりあえずピボットの使い方を早めに勉強
してから考えようと思います。
499名無しさん@そうだ選挙にいこう:2013/02/07(木) 08:28:45.66
>>498
例えば巨大な納豆200個を作るために
必ず2人作業を要する作業の場合

お互い話しあって100個ずつの分担記載と決めてれば済むところを
それぞれが重複して総完成数200を記載してたとか

俺の所では巨大製品だから
いわゆる注文書通りに長期のロット数をまとめて製品名区分側に組み入れてる
「2/1受注」「納豆」「200個口」    
これに対して「作業日」「名前」「大工程」「小工程」ごとに「時間」を集計
不良品は出たら直すので出ないし
作業者が1日何個やったか?はどうでもいい

で終わってから「総時間」/「ロット数」で1個あたり時間がわかり、成績がわかる
500名無しさん@そうだ選挙にいこう:2013/02/07(木) 08:51:02.43
久しぶりに納豆買って食っちまったじゃねぇか

バカヤロー!
501名無しさん@そうだ選挙にいこう:2013/02/07(木) 13:09:42.28
>>500
納豆位で済んで良かったな
松阪牛とか大間産ホンマグロとかでサンプルコード作られたら
大散財だったぞ
502名無しさん@そうだ選挙にいこう:2013/02/07(木) 13:18:33.35
今度、そういう美味しそうなサンプルデータも作っておこうw
503名無しさん@そうだ選挙にいこう:2013/02/07(木) 13:43:27.09
エクセルと食欲がこんなにも近いものだったなんて・・・
504名無しさん@そうだ選挙にいこう:2013/02/07(木) 13:46:09.00
松阪牛やホンマグロくらいなら、家で食えば3000円程度だからまだいいが
もし・・・・・いや、この先はやめておこう
505名無しさん@そうだ選挙にいこう:2013/02/07(木) 14:42:11.09
AndoroidでExcelが使えるというタブレット!?
http://www.valumore.jp/shop/ProductDetail.aspx?sku=448985&ref=2
の仕様欄を見てびっくり! オフィスソフト欄には
「WORD,EXCEL,POWERPOINT,PDF,TXT,etc」とありました。これホント?
OfficeSuite Proなどの互換ソフトじゃなくて?
506名無しさん@そうだ選挙にいこう:2013/02/07(木) 14:48:50.06
こんなところで宣伝してないで問い合わせろよ
507名無しさん@そうだ選挙にいこう:2013/02/07(木) 15:35:21.00
サンプルに納豆使うと納豆食いたくなる人は
ウン○とかチ○コとかでサンプル組んだらどうなるんだ?
508名無しさん@そうだ選挙にいこう:2013/02/07(木) 16:42:52.05
うざ
509名無しさん@そうだ選挙にいこう:2013/02/08(金) 13:05:08.29
エクセル2010 win7

(100シート)各シートにA1から下に1から100までの数字がランダムではいっていて終わりの行はシートごとにばらばらでどこで終わるかわかりません。

どこの行で終わっているかわからないA列の数字をB1からしたに逆に並べたいのですが。

A  B
52  35
21  65
65  21
35  52     のようにしたいです。

100シートありA列の最終行はばらばらです。
510名無しさん@そうだ選挙にいこう:2013/02/08(金) 13:05:50.56
よろしくお願いします。
511名無しさん@そうだ選挙にいこう:2013/02/08(金) 14:00:58.78
>>509
B1に
=INDEX(A:A,COUNT(A:A)-ROW(B1)+1,1)
以下B列にコピー
512名無しさん@そうだ選挙にいこう:2013/02/08(金) 14:40:37.32
>>511
オートフィルは複数シート選択ではまともに動かないので大量にシートがあると対処できない
513名無しさん@そうだ選挙にいこう:2013/02/08(金) 14:44:32.01
>>509
Sub Macro1()
  Application.ScreenUpdating = False: Application.Calculation = xlManual
  For Each w In Worksheets
    w.Activate
    Range("B1").FormulaR1C1 = "=INDEX(C[-1],COUNTA(C[-1])-ROW(RC)+1,1)"
    Range("B1").AutoFill Destination:=Range("B1:B" & Cells(Rows.Count, 1).End(xlUp).Row)
  Next
  Application.Calculation = xlCalculationAutomatic: Application.ScreenUpdating = True
End Sub
514名無しさん@そうだ選挙にいこう:2013/02/08(金) 21:47:14.78
【1 OSの種類         .】 Windows7 Pro SP1
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

A学校 1年生 100 男 40 女 60
A学校 2年生 110 男 50 女 60
A学校 3年生 120 男 80 女 40
B学校 1年生 130 男 70 女 60
B学校 2年生 140 男 70 女 70

・・・という感じで続くものを、WORDで差込印刷を行うため、
A学校 100  40  60 110  50  60・・・
B学校 130  80  60 140  70  70・・・
という感じで学校名を基準に1列にまとめたいです。

マクロの記録で、学年、学校名の順に並べ替えてA学校1年生、B学校1年生としたあと、
2年生と3年生をそれぞれ範囲選択して1年生の範囲の右側の列にコピーペーストをして、、
学校名と人数部分以外を列削除してみました。
しかし、実行したら空白の範囲をコピーペーストしてしまってうまくいきませんでした。
515名無しさん@そうだ選挙にいこう:2013/02/08(金) 21:48:33.38
http://www.amazon.co.jp/o/ASIN/B0076ECI5I/777777778888888-22

Microsoft Office2010並行輸入品(=正規品≠海賊版)
インストールはレビュー参照
516名無しさん@そうだ選挙にいこう:2013/02/08(金) 21:51:35.86
>>514
全部の学校が3学年ずつ?
それとも学校によっては5年制だったり6年制だったりするの?
517名無しさん@そうだ選挙にいこう:2013/02/08(金) 22:09:14.46
>>514
A〜G列に元のデータが入ってるとする

  A    B    C  D  E  F  G
A学校 1年生 100 男 40 女 60

H列以降にこの式を入れて下の方までずっとコピーすればいい

H列=INDEX(A:A,ROW()*3,1)
I列=INDEX(C:C,ROW()*3-2)
J列=INDEX(E:E,ROW()*3-2)
K列=INDEX(G:G,ROW()*3-2)
L列=INDEX(C:C,ROW()*3-1)
M列=INDEX(E:E,ROW()*3-1)
N列=INDEX(G:G,ROW()*3-1)
O列=INDEX(C:C,ROW()*3)
P列=INDEX(E:E,ROW()*3)
Q列=INDEX(G:G,ROW()*3)
518名無しさん@そうだ選挙にいこう:2013/02/08(金) 22:20:58.88
>>516
自分が表現しやすい方がいいと思って学校にしたので、
実際には学校と学年を区分にしていないので、
学校=対象、学年=区分としてですが、
対象は68あり、68個がすべて25区分です。
対象の数は毎回変わりますが、区分は常に25です。
519名無しさん@そうだ選挙にいこう:2013/02/08(金) 22:35:10.91
>>518
何かの一覧表を組み替える時は、元の状態と新しい表の状態が正確にわからないと
数式やプログラムを作ることができないので
その説明では回答は無理です

元の表の幅は7列で、作りたい表の幅はタイトル+25区分×各3列=76列あるってことですか?
520名無しさん@そうだ選挙にいこう:2013/02/08(金) 22:48:42.87
25行ずつまとめる

Sub z()
  si = 1
  di = 1
  Do While Cells(si, 1) <> ""
    Cells(di, 8) = Cells(si, 1)
    c = 9
    For i = si To si + 24
      For j = 3 To 7 Step 2
        Cells(di, c) = Cells(i, j)
        c = c + 1
      Next
    Next
    si = si + 25
    di = di + 1
  Loop
End Sub
521名無しさん@そうだ選挙にいこう:2013/02/09(土) 22:09:09.78
2003までは図形の調整で「微調整」てのあったと思うんですが
2007からなくなってます?
522名無しさん@そうだ選挙にいこう:2013/02/10(日) 05:24:56.31
>>521
2003当時でも矢印キー(↑↓←→)で微調整できるから
2007以降は無理に残さなかったものと思われ
523名無しさん@そうだ選挙にいこう:2013/02/10(日) 21:13:12.39
Excel2013をインストールしました。
xlsファイルをクリックすると,Excel2013が必ず2つ起動します。
ひとつはpersonal.xlsだけを読み込んだもの,もう一つは目的のxlsファイルを読み込んだものです。
後者にはpersonal.xlsが反映されおらず,アドインが使用できません。
これでは実用できません。

他の方はいかがでしょうか?
524名無しさん@そうだ選挙にいこう:2013/02/10(日) 23:34:04.72
>>523
OSは何?
525名無しさん@そうだ選挙にいこう:2013/02/11(月) 00:45:22.50
win7-64bitです。
526名無しさん@そうだ選挙にいこう:2013/02/11(月) 00:50:05.28
personal.xlsて2013でもxlsのままなのかい?
527名無しさん@そうだ選挙にいこう:2013/02/11(月) 01:19:19.68
まずOSからクリーンインストールしてみて、それでもダメならまたどうぞ

インストールし直すの面倒とか言うかも知れないが、質問するのに金掛からない場で質問するなら
つまり善意に縋るなら、面倒でも自分で出来ることをまずはやるのが当然のマナーだし
528名無しさん@そうだ選挙にいこう:2013/02/11(月) 01:54:03.58
>>526
2010までxlsでいけたので、そのままにしていましたが、2013はxlsではだめなのかもしれませんね。
>>527
わかりました。
529名無しさん@そうだ選挙にいこう:2013/02/11(月) 14:23:55.71
【OSの種類】Windows7Pro
【Excelのバージョン】Excel2003
【VBA】VBA使った事がありません

数値をまとめて表を作成しています。
x軸に角度を使っていて、左から
120°,150°,・・・,330°,0°,30°,60°,・・・,120
としたいのですが、何か方法はありますか?
530名無しさん@そうだ選挙にいこう:2013/02/11(月) 14:54:01.42
>>529
お前には手入力がお似合い
531名無しさん@そうだ選挙にいこう:2013/02/11(月) 15:27:18.28
>>529
ユーザー設定リスト
532名無しさん@そうだ選挙にいこう:2013/02/11(月) 16:40:50.85
>>529
A1に120と入れる
B1に=MOD(A1+30,360)と入れる
A1とB1の書式を0"°"とする
B1を右にずーっとコピー
533名無しさん@そうだ選挙にいこう:2013/02/11(月) 16:58:34.31
【1 OSの種類         .】 Windows8
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

Windows8になったのでキーボードからの入力ではなく
タッチパネルからの入力にしたいのですが
タッチキーボード(Win8でログインの時に使うやつ)
のプログラムのアドレス(VBAでShell関数で呼び出し時に使う)
を教えていただけないでしょうかお願いします
ググってもわからなかったもので
534名無しさん@そうだ選挙にいこう:2013/02/12(火) 00:20:03.15
【1 OSの種類         .】 WindowsXP/Vista/7/OSX
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ(これから勉強)

メンバー全員にオンラインストレージ上のExcelファイルを同時閲覧・編集出来るようにさせたいのですが、
色々調べても、各々にマイクロソフトのIDが必要だったり、それぞれにメールで招待せねばならなかったりで、
ものぐさなメンバーたちに強要出来るとは思えない内容のものばかりです…会社じゃないので。
面倒な作業はリーダーひとりだけが行なって、後は全員URLを開くだけでOKみたいな事って出来ないのでしょうか?
535名無しさん@そうだ選挙にいこう:2013/02/12(火) 00:34:39.17
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 いいえ
$C$1:C10の範囲で、セル内容が <br> のものをカウントしようと思いました
=COUNTIF($C$1:C10,"=<br>")
ではカウントできるのですが、
=COUNTIF($C$1:C10,"<br>")
ではブランクセル以外ならなんでも当てはまってしまうようです

文字列で一致しているかどうかなら、後者で良かったと思うのですが、
私が何か間違っているのでしょうか?
536名無しさん@そうだ選挙にいこう:2013/02/12(火) 00:35:19.92
>>534
googleスプレッドシートオススメ
537名無しさん@そうだ選挙にいこう:2013/02/12(火) 00:51:46.90
やはり良いですか。チャット機能もあって魅力的でうが、でもそれも確かアカウント作る必要があったような…
今さっき、数日前にSkyDriveがID無しでも編集出来るように改良されていた事を知りましたので、
Live Workspaceだとマクロ使えないとかいう記事あって諦めてたんですが、とりあえずはそれで行こうと思います。
助言ありがとうございました。
538名無しさん@そうだ選挙にいこう:2013/02/12(火) 01:11:36.08
>>535
< や > は先頭に持ってきたら比較演算子として扱われるんじゃないの?

比較演算子やワイルドカードとして扱われない文字なら
=無しで後者のように書いても確かに問題ないけど
539名無しさん@そうだ選挙にいこう:2013/02/12(火) 08:01:40.96
>>538
なるほど、そういうことでしたか
ありがとうございました
540名無しさん@そうだ選挙にいこう:2013/02/13(水) 06:52:46.34
VBAでIEを操作し、リンクをクリックしたいんですけど
それについて詳しく解説してるサイトとかありますか?

ていうか、VBAでIEを操作する際って

XXXXXX.Navigate "http://XXXXX.ne.jp/"

このページを開く構文は必ず必要なんですか?
自分でIEのページを開いて、ページを開いた後の処理をVBAにやらせるってことはできないんですか?
ページを開いた後の処理をVBAにやらせるには、ページを開くことからVBAにやらせないといけないんですか?
541名無しさん@そうだ選挙にいこう:2013/02/13(水) 07:33:10.75
542名無しさん@そうだ選挙にいこう:2013/02/13(水) 14:37:22.77
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 言われたのを書くぐらいはなんとか……
【4 VBAでの回答の可否】 可(ただし、できればエクセルの機能でできると助かります)

D列に"不許可"と入った場合に、同じ行のB〜Fの色を灰色に変わるようにしたいです。

 A B  C   D E  F
1
2   No. 名前  結果 場所 備考
3   01 太郎 不許可 家   ← D3に不許可が入るとB3:F3が灰色に変わる  
4   02 花子  許可 学校    
5

一個ずつ条件付き書式で

B3:F3を選択 → =$D$3="不許可" → 書式を灰色塗りつぶし

という設定はできますが、一気に範囲全てを設定する方法はありませんか?
D(行数)が"不許可"の時、B(行数):F(行数)ってできないのかなって調べていたのですが
エクセル初心者なので、調べてもよくわかりませんでした
書式をコピーしても、普通にコピーした時のように空気を読んでD3がD4になってくれたりしないので、
D3を不許可にしたら全部灰色になってしまいます。
D4はもちろん不許可にしても色が変わりません。
どうすればよろしいでしょうか?
543名無しさん@そうだ選挙にいこう:2013/02/13(水) 14:38:56.98
すみません、エクセル図がずれてます
備考の上がFになります
544名無しさん@そうだ選挙にいこう:2013/02/13(水) 15:17:49.67
>>542
=$D3="不許可"

3の前の$が邪魔しているのな
545名無しさん@そうだ選挙にいこう:2013/02/13(水) 15:38:49.29
>>544を補足すると、"設定したい範囲を選んだ状態"で、条件付き書式の条件を
=IF($D$3="不許可",true)

=IF($D3="不許可",true)
546名無しさん@そうだ選挙にいこう:2013/02/13(水) 16:01:13.90
ありがとうございます!コピーできました!
547名無しさん@そうだ選挙にいこう:2013/02/13(水) 21:39:38.13
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010

セルに入力した数が増えると、下図の赤丸のところが短くなります。
ttp://gigabyteserver.com/uploader01/img1234/winplus.jp027.jpg
ところが、データが入ってないセルを列ごと削除しても一向に長くなりません。
Columns("AC:XFD").Delete Shift:=xlToLeftでもダメでした。
どうすればいいでしょうか?
548名無しさん@そうだ選挙にいこう:2013/02/13(水) 21:58:58.59
>>547
保存してもう一回開いてみた?
549名無しさん@そうだ選挙にいこう:2013/02/13(水) 22:18:24.01
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】否

横一列に入力された数値(同一の行の異なる列に入力された複数の値と言えばいいの?)を、
「並び替えることなく上位○番目まで合計する」ことは可能でしょうか?
データ数がそれなりに多いことと、上記の○の部分をいつでも変更できるようにしたいので、
LARGE関数とIF関数を使いまくってなんとかする力技はできれば避けたいです。
知恵をお貸しください。
550名無しさん@そうだ選挙にいこう:2013/02/13(水) 22:41:09.55
もっと具体的に書け
551名無しさん@そうだ選挙にいこう:2013/02/13(水) 22:54:58.05
・(例として)A1〜J1に1,2,3,4,5,6,7,8,9,10と入力
・K1に上位何番目までを合計したいのかを入力
・L1に合計した結果(この場合だと3番目までなら27、5番目までなら40)を出力

この場合、L1に入力するべき式はどのようなものなのでしょうか?
>LARGE関数とIF関数を使いまくってなんとかする
以外の方法があれば有難いです。
説明が下手で申し訳ないのですが、よろしくお願いします。
552名無しさん@そうだ選挙にいこう:2013/02/13(水) 22:57:51.21
作業列をつくるという発想さえあれば なんてことない問題
553547:2013/02/13(水) 22:57:51.09
>>548
やってみましたが変わりません。
554名無しさん@そうだ選挙にいこう:2013/02/13(水) 23:29:04.53
>>551 例えば仮にA1~J1に数値として
K1:指定順位
L1:=SUMIF($A$2:$J$2,"<="&$K$1,$A$1:$J$1)
A2:=RANK(A$1,$A$1:$J$1) としてJ2までコピー
とか
555名無しさん@そうだ選挙にいこう:2013/02/13(水) 23:34:11.26
>>553
2010だけど、削除して保存、開いてからカーソルをA列に戻すと戻ったけどな
どうしても気になるなら使っている列だけ新規シートにでもコピーすればいいと思う
>>554
全く同じ事書こうとしてた
556名無しさん@そうだ選挙にいこう:2013/02/13(水) 23:37:50.44
>>554
質問者じゃないけど、すげえw 考え方ひとつなんだな!
557名無しさん@そうだ選挙にいこう:2013/02/14(木) 09:45:30.25
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 ほとんど使えない
【4 VBAでの回答の可否】可
Private Sub Worksheet_Activate()
Cells.Select
Selection.Clear
Range("B2").Select
With Sheets("sheet1")
.AutoFilterMode = False
.Range("B2:G2").AutoFilter
.Range("B2:G2").AutoFilter Field:=3, Operator:=xlOr, Field:=4, Criteria1:="=不許可"
.Range(.Range("A1"), .Range("A1").SpecialCells(xlLastCell)).SpecialCells(xlCellTypeVisible).Copy Range("A1")
.AutoFilterMode = False
End With
End Sub

上記のオートフィルタの条件にもう一つ、orでField:=1, Criteria2:="=不参加" を追加したいのですが、どうしたらよろしいですか?
Field1不参加 or Field3不許可 or Field4不許可 で抽出したいのですが
Operator:=xlOr,でもう一つField1を足したらエラーが出てしまってどうすればいいかわかりません
よろしくお願いします
558557:2013/02/14(木) 09:58:02.75
あ、すみません、追加の質問なのですが、
上記のField内で空白があった場合、それはリストからオートフィルタで弾くようにしたいのですが、どう書けばよろしいでしょうか?
新規リスト用の空白枠まで一緒にコピーされるので、それが邪魔でフィルタ後のシートには出ないように消したいのですが
559名無しさん@そうだ選挙にいこう:2013/02/14(木) 10:28:13.11
>>557
http://www6.plala.or.jp/MilkHouse/practical/contents305/contents30501.html
俺もあまり良く知らないけど、fieldは一つしか指定できないみたい
空白はCriteria1:="<>"

ピボットテーブルを使うか、自前で実装するのがいいと思う
560名無しさん@そうだ選挙にいこう:2013/02/14(木) 14:24:00.28
>>559
ありがとうございます、諦めて別にチェック枠作ってなんとかしました
561名無しさん@そうだ選挙にいこう:2013/02/14(木) 14:24:47.06
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 ほとんど使えない
【4 VBAでの回答の可否】可


認可_H24-04.xls
認可_H24-05.xls
認可_H24-06.xls
認可_H24-07.xls

↑のような、一つのフォルダにあるエクセルファイルのデータを一気に集めるエクセルファイル"集計"を作りたいのですが、
認可シートの中にある、"許可シート"の"A1:L34"をコピーして、"集計"ファイルの中にそれぞれごとに新しいシートを作って、そこに貼り付けするような仕組みは作れますか?
562名無しさん@そうだ選挙にいこう:2013/02/14(木) 14:46:58.94
>>561
はい、作れます。

集計を開いた状態でプログラムを開始
認可_H24-04.xlsを開く
コピー、貼り付け
認可_H24-04.xlsを閉じる
認可_H24-05.xlsを・・・という流れになると思う

H24の24の部分はinputboxで指定できるといいですね

またわからなくなったらおいで
563561:2013/02/14(木) 15:15:17.93
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 ほとんど使えない
【4 VBAでの回答の可否】可
Sub 集計()
Const myPath As String = "c:\認可○○\" '←これを、今開いている"集計"ファイルがあるフォルダという指定をしたい
Dim rIdx As Long
Dim fName As String
fName = Dir(myPath & "*.xls")
Do Until fName = ""
Workbooks.Open Filename:=myPath & fName
rIdx = rIdx + 1
                    '←開いたファイルの"認可シート"の"A1:L34"をコピー
                    '←"集計"ファイルに新しいシートを作成して、そこに貼り付け
Windows(fName).Close SaveChanges:=False
fName = Dir
Loop
End Sub

>>562
ご返信ありがとうございます
調べて出てきたの無理やりコピペして、開くだけはできたのですが、素人過ぎて、どう改変すればいいかわからないです
教えていただけませんか?
564名無しさん@そうだ選挙にいこう:2013/02/14(木) 15:26:41.81
>>563
早いな
>これを、今開いている"集計"ファイル
ThisWorkbook.Path
だったかな
「vba ファイルパス 自分」とかでぐぐるといいかもしれない
>'←開いたファイルの"認可シート"の"A1:L34"をコピー
>'←"集計"ファイルに新しいシートを作成して、そこに貼り付け
マクロの記録というものがあってな。これを使うとコレぐらいなら自動でコードを書いてくれるんだ。
超便利だから絶対に覚えておいたほうがいい
565名無しさん@そうだ選挙にいこう:2013/02/14(木) 17:58:24.69
ヤパーリVBA最強ですねw
566561:2013/02/15(金) 09:53:07.78
>>564
ありがとうございます。修正してみました。

【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 まるで使えない
【4 VBAでの回答の可否】可
Sub 集計()
Dim rIdx As Long
Dim fName As String
Application.DisplayAlerts = False
fName = Dir(ThisWorkbook.Path & "\" & "*.xls")
Do Until fName = ""
Workbooks.Open Filename:=fName '← ここで、"認可_H24-04.xlsが見つかりません"という実行時エラー1004というのが出ます
rIdx = rIdx + 1
ActiveWorkbook.Worksheets("認可シート").Activate
Range("A1:L34").Select
Selection.Copy
Windows(fName).Close SaveChanges:=False
fName = Dir
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Paste
Loop
End Sub
上記のエラーはどう対処すればよろしいでしょうか?なぜか名前は取得できているのですが、開くことができません。
よろしくお願いします。
567561:2013/02/15(金) 10:09:54.57
すみません、↑のrIdxのところいりません。消し忘れてました
568名無しさん@そうだ選挙にいこう:2013/02/15(金) 10:30:43.45
>>566
こうかな?
Workbooks.Open Filename:=ThisWorkbook.Path & "\" & fName
569561:2013/02/15(金) 10:42:13.25
すみません、自己解決しました。お騒がせしました。
570561:2013/02/15(金) 10:52:47.88
>>568
すみません、569書いたとき更新してなくて、失礼なかんじになりました
ありがとうございます
571561:2013/02/15(金) 10:55:26.59
追加で質問なのですが、>>566の最後の方にある
fName = Dir
の役割ってなんでしょうか?
これを外したら、永遠と最初のエクセルファイルを開いてしまう感じになるのですが
なぜこれを入れたら次のエクセルファイルに移ってくれるのかわかりません
誰か教えていただけると嬉しいです
572名無しさん@そうだ選挙にいこう:2013/02/15(金) 11:23:25.32
Dir(パターン)は、まず指定したパターンに一致するファイル群を保持し、その1つめ返す
次に引数を省略してDirを呼ぶと、保持したファイル群の2つめ、3つめを順次返していく

パターンを指定すると、新たにそのパターンに一致するファイル群を取得してその1つめを返すので
毎回パターンを指定したら、毎回1つめのファイルしか返らない

つまり
Dir(パターン) → 一致するファイル群を保持しろ、その一つ目を返せ
Dir() → 保持しているファイル群の次のファイルを返せ
という感じだ
573561:2013/02/15(金) 15:22:13.94
>>572
ありがとうございます!理解できました!

もう一つ質問なのですが、
ボタンを作って、>>566をボタンのとこにコピペして実行したら
Range("A1:L34").Select
のところで1004のエラーが起きて、"RangeクラスのSelectメソッドが失敗しました"
と出ます。
誰か原因わかりますか?
574名無しさん@そうだ選挙にいこう:2013/02/15(金) 15:40:45.12
>>573
Dir関数で返ってくるのはファイル名のみなんでカレントディレクトリ以外にあるブックならフルパスで
fName = ThisWorkbook.Path & "\" &Dir(ThisWorkbook.Path & "\" & "*.xls")
とかしないと
575名無しさん@そうだ選挙にいこう:2013/02/15(金) 19:33:49.84
Excelの使い方のガイドとして「Office Tanaka」が有名ですが
本人は実はこんなオッサンみたいな顔と容姿なのですか?
http://officetanaka.net/img/banner.png
576名無しさん@そうだ選挙にいこう:2013/02/15(金) 21:23:03.97
有名というか、右も左も解らないならそこ行っとけってだけで
解説はわかりやすいがレベルが低いから、すぐにそこじゃ物足りなくなるだろ
577名無しさん@そうだ選挙にいこう:2013/02/15(金) 21:24:05.44
エクセル2007を使っています。
セルに「1-2-3」という住所があるとして
それを「1丁目2番3号」というふうに変換したいのですが
どのようにすればいいでしょうか?
578名無しさん@そうだ選挙にいこう:2013/02/15(金) 21:51:47.19
>>557
office田中のオッサンに聞くのがよろし
579名無しさん@そうだ選挙にいこう:2013/02/15(金) 21:53:13.48
>>577
>>1
テンプレ
580名無しさん@そうだ選挙にいこう:2013/02/15(金) 22:02:43.23
まずひとつめの"-"を別の文字にする。住所には含まない記号がよい
それができれば、記号を"丁目"に置換。つぎに"-"を番に置換
最後に住所に"号"を付加
581名無しさん@そうだ選挙にいこう:2013/02/15(金) 22:15:30.55
なぜ直接ひとつめの"-"を"丁目"に置換しないのだ?
582名無しさん@そうだ選挙にいこう:2013/02/15(金) 22:22:28.05
>>577
A1に入力されているとして
=SUBSTITUTE(SUBSTITUTE(A1,"-","丁目",1),"-","番地")&"号"
583名無しさん@そうだ選挙にいこう:2013/02/15(金) 22:31:54.35
>>581
だよなーw
584名無しさん@そうだ選挙にいこう:2013/02/15(金) 22:35:38.47
正規表現使わなきゃ誤作動起こすだろうな
585名無しさん@そうだ選挙にいこう:2013/02/15(金) 22:44:45.83
>>581 2つめの"-"もいっしょに置換されちゃうじゃないか
586名無しさん@そうだ選挙にいこう:2013/02/16(土) 08:11:01.81
>>585
SUBSTITUTE ( 文字列 , 検索文字列 , 置換文字列 , [置換対象] )
587名無しさん@そうだ選挙にいこう:2013/02/16(土) 09:42:23.04
このスレには優秀な先生もいるが、おバカも数多く存在する。
しかも、天然ボケではなく、ウケ狙いだから性質(タチ)が悪い。
588名無しさん@そうだ選挙にいこう:2013/02/16(土) 12:43:38.85
(・∀・) アッタマイーナー
589名無しさん@そうだ選挙にいこう:2013/02/16(土) 12:44:01.42
VBAの

For Each 変数 In XXX
 next

ってどういう意味なんですか?
XXXと変数がどう関係してくるんですか?

あと
CreateObject("xxxxxxxxxx").Windows
これはどういう意味なんですか?

あと
.getElementsByTagName(A)
これはどういう意味なんですか?
590名無しさん@そうだ選挙にいこう:2013/02/16(土) 12:44:29.66
ググれ
591名無しさん@そうだ選挙にいこう:2013/02/16(土) 12:45:50.09
ググったんですが、どこも説明が下手糞すぎてわかりません。
具体的に何をどうしているのかということを知りたいのです。
592名無しさん@そうだ選挙にいこう:2013/02/16(土) 12:48:59.01
ググってないわコイツ
593名無しさん@そうだ選挙にいこう:2013/02/16(土) 13:24:17.78
×どこも説明が下手糞すぎてわかりません
○自分、バカで理解力が足りないのでわかりません

そりゃどうしようもないな
さようなら
594名無しさん@そうだ選挙にいこう:2013/02/16(土) 14:11:30.03
わろた
595名無しさん@そうだ選挙にいこう:2013/02/16(土) 14:12:51.94
foreachの前に配列の意味も知らんだろこいつは
596名無しさん@そうだ選挙にいこう:2013/02/16(土) 15:58:52.69
VBA初心者ですが
VBAを使って芸術的な計算を実行しているようなお勧めのサンプルデータ等ありましたら教えて下さい
ゲーム以外でお願いします
597名無しさん@そうだ選挙にいこう:2013/02/16(土) 16:04:08.24
芸術的って何だよ
598名無しさん@そうだ選挙にいこう:2013/02/16(土) 16:12:30.90
どいつもこいつも句読点が打てない馬鹿ばっかだな
599名無しさん@そうだ選挙にいこう:2013/02/16(土) 16:15:22.69
釣りだろうこれw
600名無しさん@そうだ選挙にいこう:2013/02/16(土) 16:31:45.12
芸術的=すごい・目を見張るような て事だろう。
601名無しさん@そうだ選挙にいこう:2013/02/16(土) 16:34:27.03
言うのはそこじゃないと思うんだ
602名無しさん@そうだ選挙にいこう:2013/02/16(土) 16:38:18.27
果たしてVBA初心者に理解出来るのだろうか
603名無しさん@そうだ選挙にいこう:2013/02/16(土) 19:02:03.17
Excelで数字を文字列として入力ことがあるのですがそれを防ぐ方法はないでしょうか? 年配がたまに文字列をコピペして計算式が反映されなくなってしまうのです。
604名無しさん@そうだ選挙にいこう:2013/02/16(土) 19:12:32.70
>>603
簡単なのは入力セルの値に×1することです。
計算式の中にそれを意識して組み入れましょう。
605名無しさん@そうだ選挙にいこう:2013/02/16(土) 19:18:37.80
入力規則
606名無しさん@そうだ選挙にいこう:2013/02/16(土) 19:37:17.67
VBA初心者ですが
沢山のサブプロシージャを作成する場合に
それぞれずべてに同じ提議たとえば Dim XXX を記述する必要がある場合
プロシージャの数だけDim XXX をコード上に記述することになりますが
Subの外か何所かにまとめて1回で提議することは出来ないのでしょうか?
607名無しさん@そうだ選挙にいこう:2013/02/16(土) 19:42:58.11
>>606
できるから試してみろ
608名無しさん@そうだ選挙にいこう:2013/02/16(土) 20:22:20.66
>>606
Subの外と中とではその宣言した変数の適用範囲が違うから、単に記述を楽にする目的では使えんよ。

http://home.att.ne.jp/zeta/gen/excel/c04p10.htm
609名無しさん@そうだ選挙にいこう:2013/02/16(土) 21:07:37.42
>>607
>>608
ありがとうございます。
単純に外に出してみてまったく動かなかったため100箇所ぐらいに同じ物を記述した感じでした
頂いたURLをみて研究してみます。。
610名無しさん@そうだ選挙にいこう:2013/02/16(土) 21:23:14.84
まとめたいと思うほど同じ変数をあっちでもこっちでも使うって
サブプロシージャの作り方というか利用法を根本的に間違ってるんじゃないの?
611名無しさん@そうだ選挙にいこう:2013/02/16(土) 21:46:53.29
100箇所ってどんな大規模プログラムよ
612名無しさん@そうだ選挙にいこう:2013/02/16(土) 22:15:51.91
グローバル変数って知らない人かも
613名無しさん@そうだ選挙にいこう:2013/02/16(土) 22:21:24.30
だからグローバル変数じゃ根本的な解決にならないって
こういう用途で使う物じゃないんだから、表面的には解決したように見えても
不適切な用途で使えばバグの原因を増やすだけ
614名無しさん@そうだ選挙にいこう:2013/02/16(土) 22:31:08.65
>>613
どういうこと?
>>606のやりたいことは明らかにグローバル変数だと思うんだけど
615名無しさん@そうだ選挙にいこう:2013/02/16(土) 22:51:15.70
明らかに違うだろw

やりたいのは宣言の簡略化であって、変数の共有化じゃない
一見、「Subの外にまとめて」ってのがグローバル変数のことを指してるように見えなくもないが
目的と一致していない以上、グローバル変数では弊害を孕む

グローバル変数の宣言場所と、質問者が想定した宣言場所が一致してようが
何のために外に出したいかまで考えれば、グローバル変数の本来の用途とは明らかに使途が違うことは一目瞭然で
この用途でグローバル変数使うのは、典型的な「間違ったグローバル変数の使い方」の一つ
616名無しさん@そうだ選挙にいこう:2013/02/16(土) 23:04:30.39
と思いたいのは勝手で、>>606に聞かないとわからないね
617名無しさん@そうだ選挙にいこう:2013/02/17(日) 01:03:20.59
頭悪い奴多いな。
>>616
きかんでもわかるだろ。グローバル変数の用途なら>>606のような質問内容になるわけないだろ。
618606:2013/02/17(日) 02:02:26.04
Public XXX As Object
これでうまくいきました!
記述は単純ですが説明が難解な物が多く使い方を理解するのに時間がかかりました、、w
619606:2013/02/17(日) 02:19:17.95
>>615
すみませんまだ1月末に始めたばかりの右も左もわからない初心者です。
ただ他にプログラムを書いた経験があるため何となくわかる面もあります、VBAの独特なルールはさっぱりです。w
620名無しさん@そうだ選挙にいこう:2013/02/17(日) 02:52:05.68
>>617
残念。エスパー力不足でしたね
621613,615:2013/02/17(日) 04:58:48.82
>>620
なんか見当違いに勝ち誇ってるところ悪いが、残念なのは君の頭の方だ

俺も、>>617も、他のグローバル変数じゃ不適切だって言ってる奴も
グローバル変数で目的そのものが果たせないとは一言も言ってない
むしろ、表面的には目的を果たせた上で使途不一致により問題を抱える可能性ががあるから指摘してるんだよ

まあグローバル変数の特性と、各プロシージャで使う変数をまとめる用途には不適切であることを
理解した上で使う分には、使途不一致による問題を回避するように使うことも出来るし
知らなくても、偶々問題が出ない使い方をする可能性もあるけどね

もう少し、指摘されている内容を理解してから書き込むか
その内容が自分の頭では理解が及ばないものなら静観するかしないと
後で、意味を理解するなり理解できるレベルになった時に恥ずかしい思いするだけだぞ
622名無しさん@そうだ選挙にいこう:2013/02/17(日) 05:03:06.78
>>592
うーん
頭が悪い癖に人に突っかからないと気がすまないようですね。
いいですよじゃあ本気で議論しましょうか。
私が検索をしていないという根拠・証拠を述べてください。
623名無しさん@そうだ選挙にいこう:2013/02/17(日) 05:06:03.18
>>593
えっと、私はあなたのような頭が悪いくせに知ったかぶりで博士を気取る自称天才ではないのでね。
知らないなら答えなくていいですよ。
私はわからないから聞いているので。
あなたみたいな役立たずのゴミには用はない。

知力でも武力でも足元及ばない雑魚がよく威張っていられますね?ネット弁慶さん?

私は初心者なんですが、どこに初心者でもわかるように説明しているというんですか?
どこにそんなページがありました?
自分ですらも答えることができない無知なゴミに威張られても困りますね。
あなたがいつどこで、私に対して威張れるほど、私にとって役に立つことをしたというんです?
お答えを。
ご説明できますか?
624名無しさん@そうだ選挙にいこう:2013/02/17(日) 05:09:30.40
ていうか前から疑問なんだけど
なんでここって答えもしないくせに、偉そうな奴が多いの?

誰もお前みたいな答えを知らないゴミには聞いてないんだが?

答えもしないくせに偉そうな態度とられてもねえ。殺したくなるだけで終わりなんだけど。
邪魔にしかならないし。

「ググれ」だけじゃ言葉を覚えたての子供でも言えるんですが?
どうして言葉を覚えたての子供にしかできないことしかやってない分際で威張ってるの?
誰なの君?
本当はお前も答えを知らないんじゃないの?
答えを知らないくせに何威張ってるの?バカなの?
625名無しさん@そうだ選挙にいこう:2013/02/17(日) 05:11:11.54
For Each 変数 In XXX
 next

ってどういう意味なんですか?
XXXと変数がどう関係してくるんですか?

あと
CreateObject("xxxxxxxxxx").Windows
これはどういう意味なんですか?

あと
.getElementsByTagName(A)
これはどういう意味なんですか?


って聞いてるのに
ググれ
って答えになってませんよ?大丈夫かなぁ?
日本語読める?
AかBかで聞かれたら、AかBで答えなきゃ答えにならないよ?
バカなの?
しかもいつ君を指名して答えろって命令したっけ?


 知 ら な い な ら 、 無 理 し て 答 え な く て い い よ 博士?笑
626名無しさん@そうだ選挙にいこう:2013/02/17(日) 08:24:06.89
知らない


ではさようなら
627名無しさん@そうだ選挙にいこう:2013/02/17(日) 09:06:14.33
質問ならここより教えてgooとかMOUGのほうがいいんじゃないの
628名無しさん@そうだ選挙にいこう:2013/02/17(日) 09:15:37.83
For Each 変数 In XXX でぐぐれば四番目にすごい適切なサイトが見つかるよ。良かったね。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12102188952
朝の五時から知恵袋で質問してる人がいて笑った。

まぁ、煽りはこのへんにして、マジレスすると多分おつむの構造が人とやや違うようなので理解し難いんだと思う
このスレで説明されても同じようにわからないだろうから、
For Each 解説 初心者 vba
CreateObject Windows 解説 初心者 vba
getelementsbytagname 初心者 解説 vba
でぐぐればたくさんサイトが見つかるので、自分が理解できそうなサイトで勉強するといいよ、知恵袋君w
629名無しさん@そうだ選挙にいこう:2013/02/17(日) 09:22:44.10
>>624
>>628でも書いたけど、人によって理解しやすい文章ってあると思う
長々と解説してどこかのサイトと同じような文章、またコピペするぐらいなら
最初から本人に、自分にあったサイトを検索させればいいと思う

なんで2chで初歩の初歩を懇切丁寧に教えてもらえると思っているのか、その方が理解に苦しむ

ネタに走るような面白いやつなら俺はいくらでも教えるけどなw
630名無しさん@そうだ選挙にいこう:2013/02/17(日) 11:49:19.69
ええ。ここでは非常に頭が悪く、質問の内容すらも理解できないような、日本語に不自由している役立たずばかりだったので、
知恵袋で質問させていただきました。
非常によかったです。
しかも聞かれてもいないのに、自分に聞かれていると反応しちゃって
なぜか顔真っ赤にしてイライラしてる自意識過剰な自称博士の気持ち悪い人もいないようなので
安心しました。
ありがとうございました。
631名無しさん@そうだ選挙にいこう:2013/02/17(日) 11:57:19.96
ちなみに、言っておきますけど。
なぜ、わざわざ新しいアカウントとって知恵袋で質問したか。
絶対あなたが見つけるだろうとわかっていたからです。
まさにその通りに行動してくれましたね。どうですか?ここで聞いておきながら、他でも聞いてしかもこのなめた態度?

ストレスためると体に悪いですよ?
まあ、それであなたがストレス障害死でもしてくれるなら、

いくらでもイライラする質問してあげますが。

んー。悔しいねぇ。
マルチされた上に、答えをもらって理解できちゃったよ。
顔を真っ赤にしてかみついたのは、無駄な努力でしたね。
純粋に答えを知りたかったのが、結果的にあなたをイライラさせるだけの結果になってしまいましたね。

ありがとうございました。
632名無しさん@そうだ選挙にいこう:2013/02/17(日) 12:28:07.67
知恵袋w
633名無しさん@そうだ選挙にいこう:2013/02/17(日) 12:46:59.71
むしろこの滑稽っぷりを(・∀・)ニヤニヤ眺めるのはストレス解消になるがw

ありがとさんw
634名無しさん@そうだ選挙にいこう:2013/02/17(日) 12:50:55.15
久しぶりに2chらしい流れを見た。
635名無しさん@そうだ選挙にいこう:2013/02/17(日) 13:17:30.92
【1 OSの種類         .】 WindowsXP、Windows7
【2 Excelのバージョン   】 Excel2010

B2〜H10セルに罫線を引くとき、やたらと長くなりますが、
もっと短縮できますか?

Sub keisenn()
Range("B2:H10").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
636635の続き:2013/02/17(日) 13:18:13.35
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
End Sub
637名無しさん@そうだ選挙にいこう:2013/02/17(日) 13:22:50.77
xlEdgeBottomとかxlEdgeTopの定数には何が入ってるんだろ
連番だとかだとforでまわせばいいよな
638名無しさん@そうだ選挙にいこう:2013/02/17(日) 13:24:46.67
それと一回選択してから、Selectionで指定だと遅くなる気がする
直接B2:H10に罫線を引くように指定したほうが良いんじゃない
639名無しさん@そうだ選挙にいこう:2013/02/17(日) 13:42:54.28
よーしパパ暇だから>>589さんのプロファイリングしちゃうぞー^^

まず出だしの>>589
vbaはマクロの記録ぐらいはできる、もしくは覚えたて。0から作る事は出来ない。

土曜の昼間の書き込みからして、
家に仕事は持ち込まないタイプ(持ち込むような人ならとっくに解決している。
書き込みは会社からだろう。休み時間かな。書き込み時間がやや遅いところからすると、エクセルスレを探すのに手間取ったとみた。

やけに特殊なコードに関することからして、人の作ったコードを見ている感じがする。
ぐぐり方も知らないので、拾ったコードとは考えにくい。
部下が作ったものを聞けない環境、もしくは先代が置いていったvbaのコードを解読しようとしているのかな。

また、テンプレを使わない、人へのモノの聞き方を知らないところから係長か課長クラス。
改行の多さも自己主張の激しさを感じさせる。

ネットというか、2chに対しては本当に不慣れ。SNSもやってない、せいぜいアメブロかな。毎日長時間テレビを視聴しているのかな。韓流が好きかもしれない。

>>622-625で不思議なのは、異常な朝の早さ。なんで五時に起きて2chしてるんだろう?
ダイエットのためにジョギングでもしてるのかな??これはよくわからない。寒くておきただけ?
一分あたり約100文字以上の打鍵速度。間違いなく事務職だろう。
徐々に怒りをあらわにすることから、怒りを抑えるのが苦手。部下のミスを許せない。部下がどんどん辞めていっているのは人事のせいだと思っている。もちろん自分のミスには寛容。
語彙はなかなか豊富だな。年は結構いってるだろう。30後半ではないな。40代以上。

>>625のあと、30分も空けて知恵袋で質問している。新規アカウントの名前も凝ってることからして、新アカの情報もご丁寧に入れてるのか…仕事も私生活も、変な所で几帳面。
トイレットペーパーの紙も三角に折ってそう。
周りからは疎まれるタイプ、でも本人は気づいていない。

最近若い部下(プログラムは多少できる)がやめたか仲が悪い
半ドンの零細企業
全くもてない。厚化粧、体型は普通、のオバサン事務員。おせっかいが多い。
結構自信あるんだけど、どうだろう?
640名無しさん@そうだ選挙にいこう:2013/02/17(日) 14:04:43.80
>>635
Sub Macro1()
Dim a(3) As Long
For Each x In Range("b2:H10")
For y = 7 To 10
x.Borders(y).LineStyle = xlContinuous
Next
Next
End Sub
こんな感じ?
>>637
7-10が入ってた。1-6は知らん。
641名無しさん@そうだ選挙にいこう:2013/02/17(日) 14:05:01.18
Dim a(3) As Long
は不要だ。スマン
642名無しさん@そうだ選挙にいこう:2013/02/17(日) 14:05:09.11
記録じゃForeachなんて出ないでしょ
643名無しさん@そうだ選挙にいこう:2013/02/17(日) 14:06:29.64
>>640
トップ、レフト、ライト、ぼっとむ、バーティカル、ホリゾンタルで6つのはずじゃない?
644名無しさん@そうだ選挙にいこう:2013/02/17(日) 14:25:01.40
>>637
別に連番じゃなくてもForで回せるだろ
定数の中身をいちいち調べるみたいな方法は非効率だしバグの元だから使うな

edges = Array(xlEdgeTop, xlEdgeBottom, xlEdgeLeft, xlEdgeRight)
For Each K In edges
  ' 処理
Next
645名無しさん@そうだ選挙にいこう:2013/02/17(日) 14:46:20.07
上下左右縦横の格子罫線なら、Bordersの引数省略すれば一発で引けるの誰も知らないのか?

Selection.Borders.LineStyle = xlContinuous

あとはループ廻すより先に、サブプロシージャ化した方がいいぞ

With 範囲引数.Borders(線位置引数)
 .LineStyle = 線種類引数
 .ColorIndex = 色引数
 .Weight = 太さ引数
End With

というプロシージャ作っておけば、ループ廻さなくても大元は4行なり6行なりのコードで済むし
もちろんループと合わせて更に簡略化することも出来るし、更に
外枠は太線、縦線は二重線、横線は細線みたいなことも
ループの中に処理をベタがきするより遙かにやりやすい
線位置引数をParamArrayにして、サブプロシージャの中でループ廻せば、
Array関数で配列作ってやるより大元は更にスッキリ
646名無しさん@そうだ選挙にいこう:2013/02/17(日) 14:50:00.70
BVA初心者ですが
以下のようなコードでログ1・2・3・4・・・と同じコードが続きます。(一部省略してあります)
FSO As Object は昨日教えて頂きおかげさまで省略に成功しましたが
Set FSO = CreateObject("Scripting.FileSystemObject") ' ←このコードも同様に多用されているのですがパブリックに入れる事は出来ないのでしょうか?

------------------------------
Public FSO As Object
------------------------------
Sub ログ1()

Set FSO = CreateObject("Scripting.FileSystemObject")

With FSO.CreateTextFile("C:\test1.txt")
 .WriteLine Now
 .Close
End Sub
------------------------------
Sub ログ2()

Set FSO = CreateObject("Scripting.FileSystemObject") ' ←このコードも多用されているのですがパブリックに入れる事は出来ないのでしょうか?

With FSO.CreateTextFile("C:\test2.txt")
 .WriteLine Now
 .Close
End Sub
------------------------------
Sub ログ3()



宜しくお願い致します。
647646:2013/02/17(日) 14:57:22.06
>>646
Withの箇所を閉じる End With が抜けてました。スミマセン。。
648名無しさん@そうだ選挙にいこう:2013/02/17(日) 16:01:43.40
こんなんでいいんだっけ

Private Sub auto_open()
Set FSO = CreateObject("Scripting.FileSystemObject")
End Sub

Private Sub auto_close()
Set FSO = nothing
End Sub
649名無しさん@そうだ選挙にいこう:2013/02/17(日) 16:02:28.51
>>646
そういう時は呼び出し元からファイル名を指定するようにする

Call ログ1()
Call ログ2()

って書かずに

Call ログ("test1.txt")
Call ログ("test2.txt")

ってする

Sub ログ(strFName)
  Set FSO = CreateObject("Scripting.FileSystemObject")
  With FSO.CreateTextFile(strFName)
    .WriteLine Now
    .Close
  End With
End Sub
650名無しさん@そうだ選挙にいこう:2013/02/17(日) 16:33:47.12
>>648
>>649
ありがとうございます。
Call
これはまだ使ったことないですが勉強しながら試してみます。。
651名無しさん@そうだ選挙にいこう:2013/02/17(日) 17:57:09.36
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

セルにドロップダウンリストをつけるにあたって、入力候補に斜線(罫線でセル全体に/を引くやつです)を
入れたいのですが、可能でしょうか。
よろしくお願いします。
652名無しさん@そうだ選挙にいこう:2013/02/17(日) 17:58:53.28
>>646
FileSystemObjetを参照設定しておけば

Public FSO As New FileSystemObject

っていうふうに宣言できる

参照設定のやり方はこの辺に書いてあるよ
http://support.microsoft.com/kb/186118/ja
653635:2013/02/17(日) 18:28:15.41
>>640
ありがとうございました。
変数は、Dim x As Variant, y As Longでいいのかな?
654名無しさん@そうだ選挙にいこう:2013/02/17(日) 18:37:06.21
やってから聞けよ
655名無しさん@そうだ選挙にいこう:2013/02/17(日) 18:44:32.12
>>653
答えじゃなくて申し訳ないけど
なるべく厳密に型を指定するほうが良い気がするので
俺だったらVariantは使わずに Dim x As Range,y As Long で宣言する
でも、もしかしたら何か拙いかもしれないから答えと言えるほど自信は無い
656名無しさん@そうだ選挙にいこう:2013/02/17(日) 18:58:16.92
>>645
勉強になりました。
しかし罫線をvbaって発想がないわ。
657635:2013/02/17(日) 19:02:10.68
>>654
やってから聞いてますが?
「ヴァリアント型にしる!」って怒られたから、Dim x As Variantと書きました。

>>655
ありがとうございました。
658635:2013/02/17(日) 19:09:09.25
>>636
ボタンクリックで集計し、表をつくり、印刷するところまでをVBAでやってるので、
その不定形な表に合わせた罫線が必要なんです。
659635:2013/02/17(日) 19:10:10.25
>>636じゃなくて、>>656でした・・・
660名無しさん@そうだ選挙にいこう:2013/02/17(日) 19:13:01.39
>>651
VBAを使わないと無理
擬似的にだけど、A1セルで 「 / 」と入力すると、斜線の罫線になるようなシートを作ってみた
http://www.dotup.org/uploda/www.dotup.org3956360.xls.html
VBA使えないなら全角「/」を入力できるようにしたほうがいいと思います。
>>658
大変だなw
がんばってね〜
661名無しさん@そうだ選挙にいこう:2013/02/17(日) 19:21:24.37
>>656
条件付き書式で使える線のスタイルには限りがあるし、古いExcelは条件を3つまでしか指定出来ない
VBAなら自由に枠線を引く事が出来る
662名無しさん@そうだ選挙にいこう:2013/02/17(日) 19:24:40.83
神奈川とかw
663名無しさん@そうだ選挙にいこう:2013/02/17(日) 19:30:42.23
>>657
>「ヴァリアント型にしる!」って怒られたから、Dim x As Variantと書きました。

出て来た疑問を逐一垂れ流してんじゃねぇよ。
664名無しさん@そうだ選挙にいこう:2013/02/17(日) 19:39:56.47
>>651
あー、条件付き書式があったな
リストに「/」を入れておいて、
文字列が「/」と等しい場合に
「文字色を白」、「罫線を斜線」
にすればvba使わなくてもいけるわ
>>663
まぁまぁ
665名無しさん@そうだ選挙にいこう:2013/02/17(日) 19:42:19.38
別にいいじゃん勉強になるし
なにそんなかっかしてんの
666名無しさん@そうだ選挙にいこう:2013/02/17(日) 19:58:01.03
答えたのに、お礼がなかったとかw
ケツのアナが・・・

            臭いヤシ
667レス代行していただいてます:2013/02/17(日) 21:29:33.53
>>660 >>664
ありがとうございます。今>>664の方法で試しているところです。
リストに/を入れて条件付き書式→/のセルを選択→セルの書式設定で
文字色を白まではいけたのですが、罫線の/が選択できない状態です。
どこか間違っているでしょうか。お手数かけてすいません
668名無しさん@そうだ選挙にいこう:2013/02/17(日) 21:38:12.47
条件付き書式ではセルに斜線は引けない、線種に二重線や太線も選べない
669名無しさん@そうだ選挙にいこう:2013/02/17(日) 22:19:57.47
>>667>>668
うわ、本当だ、ごめんね。
斜め線だけできないとは知らなかった。
ってかなんでできねーんだよwwwくそwww

というわけで、俺では>>660のVBA、ワークシートチェンジしか思いつかない。
670レス代行していただいてます:2013/02/17(日) 23:24:36.99
>>668>>669
なるほどそうなんですね…。
では>>660さんの方法でやってみます。わざわざ作ってくださってありがとうございました!
671561:2013/02/18(月) 10:20:03.56
>>574
ありがとうございます。

追加で質問なのですが、ボタンでマクロを実行したさいに、最後の方で実行途中のまま進まなくなります。
そこでクリックを押したりしたりするとマクロが正常に終了するので、業務上は問題ないのですが、
きちんとマクロを最後までキレイに終了させる方法はありませんか?
672名無しさん@そうだ選挙にいこう:2013/02/18(月) 10:53:44.16
>>671
それって99%はプログラムのミスだから「よく見直せ」としか言えない
残り1%は「仕様だからあきらめろ」
673名無しさん@そうだ選挙にいこう:2013/02/18(月) 12:20:47.16
ステップ実行でどこで止まってるのか確認すればいいのに
674名無しさん@そうだ選挙にいこう:2013/02/18(月) 13:04:52.99
>>671
5行目を
fName = Dir(ThisWorkbook.Path & "\" & "*.xls")
に戻して
7行目を
Workbooks.Open Filename:=ThisWorkbook.Path & "\" & fName
でどうだろう
675名無しさん@そうだ選挙にいこう:2013/02/18(月) 16:30:20.91
EXCEL2010です。
VBAを使わないで、選択した複数のシートの全データを列方向につなげて
1つのシートにコピーできる関数があれば教えて下さい。
(文字列コンカチネートのシート版みたいなイメージ)
676名無しさん@そうだ選挙にいこう:2013/02/18(月) 18:52:15.88
>>675
ありません。
677名無しさん@そうだ選挙にいこう:2013/02/18(月) 19:18:02.84
VBA無しでシートの選択状態をどうこう考える事自体が無理
678名無しさん@そうだ選挙にいこう:2013/02/18(月) 22:19:00.77
エクセルに図形を挿入して、その中に文字を入れたいです。
昔のエクセルでは、図形のサイズに応じて、長くなりすぎた文字列は自動で縮まった気がしたのですが、今のエクセルにはそのような機能は無いのでしょうか?
検索したら、文字列に合わせて自動でテキストボックスのサイズを変更するという意味のわからないものばかりが引っかかりましたが、四角の方は大きくしたくないです。

関数とかVBAとかの質問ばかりのところ初歩的な質問で申し訳ありません。
679名無しさん@そうだ選挙にいこう:2013/02/18(月) 23:03:31.13
下記のようなマクロで、途中の行が非表示だったら
MsgBox i & "行目が非表示です!" とメッセージを出すには
どう書けばいいですか?

Sub test()
 For i = 2 To 10
  If Cells(i, 1) = "合格" Then
   Cells(i, 3) = 10
  End If
 Next
End Sub
680名無しさん@そうだ選挙にいこう:2013/02/18(月) 23:13:49.15
For i = 2 To 10
if Rows(i).Hidden = True then
MsgBox i & "行目が非表示です!"
end if
Next
681679:2013/02/18(月) 23:34:13.38
>>680
おぉぉ、素早いご回答ありがとうございます。
682名無しさん@そうだ選挙にいこう:2013/02/19(火) 05:57:17.71
>>678
図形を右クリック、図形の書式設定
あとは開いた窓の中を見ればわかる。
683名無しさん@そうだ選挙にいこう:2013/02/19(火) 10:39:00.88
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 使えない
【4 VBAでの回答の可否】 可
Private Sub CommandButton10_Click()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
CommandButton10.Enabled = False
Dim Last_Row As Long
Dim Sheet_Count As Long
On Error GoTo Finish
For Sheet_Count = 1 To 50
Sheets("Sheet" & Sheet_Count).Select
ActiveSheet.AutoFilterMode = False
ActiveSheet.Range("B3:L3").Select
Selection.AutoFilter
ActiveSheet.Range("$B3:$L34").AutoFilter Field:=3, Criteria1:=">13"
ActiveSheet.Range("B4:L34").Select
Selection.Copy
ActiveSheet.AutoFilterMode = False
Sheets("統合").Select
Last_Row = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
Cells(Last_Row + 1, 1).Select
ActiveSheet.Paste
Next
Exit Sub
Finish:
End Sub

上記のコードだと、オートフィルターの>13で引っかからない場合にすべてをコピーして、貼り付けてしまいます。
オートフィルターで検索されたセ数が0の場合に、コピーを0にするか、またはコピーしないにはどうすればよろしいでしょうか?
if アクティブシートでの検索結果が0 then next みたいなのってどうすればいいですか?
684名無しさん@そうだ選挙にいこう:2013/02/19(火) 14:54:12.18
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010

オートフィルタってやつをすると、横に設置してあるボタンの位置がそれに合わせてずれるのですが
対処方法はないですか?
685名無しさん@そうだ選挙にいこう:2013/02/19(火) 15:15:12.59
>>684
それくらいまずググってから聞けよ
図形を右クリック⇒図形の書式設定⇒プロパティ
⇒「セルに合わせて移動やサイズ変更をしない」
686679:2013/02/20(水) 02:57:52.28
>>679-680の関連です。
非表示行があったら、2行を再表示するため次のように書きました。

For i2 = 3 To 100 Step 2
 if Rows(i2).Hidden = True then
  Rows(i2 & ":" & i2 + 1).Hidden = False
 End if
Next

Rows(i2 & ":" & i2 + 1).Hidden = Falseでも動作しましたが、
他の書き方があれば教えてください。
687名無しさん@そうだ選挙にいこう:2013/02/20(水) 12:41:54.20
rows(i2).resize(2).Hidden = False
688名無しさん@そうだ選挙にいこう:2013/02/20(水) 14:44:38.44
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 少しだけ
【4 VBAでの回答の可否】 可
(UserForm上)
Private Sub CommandButton1_Click()
Columns("B:F").Select
Selection.Clear
If OptionButton1.Value = True Then
Sheets("情報").Activate
ActiveSheet.AutoFilterMode = False
ActiveSheet.Range("D4:G4").AutoFilter
ActiveSheet.Range("D4:G4").AutoFilter Field:=4, Criteria1:="=欠席"
ActiveSheet.Range("D4:G2000").Select
Selection.Copy
Sheets("確認").Activate
ActiveSheet.Range("B2").Select
ActiveSheet.Paste
  Elseif ……(上とほぼ同じ)…… ×4
End If
Unload Me
End Sub

これでメモリ不足ってのが発生してしまうんですが、原因はなんでしょうか?
一応最後までいって終了する時に発生するので運用はできるのですが……
689名無しさん@そうだ選挙にいこう:2013/02/20(水) 14:58:15.81
すみません、エクセル閉じてやり直したら出なくなりました
690名無しさん@そうだ選挙にいこう:2013/02/20(水) 15:03:47.32
メモリ不足はメモリ不足だろ
7で1GBとかしか積んでないメーカーPC買うとそうなる
691名無しさん@そうだ選挙にいこう:2013/02/20(水) 15:09:20.12
一応6gb積んでます……
692名無しさん@そうだ選挙にいこう:2013/02/20(水) 15:15:54.93
じゃあ今度また同じようなエラー出るようになったらブレークポイント付けてどの時点でメモリ使用量が上がってるのかを調べる
693名無しさん@そうだ選挙にいこう:2013/02/20(水) 16:49:36.35
6GBでも使い方次第で本当に不足するからな
うちじゃ12GB中10GB以上使ったら警告出るようにしてるが、偶にこの警告出るし
694679:2013/02/20(水) 20:52:55.31
>>687
ご回答ありがとうございます。
Resizeって、Range以外にも使えるんですね・・・ メモメモφ(..)
695名無しさん@そうだ選挙にいこう:2013/02/20(水) 21:11:28.19
>>694
Rowsの中身はRangeなのです
Rows(i2 & ":" & i2 + 1) は Range(i2 & ":" & i2 + 1) と書き換えることもできます
696名無しさん@そうだ選挙にいこう:2013/02/20(水) 23:20:46.56
最近VBEを必ず使うようになってきたのですが
Excel起動時にデフォルトでVBEが表示されるようにすることは出来ないのでしょうか?
697名無しさん@そうだ選挙にいこう:2013/02/20(水) 23:36:19.42
>>696
個人用マクロブックかアドイン

質問時必須情報(>>1-3参照)を書いてないので、こっちも具体的な方法は伏せる

まあ簡単なので、VBEを自動で起ち上げたいってくらいVBAを使い込んでる奴なら
具体的な方法などそもそも教える必要など無いだろうがな
698名無しさん@そうだ選挙にいこう:2013/02/21(木) 00:29:05.97
>>697
ありがとうございます。
699ぴころ ◆lHG3Yzo0a6 :2013/02/21(木) 00:54:56.19
VBEはショートカットキー[ALT]+[F11]で起動しましゅ(^▽^)
700名無しさん@そうだ選挙にいこう:2013/02/21(木) 19:18:25.03
VBAの実行を繰り返していると
スタック領域が不足しています (エラー 28)
と出てきますが
プロシージャの数は100ほどで1回に実行されるのはせいぜい10個も事項されない感じなのですが
実行を繰り返すと実行されたプロシージャを記憶してるのか最後は速エラーが出るようになるのですが
BOOKを閉じてまた開くと初期化されるようですが
単発実行して終了する時、End時に記憶された物をその都度すべてクリアする事は出来ないのでしょうか?
701名無しさん@そうだ選挙にいこう:2013/02/21(木) 19:20:37.99
再帰しすぎなんじゃない
702名無しさん@そうだ選挙にいこう:2013/02/21(木) 19:20:42.15
>>700
10個も事項>10個も実行、、、でしたすみません。
703名無しさん@そうだ選挙にいこう:2013/02/21(木) 20:14:07.46
>>700
詳しく説明しますと80通りぐらいの個別の実行分を80のプロシージャに記述し
ショートカットキーを使って実行させると表のデーター数カ所の数値の計算結果に応じて80の内の3〜5個ぐらいのプロシージャが実行されます、
その後最後はend ステートメントで終了するようにしています。

表の値を変えながら ショートカットキーをぽちぽち押していくと数十回程度押すとエラーが出始めます
最後は押した瞬間エラーが出ます。
endステートメントは変数の値をクリアする機能があると説明されているようですが何故スタック領域が不足するのか謎です。。
704名無しさん@そうだ選挙にいこう:2013/02/21(木) 20:21:46.44
End は開いているリソースの後処理を何も行わずにアプリケーションを終了させるため、
使用する前にリソースを正しく閉じてみる必要があります。 たとえば、アプリケーションの
フォームが 1 つでも開いている場合は、制御が End ステートメントに到達する前にフォームを
閉じてください。

End の使用はできる限り控えて、すぐに停止する必要がある場合にのみ使用してください。
通常の方法 (Return ステートメント (Visual Basic) および Exit ステートメント (Visual Basic))
を使ってプロシージャを終了させれば、プロシージャを正しく閉じることができるだけでなく、
正しく閉じるための処理を呼び出し元のコードに追加することもできます。 たとえば、
コンソール アプリケーションの場合なら、Main プロシージャから Return を実行するだけです。
705名無しさん@そうだ選挙にいこう:2013/02/21(木) 23:27:38.35
>>704
初心者でしてExit ステートメント Return ステートメントをどうやって使えばいいかヘルプを見た感じではぱっと理解出来ませんでしたが勉強してみます。
ありがとうございます。

80個をばらして細分化し何がエラーの原因になっているのか時間をかけてチェックしてみます。
PC再起動でエラーの回数が減ったりしたようですが、
VBAは何でも出来ると思っていましたが
こんなエラーが出るアプリはやっかいですね、、w
706名無しさん@そうだ選挙にいこう:2013/02/21(木) 23:44:12.39
スタック領域が不足しています (エラー 28)

・スタックの詳細は不明
・解放の仕方は無い?
これは逆に言えばVBAはいつエラーが起きてもおかしくないプログラムで、
起きるメカニズムもブラックボックスで解明のしようがない
よってVBAは本当に複雑で膨大で確実性が求められる処理には向いていないという理解でOKでしょうか?
707名無しさん@そうだ選挙にいこう:2013/02/21(木) 23:47:36.50
exitはsubの上に書くだけでok
Sub a()
'処理内容
Exit Sub
End Sub

VBAだとreturnは使えなくないか
708705:2013/02/21(木) 23:54:41.05
>>707
ありがとうございます。
709名無しさん@そうだ選挙にいこう:2013/02/21(木) 23:55:48.10
>>706
スタック領域を使い切るようなプログラムを組んでいる人が悪いだけです。
確かに未知のバグの可能性も否定できないが
少なくとも私はそうしたエラーで困ったことがないし、聞いたこともない。

複雑で膨大な処理がどこからかはわかりませんが、
あくまでアプリケーションの付属品の上、ずっとアップデートしていないので
現行の言語より使い勝手は劣りますね。

一番の問題は多人数開発の環境がないに等しいことです。
710名無しさん@そうだ選挙にいこう:2013/02/22(金) 00:01:02.08
処理の所々でエクセルが使ってるメモリの量や空きメモリ量を監視して
一定量を超えたらブレークさせてローカルウィンドウ等で変数の状態を見てけば原因はわかるんじゃないの
711名無しさん@そうだ選挙にいこう:2013/02/22(金) 00:03:42.39
>>709
とあるビックデータの解析で
10→40→80と増やし最終的には10000以上までプロシージャ数を増やす予定でしたが
この計画は泡と消えそうですね、、
712名無しさん@そうだ選挙にいこう:2013/02/22(金) 00:07:27.75
>>711
心配しないでください、あなたのプログラミングスキルが足りないだけです
713名無しさん@そうだ選挙にいこう:2013/02/22(金) 00:08:37.06
どんな解析処理なのかわからないんでなんともいえないけど
VBAで10000プロシージャは常識を超えてるね
設計に問題はないのかとまず疑うレベル
714名無しさん@そうだ選挙にいこう:2013/02/22(金) 00:15:06.51
百聞は一見に如かず、そのスタックを使い切るプロシージャのソースを見てみたい
715名無しさん@そうだ選挙にいこう:2013/02/22(金) 00:17:08.47
>>713
10000プロシージャで授業員500~1000人に匹敵する計算処理が自動で処理出来て
これで仕事も人生も安泰かと勝手にワクワクしていました。(マジで笑)

>>714
お見せするのは厳しいです、、
716名無しさん@そうだ選挙にいこう:2013/02/22(金) 00:22:09.96
>>715
データ処理のキモになる部分は省いて、コメントも全部外して、変数名も適当に変えて、見せてくださいな
717名無しさん@そうだ選挙にいこう:2013/02/22(金) 00:51:48.53
>>711
そこまで行くと、VBAのコードでメモリが食い潰されてる気がする
staticとかそういう次元じゃなさそう
718名無しさん@そうだ選挙にいこう:2013/02/22(金) 02:03:39.66
>>715
もうちょっとプログラムも人生も、効率的に回せるようになるといいね
719名無しさん@そうだ選挙にいこう:2013/02/22(金) 10:34:15.38
質問です。
EXCEL97の時代から2010まで、エクセルで注文書を書いているのですが、
過去の文字列を膨大なファイルの中から検索する方法はありますか?
2000の頃まではフリーソフト(何とかFIND?)があったのですが、現在はアドインとして使えないみたいです。
720名無しさん@そうだ選挙にいこう:2013/02/22(金) 11:02:51.68
Windows自体のドキュメント検索機能の詳細オプションで何とかならない?
721名無しさん@そうだ選挙にいこう:2013/02/22(金) 11:54:19.16
それ以上に高速化したいなら、過去の分と、今後は月が変わったら前月分を
データベース化しちゃったら?

ちょっと事前準備的な手間は掛かるがExcelブックのまま検索するのとは比べものにならない速さだよ
まあそれをやるかは、検索を行う頻度と相談して決めればいい
年に1,2度程度しか過去注文書の検索をやらないならDB化する手間の方が大きいかも知れないが
頻度が多ければ、毎度の検索で短縮できる時間がDB化の手間を上回るし
722名無しさん@そうだ選挙にいこう:2013/02/22(金) 11:54:46.10
>>719
Windows Vistaから、Windowsの検索機能はファイルの中の文字列も検索の対象になった
パスワードがかかってなければExcelやWord文書の中も検索してくれる
逆にファイル名だけで検索するのが手間になったので、こっちをフリーウェアでやる人が多い

それで絞り込んでから、ファイルを開いてExcelの検索機能で検索すれば、
二度手間だけど目的は一応達成できる
723名無しさん@そうだ選挙にいこう:2013/02/22(金) 12:51:03.16
excel2010で、郵便番号ウィザードがインストールしようとすると、Microsoft excel が見つかりませんと表示されます。

[ハードディスクにダウンロードした zipcode7.xla を以下の場所へコピーします。スタートメニューの[プログラムとファイルの検索]ボックスに以下のパスを入力してEnterキーを押すと、Libraryフォルダが開きます。]
↑この意味が全く分かりません。プログラムとファイルの検索にパスワードを入れても一致する項目はないと出ます。

どなたか分かる方居ますか?
ちなみに郵便番号辞書はインストールできました。
お願い致します。
724名無しさん@そうだ選挙にいこう:2013/02/22(金) 13:28:25.06
>>723
http://iup.2ch-library.com/i/i0859787-1361506927.png

↑の画像のようにウィンドウズスタートボタンを押すと赤く囲んだ検索するところがあるからそこへ zipcode7.xla を入力
して検索かけてください っという意味でしょう。
725700:2013/02/23(土) 04:58:43.36
>>714
ひたすらググってようやく似たような事例を発見しました。
http://www.gizcollabo.jp/vbtomo/log/archive/vbqanda_2480_3.html
一番最後の箇所で述べられています
SubプロシージャA(終了処理でBを呼び出す)
SubプロシージャB(終了処理でCを呼び出す)
SubプロシージャC(終了処理でAを呼び出す)
このように芋づる方式で自分も書いています、基本的に取得数値に応じて途中でendで終了するようになっていますが
最後まで到達した場合80プロシージャを通過していくことになりこれがエラーの原因になっていると解説されていました
解決方法の箇所を見ると芋づるではなく一つのセプロシージャからひたすら呼び出だせばOKと書かれているようですが
おそらく数百から数千を呼び出す仕組みを書くには相当時間をかける必要がありそうで挫折気味ですがw
プロシージャ数がエラーの原因なら1プロシージャに40個ぐらいのIF文を書いて回避出来るのではないかと思ったりしました。
726名無しさん@そうだ選挙にいこう:2013/02/23(土) 05:14:41.84
アホの子か
727700:2013/02/23(土) 05:24:05.29
>>725
といいますがユニット化されたプログラムは基本芋づる式で動かすのは常識ではないかと思うのですが
何で100個程度でエラーになるのかVBA初心者としては納得いかない物がありますwがエラーを出す理由は何なのでしょうか?
MSならWindowsのメモリーの制御もたやすい物だと思いますがえらく小さいサイズに設定しているようですが処理スピード維持意外に何か都合の悪いことでもあるのでしょうか?
728名無しさん@そうだ選挙にいこう:2013/02/23(土) 05:25:31.54
>>726
超眠くて文章がまとまっておらずスミマセン。w
729名無しさん@そうだ選挙にいこう:2013/02/23(土) 06:27:23.04
>>727
とりあえずコードを晒さないならもうその話終わりにしてね。
今までの内容からだと、基礎の基礎さえも無視した初心者が自分で理解できる範囲で無理やりコード書いてる状態にも思えてしまいます。
730名無しさん@そうだ選挙にいこう:2013/02/23(土) 08:23:24.99
たとえばメインからサブAを呼び出して処理を終えたら、サブAからメインに帰るのが基本。
サブAの結果によってその後の処理を変えたいなら、サブAがメインに変数を渡せばいい。
731名無しさん@そうだ選挙にいこう:2013/02/23(土) 10:03:34.43
>>725

>SubプロシージャA(終了処理でBを呼び出す)
>SubプロシージャB(終了処理でCを呼び出す)
>SubプロシージャC(終了処理でAを呼び出す)

最後の三行目はおかしいっていうかダメだろ
これって要するに再帰呼び出しになるから、
どこかで処理をやめないとどんどんスタックを消費する
まぁ、正解は>>730ってこった
732名無しさん@そうだ選挙にいこう:2013/02/23(土) 10:08:48.28
シート1に下のような顧客データ3000件ほどあります。
A       B         C
千葉県  館山市○○   契約済
東京都  葛飾区○○   契約否

シート2に、契約の済んでいる県を、県別にカウントしたいのですが、関数の数式がわかりません。
分かる方お教えください。
よろしくお願いします。
733名無しさん@そうだ選挙にいこう:2013/02/23(土) 10:12:24.78
まともに作ったらプロシージャの呼び出しだけでスタックを食い潰すはずがない

>>729
コードが晒されたとしても、たぶんひどいスパゲッティでとても読む気になれない
734名無しさん@そうだ選挙にいこう:2013/02/23(土) 10:13:50.75
>>732
そういう時は数式じゃなくてピボットテーブルを使え
手順通りに10回ぐらいクリックするだけで集計された一覧表が作れる
735名無しさん@そうだ選挙にいこう:2013/02/23(土) 10:21:20.57
732です。
ありがとうございます。でも会社のシートなので、ピボットに変えることができないのです。
引き続き、分かる方お願い致します。
736名無しさん@そうだ選挙にいこう:2013/02/23(土) 10:42:12.90
>>732
=SUMPRODUCT(($A$1:$A$3000="東京都")*($C$1:$C$3000="契約済"))
737名無しさん@そうだ選挙にいこう:2013/02/23(土) 10:54:25.12
別シートか
=SUMPRODUCT((シート1!$A$1:$A$3000="東京都")*(シート1!$C$1:$C$3000="契約済"))
738名無しさん@そうだ選挙にいこう:2013/02/23(土) 11:00:16.42
736さん。
出来ました☆
本当にありがとうございました!
739ぴころ ◆lHG3Yzo0a6 :2013/02/23(土) 13:53:01.12
このスレは良スレでしゅ(^▽^)
740名無しさん@そうだ選挙にいこう:2013/02/23(土) 17:10:09.54
大きなお世話かもしれんが、SUMPRODUCTは数が増えると重くなるよ
フラグとSUMIFの組み合わせでやる方法もある
741名無しさん@そうだ選挙にいこう:2013/02/23(土) 17:42:18.18
Dictionaryを使う手もある
742名無しさん@そうだ選挙にいこう:2013/02/23(土) 22:25:41.85
countifsはもう少し認知、評価されていい。
引数の並び方が大変分かりやすい。
743名無しさん@そうだ選挙にいこう:2013/02/24(日) 02:35:12.26
あと出して「Office2003なんです」と言われるのがオチなので環境が書いてない時はあえて持ち出さない
744名無しさん@そうだ選挙にいこう:2013/02/24(日) 04:22:35.05
いいやん
誇りを持てよ
745名無しさん@そうだ選挙にいこう:2013/02/24(日) 11:24:21.92
そんな後出しのおれ知ってるけど感出されてもなあ
746名無しさん@そうだ選挙にいこう:2013/02/24(日) 12:50:37.59
VBA初心者ですが
プロシージャ内で指定行数や先に書かれている特定の命令へジャンプさせる命令は無いのでしょうか? 
IF文ならIF文内でのジャンプは行われていますがもっと自由に指定した箇所へ速ジャンプ出来る命令をさがしています
プロシージャ間ならプロシージャ名を記述するだけでできますがプロシージャ内で同じような事を行う事は出来ないのでしょうか?
747名無しさん@そうだ選挙にいこう:2013/02/24(日) 12:55:38.55
GoToがあるけど多用は勧めない
748746:2013/02/24(日) 13:03:11.91
>>747
GoToは同一プロシージャ内で使えるのですね
しかもサブルーチンなんて指定も出来るとは知りませんでした、一歩前進しました。
ありがとうございました。
749名無しさん@そうだ選挙にいこう:2013/02/24(日) 13:04:45.99
エラートラップ以外ではGoTO使わないのが基本

そもそもGoTOの移動先にしたいような場所は、だらだらと繋げず
そこから別プロシージャに分けるべき場所と認識した方が良い
750名無しさん@そうだ選挙にいこう:2013/02/24(日) 13:07:24.42
goto、テスト以外で使ったことないや。
そんなに必要な場面ってあるのの?
751746:2013/02/24(日) 13:09:59.76
>>749
>>750
別プロシージャに分けすぎ
>>700
この現象が起きたため次は可能な限り1プロシージャ内に記述してみようと見直しています。。
752名無しさん@そうだ選挙にいこう:2013/02/24(日) 13:20:34.70
試行錯誤もいいけど、構造化プログラミングを基礎から勉強しなおしたほうが効率的だと思う
753名無しさん@そうだ選挙にいこう:2013/02/24(日) 14:01:19.35
>>751
>>725を見る限り、
プロシージャ分けすぎてるんじゃなくて、
呼び出したプロシージャを正しく終わらせてないから
スタック領域が開放されないんですよ
Callは飛び先のプロシージャでのEnd SubもしくはExit Subで
元のプロシージャに戻るわけで、そのために呼び出し元の情報を記録してます。
725の例みたいに
プロシージャA、B,Cがあって、
AからBをCall、そのBからCをCall、CからAをCall、なんてことをやっていると
戻り先の情報がどんどん溜まっていき最終的にスタック不足になります。

>>730にあるようにメインのプロシージャを作っておいて
そこからAをCall、AからEndSubでメインに戻って
つぎにメインからBをCall、みたいな構造にしておけばいいんですよ。
754名無しさん@そうだ選挙にいこう:2013/02/24(日) 14:04:16.60
>>751
スタック不足になるのは設計ミスというか単なるバグ
プロシージャをまとめるなんていう間違った対策をしちゃいけない
基本がわかってないと、たぶん何をやってもいずれ破綻する

あとVBAの話題はVBAスレで
あっちはもっと厳しい人が多いけどな
755名無しさん@そうだ選挙にいこう:2013/02/24(日) 14:10:03.58
みんなやさしい
756751:2013/02/24(日) 14:10:49.91
>>753
詳しい説明ありがとうございます
自分はすっかり
スタック領域が不足しています (エラー 28)
に相当警戒しています、、w 破滅的なエラーですので
教えて頂いた情報を参考に事前に負荷検証しながら書き進めて逝きたいと思います。
757名無しさん@そうだ選挙にいこう:2013/02/24(日) 14:11:53.03
それくらい自分で直せるようになっとかないとこれから先別のエラーが出た時困るよ
758名無しさん@そうだ選挙にいこう:2013/02/24(日) 14:21:32.11
なんでvbaで負荷検証なんて必要になるんだよ・・・
759名無しさん@そうだ選挙にいこう:2013/02/24(日) 14:47:11.10
>>754
基本をもっと勉強します、ありがとうございます。何と!VBAスレがあるとは知りませんでしたw 元々Excel初心者でしたが最近VBAを覚えそのままここへ質問していました、、のぞいてみます。
>>757
>>758
解析するデータが大きくVBAを使い数週間から1ヶ月ぐらい24時間計算処理を続ける事を考えています
その過程においていつ発生するかわからない
スタック領域が不足しています (エラー 28)
はあり得ない現象だと思っています。
1ヶ月稼働させる中でたとえプロシージャ数が3つだったとしても1回の受け渡し処理を別処理として新規で記憶し続ける
構造になっているとしたらちりも積もればで何週間かたつとエラーが出るという事になるかと思われます。
760名無しさん@そうだ選挙にいこう:2013/02/24(日) 14:55:28.05
道具の使い方を根本的に間違ってる
不可能じゃないけど回り道だ
東京から大阪まで自転車で行くようなもん

そういうのはVBAじゃなくて、せめてVBを使え
VisualStudioも個人使用なら無料だし、エディタのアシスト機能もVBEと比較にならないほど充実してるから
初心者でもとっつきやすい
761名無しさん@そうだ選挙にいこう:2013/02/24(日) 15:02:21.48
言語の選択を誤っているな。
VBAはあくまでエクセルの付属品、単体のコンパイラに比べて恐ろしくパフォーマンスが悪い。
スタック領域のエラーじゃなくてもメモリ不足で落ちる可能性は十分にある。
なんのデータ解析かは知らんが、そのままいけば本当に後悔するぞ。
762名無しさん@そうだ選挙にいこう:2013/02/24(日) 15:02:29.56
>>759
エラー処理くらいしろよw
エラーを見越したプログラミングをすれば良いだけ
処理の進捗を管理しつつ、中間データをテキストで吐き出し、何かあっても最小のロールバックで済む様にするとか
763名無しさん@そうだ選挙にいこう:2013/02/24(日) 15:19:25.44
1週間とか1ヶ月単位で稼働させ続ける端末にWindowsを選ぶ事自体があたまわるい
そのうえでExcelとかさらにあたまおかしい
素直にお金払って業者に相談しなさい
764名無しさん@そうだ選挙にいこう:2013/02/24(日) 15:30:46.16
エクセルで1ヶ月フル稼働して解析するビックデータとか寒過ぎる
765名無しさん@そうだ選挙にいこう:2013/02/24(日) 17:31:15.21
>>760
>>761
>>762
なるほどVBってWindowsのアプリその物を作るものですか!
自分は多少のWEB系のプログラム経験がある程度ですので
今はまだそこまではという感じがあります、、敷居が高いですね
VBへ行くと計算式その物のコードを書き正しい答えを出しているか
検証する必要があるかと思いそこの所が気になります。
>>764
休日にやっていることからお察しいただけるかと思いますが
ふとした思いつきで実験的にやってる趣味のデータ分析です
知りたい答えが得られれば手段は何でも良いかと
ビックデータは解析理論がどうかにかかっていると思っています
http://www.youtube.com/watch?v=Q4gTV4r0zRs
766名無しさん@そうだ選挙にいこう:2013/02/24(日) 17:42:49.82
理論の前にプログラミングスキルを身に付けなさい
767名無しさん@そうだ選挙にいこう:2013/02/24(日) 18:56:44.22
>>765
そろそろVBAスレなりなんなり行ってくれ
頑張れよ
768名無しさん@そうだ選挙にいこう:2013/02/24(日) 20:44:34.98
VBA出来たらVBも出来ると思うわ
769名無しさん@そうだ選挙にいこう:2013/02/24(日) 20:48:15.49
他人にGOTOのやり方聞かなきゃいけない人には無理ってもんだ。
770名無しさん@そうだ選挙にいこう:2013/02/24(日) 20:57:36.12
GoToなんてコーディング規約でも禁止されてるところ多いし使えなくても問題ないだろ
771名無しさん@そうだ選挙にいこう:2013/02/25(月) 09:15:12.30
ヴォルクアップってコード番号みたいなもんがないと検索みたいなことはできないのか
772名無しさん@そうだ選挙にいこう:2013/02/25(月) 09:27:26.84
民主党の小宮山が大臣時代に通達した
日本の国民保険料を中国人へばら撒く超売国案件






【木原稔】民主党の置き土産、外国人への社会福祉問題[桜H25/2/22]
http://www.youtube.com/watch?v=DScjGw87gws#t=6m









.
773719:2013/02/25(月) 09:29:15.94
ありがとうございました。WIN標準の検索機能に気が付きませんでした。
774名無しさん@そうだ選挙にいこう:2013/02/25(月) 12:51:16.83
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
特定のセルにある文字列をシート名にコピーするマクロを作りたいのですが

Sub 名前()
Dim N As String
N = Sheets("sheet3").Range("B1").Copy
Sheets("sheet3").Name = N
End Sub

だと名前がtrueになってしまいます。どうしたらいいでしょうか?
775名無しさん@そうだ選挙にいこう:2013/02/25(月) 12:57:07.54
N = Sheets("sheet3").Range("B1").Text
776名無しさん@そうだ選挙にいこう:2013/02/25(月) 15:08:34.50
【1 OSの種類         .】 WindowsXP Professional Version2002 Service Pack 3
【2 Excelのバージョン   】 Excel 2007 SP3
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可・否

http://or2.mobi/data/img/51591.jpg
赤の矢印より右でセルが無くなっています
この設定の名称と設定と解除の仕方を教えてください
777名無しさん@そうだ選挙にいこう:2013/02/25(月) 16:37:47.17
>>776
ALより右の列を非表示にしてるだけじゃないの
AL列から右側の黒いとこまでドラッグしておいてから右クリック再表示でいいんでは
778名無しさん@そうだ選挙にいこう:2013/02/25(月) 16:50:14.70
>>777
表示、再表示できるようになりました。
ありがとうございました。
779ぴころ ◆lHG3Yzo0a6 :2013/02/25(月) 17:54:01.31
このスレは良スレでしゅ(^▽^)
780名無しさん@そうだ選挙にいこう:2013/02/25(月) 19:11:33.70
▼━質問テンプレ (必ず使ってね) ━━━
【1 OSの種類         .】 Windows xp
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

1.xls 2.xls 3.xls というファイルがあり、それらのファイルを参照させて
それぞれの項目の○×を集計したいのですが、可能でしょうか?
項目は決まっていないので、集計が001〜004まであるとは限りません。
(もしかしたら005という項目があるかもしれないということ。)
よろしくお願いします。

1
001 AAA
003 CCC
004 DDD

2
001 AAA
002 BBB
004 DDD

3
002 BBB
003 CCC

集計
        1 2 3 
001 AAA  ○ ○ ×
002 BBB  × ○ ○
003 CCC  ○ × ○
004 DDD  ○ ○ ×
781名無しさん@そうだ選挙にいこう:2013/02/25(月) 19:26:05.71
ファイルが3つしかないなら、いっこのテーブルにしてからピボットがいちばんかんたん
782名無しさん@そうだ選挙にいこう:2013/02/26(火) 02:43:37.36
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010

取り消し線のアイコンをリボン内にいれるにはどうすればいいですか?
逆に、フォントサイズの拡大・縮小、ふりがなの表示・不表示はいりません。
783名無しさん@そうだ選挙にいこう:2013/02/26(火) 02:48:02.75
リボンの設定を開いて左のリストを「その他のコマンド」にしてから「取り消し線」を探せば見つかる
784名無しさん@そうだ選挙にいこう:2013/02/26(火) 05:12:43.46
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2003、2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

A列に入力してある数値が一緒の場合はB列に入力してある文字列も一緒でなければならない
といった感じにしたいのですが上手くいきません
=IF(AND(COUNTIF($A$1:$A4,$A1)>=2,COUNTIF($B$1:$B4,$B1)=1),1,0)
=IF(AND(COUNTIF($A$1:$A4,$A2)>=2,COUNTIF($B$1:$B4,$B2)=1),1,0)
=IF(AND(COUNTIF($A$1:$A4,$A3)>=2,COUNTIF($B$1:$B4,$B3)=1),1,0)
=IF(AND(COUNTIF($A$1:$A4,$A4)>=2,COUNTIF($B$1:$B4,$B4)=1),1,0)

  A  B
100 リンゴ
100 リンゴ
100 リンゴ
100 ミカン
上記のような場合は「100 ミカン」がチェックされるのですが

  A  B
100 リンゴ
100 リンゴ
100 ミカン
100 ミカン
このような場合はスルーされてしまいます(「100 ミカン」が2か所間違っているので両方チェックしたい)
EXACT関数だと2つの比較しか出来ないようですし、どのような関数を使えば良いのでしょうか?
説明の為にA1〜A4までしか書いていませんが、実際はA50まで使用します
785名無しさん@そうだ選挙にいこう:2013/02/26(火) 08:42:02.95
>>784
リンゴが2つ、ミカンが2つで同じ数ですからリンゴが正解でミカンが間違いとする根拠がないように思います。
その辺をはっきりしないと解決しないんじゃないでしょうか。
「100の時はリンゴが正解」という風に決まっているんならVlookup関数とか使った方が楽な気がします。
786名無しさん@そうだ選挙にいこう:2013/02/26(火) 09:00:31.18
>>784
B列もりんごとみかんだけなら他の簡単なアプローチもある
あと関数式中の”範囲”が固定の場合$A$1:$A4ではなく$A$1:$A$4とするべき
もう少し言うと行(横)へのコピペをしないのならA$1:A$4でいい
787名無しさん@そうだ選挙にいこう:2013/02/26(火) 09:01:54.21
A列でソートしてからC列に =if(A1=A2,if(B1<>B2,"×",""),"") とかやればいんじゃね
788名無しさん@そうだ選挙にいこう:2013/02/26(火) 09:42:01.77
C列に =A1&B2 を入れる
A1、C1それぞれをcountifで数えた数が一致してればTrue、不一致ならFalseでいいのでは
789名無しさん@そうだ選挙にいこう:2013/02/26(火) 10:50:58.35
【1 OSの種類         .】 WindowsXP service pack3
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

お願いします。今度、職場で2台のPCを購入しました。
この2台のPC用にExcel2007を2つ別途買いました。(プリインストール版ではありません)
それぞれのPCにそれぞれのExcelをインストールすればなんの問題もありませんが
管理がめんどうなので1つのExcelを使い回しで入れたいと思っています。
ライセンスとしては2つ購入してるので問題ないと思ってますが
電話認証って2台のPCに可能なんでしょうか?
2台目をインストールすると1台目のライセンスは無効(使用不可)になるんでしょうか?
この2台のPCはインターネットにはつながっていません。ローカルLANにはつながってます。

よろしくお願いします。
790784:2013/02/26(火) 10:53:20.73
>>785
入力するシートによって正しいか否かが違います
「100 リンゴ」で正しい場合もあるし、「100 ミカン」で正しい場合もあります
これは入力する人によって100の時はリンゴ派とミカン派がいるので仕方ないのですが、
最初に「100 リンゴ」と入力したら、そのシート上の後の行のセルでは「100 ミカン」は駄目ですよ・・・
といった感じにしたいのです

>>786
B列は思いついただけでも20〜30種類あります(A列も同様に10〜20種類あります)
あと、$はご指摘の通りに「$A$1:$A4ではなく$A$1:$A$4」にしています。ここに書き込む時にミスりました

>>787
その方法だと実質的にEXACT関数での2つのセルの比較になるのではないでしょうか?
最大で50行ぐらいある全てのセルとの比較をしたいのです

>>788
その方法でも後者のケース(「100 ミカン」と「100 リンゴ」が2個ずつある場合)だとチェックに引っかからないかと
791名無しさん@そうだ選挙にいこう:2013/02/26(火) 11:04:33.05
管理が面倒の意味がわからん
別のプロダクトキーでアクティベーションするだけじゃん
792名無しさん@そうだ選挙にいこう:2013/02/26(火) 11:12:02.97
>>790
C列中に「100リンゴ」が2つ、A列中に「100」は4つ、数字が合いませんからエラーと判別できるでしょう

「100リンゴ」の数と、「100ミカン」の数を比べるのではありませんよ
793名無しさん@そうだ選挙にいこう:2013/02/26(火) 11:13:43.23
>>791
数年後にPCが壊れたとかで
このPCでどっちのExcelつかってたっけ?
ってなったりすると案外忘れてるもんですよ
さらにいうと企業だと使ってる人も入れ替わるわけで
PCの台数も数十台とかになってるかも知れんし
案外面倒なもんです
794784:2013/02/26(火) 11:16:53.10
補則ですがA1&B1のセルにチェックすべき数字、文字列が入力されるとは限りません
あと、説明の為に1〜4行目に比較すべき数字、文字列を記入していますが、
1〜2行目と35目〜40行目に「100 ミカン(リンゴ)」が記入される場合もあります
(時系列で並べてあるのでソートは出来ないです)
795名無しさん@そうだ選挙にいこう:2013/02/26(火) 11:45:52.59
>>794
C列に =IF(AND(A1<>"",B1<>""),A1,"")
D列に =IF(AND(A1<>"",B1<>""),A1&B1,"")
E列に =IF(C1="","空欄あり",IF(COUNTIF($C$1:$C$10,C1)=COUNTIF($D$1:$D$10,D1),"○","×"))
796名無しさん@そうだ選挙にいこう:2013/02/26(火) 12:15:40.75
>>793
それが管理できないレベルだと、会社として続かないだろうから、後々のことを心配する必要ないよ

それにライセンス絡みとかは、不特定の匿名ネット住人に問うべきものじゃない
メーカーに問い合わせるのが基本
そんな基本というか世の常識が解ってないことからも、先は長くなさそうだな
797名無しさん@そうだ選挙にいこう:2013/02/26(火) 12:41:41.42
>>796
一応、日本の超有名企業なんだけど
ある業界5指に入る&うん十年の歴史あり

まあ、いいたいことはその程度のことで会社はつぶれませんよってこと
エアー社会人のニートなんだろうけど世の中しらなすぎ
798名無しさん@そうだ選挙にいこう:2013/02/26(火) 12:49:42.54
匿名って便利ですね( ̄ー ̄)ニヤリッ
799784:2013/02/26(火) 12:52:38.66
>>795
おお、出来ました
ありがとうございました

これでチェックミスによる不良が削減できるかも?
こういうのを作っても運用されるか?ってのと、チェック漏れ(質問以外にもチェック項目あり)で
作った俺が悪い!とか言われそうだけど頑張ってみます
800名無しさん@そうだ選挙にいこう:2013/02/26(火) 12:55:24.83
>>797
そんな企業なのに専門の部署(IT部署とか)が無いの?
普通なら購入からインスコ、トラブル対処までお任せだと思うが
PCスキルの無い人間に丸投げって変だよな
801名無しさん@そうだ選挙にいこう:2013/02/26(火) 12:56:29.86
789の1ライセンス使い回しの方がよっぽど手間も管理も大変でしょうに
それでもなお1ライセンス使い回しを強行したいのであればmicrosoftに確認しなさい

業界5位以内の超有名企業って業務用のPCとソフトウェアの管理を担う部署すらないんですね
802名無しさん@そうだ選挙にいこう:2013/02/26(火) 12:59:17.02
>>799
お前、作ってないじゃん
仕組みを理解してチェック漏れ対応くらい追加しろ
803名無しさん@そうだ選挙にいこう:2013/02/26(火) 13:03:52.22
>>800
社内のシステムはすべて管理されててそのとおりだけど
一部管理外のテスト環境とかはそんな管理はされてない
上にも書いたけどネットにつながってないローカルネットっていったでしょ?
企業にはいろんなことがありえるのよ。勉強になったね
804名無しさん@そうだ選挙にいこう:2013/02/26(火) 13:11:17.19
>>803
子供じゃないんだから好きにしなさい
805名無しさん@そうだ選挙にいこう:2013/02/26(火) 13:26:43.68
プロダクトキーパソコンにペタって貼れるようになってなかった?
806名無しさん@そうだ選挙にいこう:2013/02/26(火) 13:41:31.07
苦しくなってきたなw
807名無しさん@そうだ選挙にいこう:2013/02/26(火) 13:43:30.88
きぎょうにはいろんなことがあるからあるんじゃねーの
バカが自分のバカ棚に上げてバカな事言ってんのも
808名無しさん@そうだ選挙にいこう:2013/02/26(火) 15:43:25.10
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
For i = 1 to 100
If ActiveSheet.Range("D" & i).Value = ">15:00" Then
ActiveSheet.Range("D" & i).Copy

上記のifで、15:00以上が判定されません。
どうしたらよろしいでしょうか?
対象のセルには"15:38"など時間が記入されています。
809名無しさん@そうだ選挙にいこう:2013/02/26(火) 15:44:47.95
VBA使えないのにVBAの質問かいな
810名無しさん@そうだ選挙にいこう:2013/02/26(火) 16:06:02.73
× = ">15:00"
○ >= TimeValue("15:00")

でもこれ解らないレベルだと、他にも問題いっぱいありそうだな
気付かないまま間違った結果を返してたりすることもあり得るし
811困ったよ・・・・:2013/02/26(火) 18:57:09.64
エクセル2級のデータ処理 設問2抽出条件がわかりません。
どなたか詳しい説き方を教えてください。
抽出先 セルB17以降
抽出条件(次の@又はAのいずれかを満たすものをタイトルを含めて抽出)
@「性別」が女子で、かつ、「タイム」が1:45:00以上で1:50:00以下のもの
A「氏名」に「田」が含まれ、かつ、「タイム」が1:45:00より速いもの

ひとつ ひとつは出せるのですが、二つ同時に抽出する方法じゃないと点が入らないと聞いて、
あせっています。

どなたかお教え願えませんか?
812名無しさん@そうだ選挙にいこう:2013/02/26(火) 19:11:41.31
カンニングでなく会社で困ってるとかいえばすぐレスがつくのにw
813名無しさん@そうだ選挙にいこう:2013/02/26(火) 19:36:05.98
え〜ん え〜ん  誰か教えてよぉ(;;)

落っこちるのいやだよぉ
814名無しさん@そうだ選挙にいこう:2013/02/26(火) 20:18:36.49
なんで落ちて困る奴がなんの努力もしてないのに
彼が落ちて何も困らない赤の他人が、そいつの手助けしなきゃならないんだ?

まず本気で教えて欲しかったら、自分勝手な質問の仕方せずに>>1-3くらい読んで従うだろ?
質問内容からして回答に関係なさそうとか勝手に判断せず、とりあえず郷に入りては郷に従えで
テンプレ使わなくても回答付ける教えたがりクンだけではなく、テンプレ無いと解答付けない奴からも
回答貰えるように、少しでも可能性を増やそうとするだろ?

そういう必死さや本気度が全然伝わってこないんだよね
テンプレってのは、回答に必要な情報って側面もあるけど、そういう質問者の態度を量るバロメータでもある
俺としては回答に必要な情報が欠けてようと質問者が本気なら情報を聞き返して答えてやるが
適当に質問したって回答付くだろうと高をくくってナメた態度で居る奴をつけあがらせるようなことをしようとは思わない


とかマジレスしてみる
815名無しさん@そうだ選挙にいこう:2013/02/26(火) 21:01:58.66
ひとつひとつが解るなら
AND(一つの条件、一つの条件)
でええんちゃうか
816名無しさん@そうだ選挙にいこう:2013/02/26(火) 21:12:17.18
>>811
指を使って数えなさい
817名無しさん@そうだ選挙にいこう:2013/02/26(火) 22:12:55.34
今宵は優秀な先生方ばかりですなw
818名無しさん@そうだ選挙にいこう:2013/02/26(火) 22:31:42.05
まずエクセル質問3級をとらないからこうなる
819ぴころ ◆lHG3Yzo0a6 :2013/02/26(火) 22:33:36.51
このスレは糞スレでしゅ(^▽^)
820名無しさん@そうだ選挙にいこう:2013/02/26(火) 22:52:29.31
Excelレベルじゃなくて日本語レベルが低すぎる
821名無しさん@そうだ選挙にいこう:2013/02/27(水) 00:06:25.47
>>811
実務的には腐るほど回答パターンがある
そんなクソみたいなテストの回答なんて不能
822名無しさん@そうだ選挙にいこう:2013/02/27(水) 17:32:01.87
そろばん8級ですが質問いいですか
823名無しさん@そうだ選挙にいこう:2013/02/27(水) 22:54:33.18
Excel ViewerなんですがWin7の64bitをクリーンインスコしたんですが
インストールの途中でエラーになってインストールできません。
64bitは非対応なんでしょうか?
824名無しさん@そうだ選挙にいこう:2013/02/28(木) 01:41:31.93
仕様やバグについてはメーカーにお問い合わせ下さい
825名無しさん@そうだ選挙にいこう:2013/02/28(木) 02:08:59.10
>>822
どうぞ
826名無しさん@そうだ選挙にいこう:2013/02/28(木) 11:46:35.24
2次元配列けつごうするときかたっぽだけダメなときのやりかたおしえて
827名無しさん@そうだ選挙にいこう:2013/02/28(木) 11:47:20.65
日本語で
828名無しさん@そうだ選挙にいこう:2013/02/28(木) 11:52:00.32
>>811
 
If (性別 = False And (タイム >= 1:45:00 And タイム <= 1:50:00)) Or (InStr(氏名, "田") And タイム > 1:45:00 then
 処理
End If
829名無しさん@そうだ選挙にいこう:2013/02/28(木) 11:53:37.94
If (性別 = False And (タイム >= 1:45:00 And タイム <= 1:50:00)) Or (InStr(氏名, "田") > 0 And タイム > 1:45:00 then
 処理
End If
830名無しさん@そうだ選挙にいこう:2013/02/28(木) 11:53:54.61
性処理に空目した
831名無しさん@そうだ選挙にいこう:2013/02/28(木) 17:54:48.84
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

就業開始時間が
2013/1/31 22:30:00
2013/2/1 2:17
2013/2/1 22:39
な形で1つのセルに記載されております。
この表から、22時台に就業開始した人が何人いるのかを求めるには、どうすればよいでしょうか?
832名無しさん@そうだ選挙にいこう:2013/02/28(木) 18:07:52.83
>>831
まず作業列に時刻だけを抜き出せ

時刻全体を抜き出したなら、22時以降の数-23時以降の数
時刻の「時」を整数で抜き出したら、22に一致する数を数えればOK

一応言っておくが、作業列使いたくないとかの条件後出しは無しの方向で
833名無しさん@そうだ選挙にいこう:2013/02/28(木) 18:14:49.11
>>831
=hour(セル番地)=22でぬきだせる
作業セル使えば簡単だと思う
834名無しさん@そうだ選挙にいこう:2013/02/28(木) 18:18:14.65
作業列使うのは問題ないですが、時間の入ってるシートは取り扱い数の関係から別のシートにしておきたいです。
23-22をしなくても、
=COUNTIF(A:A,TIME(22,"*","*"))
的な感じでどうにかならないでしょうか?
835名無しさん@そうだ選挙にいこう:2013/02/28(木) 18:19:08.45
hour関数で出来るっていってんじゃん
836831:2013/02/28(木) 18:33:11.75
>>835
=COUNTIF(HOUR(A:A),22))
ですね
ありがとうございます!
837名無しさん@そうだ選挙にいこう:2013/02/28(木) 22:16:32.18
DQNの定番SUMPRODUCTがでてねーなw
838名無しさん@そうだ選挙にいこう:2013/02/28(木) 22:32:57.21
=IF(>>837=DQN,"SUMPRODUCT,"")
839831:2013/02/28(木) 23:07:58.30
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

>>831です
作業列を作ってhourだけ抜き出す方法でやったのですが、データが7,000行と膨大なためか、ファイルサイズが
1.2MBから8.6MBまで肥大化してしまいました
あまりスマートでない&社内メール(w)に添付できる1ファイルの容量が5MB(爆笑)なので
もう少しファイルサイズが小さくなる方法を教えていただけないでしょうか?
840名無しさん@そうだ選挙にいこう:2013/02/28(木) 23:09:54.54
zipで圧縮しろボケ
841名無しさん@そうだ選挙にいこう:2013/02/28(木) 23:39:34.81
なぜ1列足しただけで1.2MBが8.6MBになるのか;
842名無しさん@そうだ選挙にいこう:2013/02/28(木) 23:48:39.91
配列数式使えば?
843名無しさん@そうだ選挙にいこう:2013/03/01(金) 00:02:50.04
扱えるファイルサイズ上限が5MBであることで、
爆笑してしまうほど感受性豊かな人と一度食事とかしてみたい。
自分の顔前面が相手方の噴出した米粒で埋まる自信がある。
844名無しさん@そうだ選挙にいこう:2013/03/01(金) 00:09:33.68
ファイルサイズ抑えたいならVBA使えばいいじゃん
VBAなら10行くらいで書けるでしょ
845名無しさん@そうだ選挙にいこう:2013/03/01(金) 00:21:56.18
100万行扱えるExcelで7000行を膨大って、なんのギャグ?
846名無しさん@そうだ選挙にいこう:2013/03/01(金) 00:53:23.60
a1-a1000に0を入れてみた
45.6kb
b1-b1000に
=IF(HOUR(A1)>=22,1,0)
を入れてみた
96.6kb

どんな作業列か分からんが、大変そうだな、ということはよくわかった。
847名無しさん@そうだ選挙にいこう:2013/03/01(金) 00:54:18.37
>>846はexcel2010のマクロ無し形式xlsxな
他の形式やバージョンは知らん。
848名無しさん@そうだ選挙にいこう:2013/03/01(金) 04:38:44.12
>>845
DB使えずに、DBで扱うべきデータまでExcelで処理してる君にとっては
日常茶飯事的なデータ量なんだろうな

うちでは一時的にならまだしも、数千行のデータを持つエクセルファイルを
サーバーにごろごろ転がしといたら怒られるけどなw
849名無しさん@そうだ選挙にいこう:2013/03/01(金) 08:42:17.87
へー
850名無しさん@そうだ選挙にいこう:2013/03/01(金) 09:57:18.32
>>839
7000件で1MB超えるのがすでにおかしいんちゃう?
7000行7列に日付・時間・名前・数量などダミーデータ入れて、作業列を入れても3〜400kb程度だけど。
1列2列追加して何MBも増えるのはおかしい。
851名無しさん@そうだ選挙にいこう:2013/03/01(金) 10:17:08.47
ヒント:書式

わざわざデータベースではなくExcel使ってるのは書式設定したいからだろ?
852名無しさん@そうだ選挙にいこう:2013/03/01(金) 10:28:49.73
しょうがない。作ってやったぞ。
Sub ボタン1_Click()
Dim cnt As Integer
cnt = 0
Dim row As Integer
For row = 1 To 3
If Hour(Cells(row, 1).Value) >= 22 Then
cnt = cnt + 1
End If
Next
MsgBox cnt & "人"
End Sub
853名無しさん@そうだ選挙にいこう:2013/03/01(金) 10:39:04.83
バージョンアップしてやったぞ。
Sub ボタン1_Click()
Const TARGET_COL As Integer = 1
Const START_ROW As Integer = 1
Const END_ROW As Integer = 3

Dim cnt As Integer
cnt = 0
Dim row As Integer
For row = START_ROW To END_ROW
If Cells(row, TARGET_COL).Value <> "" Then
If Hour(Cells(row, TARGET_COL).Value) >= 22 Then
cnt = cnt + 1
End If
End If
Next
MsgBox cnt & "人"
End Sub
854名無しさん@そうだ選挙にいこう:2013/03/01(金) 15:08:37.88
浮動小数の誤差って対策してますか?
やってるとしたらどのようにしてますか?
855名無しさん@そうだ選挙にいこう:2013/03/01(金) 15:09:23.66
VBAでやらない
javaでbigdecimal使う
856名無しさん@そうだ選挙にいこう:2013/03/01(金) 15:22:56.17
>>854
身も蓋もないけどそれが正解かなぁ・・・
857名無しさん@そうだ選挙にいこう:2013/03/01(金) 15:24:01.52
ちげぇ>>855
858名無しさん@そうだ選挙にいこう:2013/03/01(金) 22:02:16.89
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002SP3
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否
ここでいいのかちょっと迷うけど
EXCELの「ツール」−「マクロ」−「VisaulBasicEditor」で起動したVBエディタで
前後の行に桁揃えで入れた複数の半角空白やTABが勝手に半角空白1個に短縮されてしまう機能をオフにできないでしょうか
あるいはその機能はそのまま、明示的に半角空白を残す入力方法とか無いでしょうか
859名無しさん@そうだ選挙にいこう:2013/03/01(金) 22:05:03.59
>>858
ない
860名無しさん@そうだ選挙にいこう:2013/03/02(土) 07:25:51.57
先頭に '
861名無しさん@そうだ選挙にいこう:2013/03/02(土) 14:28:24.45
月曜から日曜日が延々と続く表を作ってるのですが(もちろんその上には日付あり)
土曜、日曜の下のセルに「○」と付けたいんですが分からない!!
皆様おしえろ下さい。。。
862名無しさん@そうだ選挙にいこう:2013/03/02(土) 14:31:46.39
863名無しさん@そうだ選挙にいこう:2013/03/02(土) 14:35:05.71
>>862
すまぬ
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
864名無しさん@そうだ選挙にいこう:2013/03/02(土) 14:40:42.56
1行目に日付、2行目に曜日、3行目に◯を表示だとしたら、A3に
IF(OR(A2="日曜日",A2="土曜日"),"◯","")
を入力してオートフィルでコピーしていく
865名無しさん@そうだ選挙にいこう:2013/03/02(土) 14:41:14.36
オートフィルのやりかたがわかりません
866名無しさん@そうだ選挙にいこう:2013/03/02(土) 14:47:28.45
>>864
863ですが○が出ない!!A2の所の選択がわるいのか?
867名無しさん@そうだ選挙にいこう:2013/03/02(土) 14:50:19.21
>>866
あなたは黙っててください!
868名無しさん@そうだ選挙にいこう:2013/03/02(土) 14:51:34.01
式提示されても式の意味理解出来なかったら意味ないよな
869名無しさん@そうだ選挙にいこう:2013/03/02(土) 14:56:46.74
曜日は書式で出してんじゃないの
870名無しさん@そうだ選挙にいこう:2013/03/02(土) 14:57:06.78
>>864
出来ました、恩に切ります!
871名無しさん@そうだ選挙にいこう:2013/03/02(土) 15:09:16.00
「恩に着る」だから
丁寧語に直すと「着ます」なんだよな
872名無しさん@そうだ選挙にいこう:2013/03/02(土) 15:13:30.66
恩を切ってどうするw
873名無しさん@そうだ選挙にいこう:2013/03/02(土) 19:26:37.67
バカしかいねぇなw このスレわ。
874名無しさん@そうだ選挙にいこう:2013/03/02(土) 19:29:34.11
おれわ例外だけどね
875名無しさん@そうだ選挙にいこう:2013/03/02(土) 20:15:09.74
確かに
君は単なるバカではなく、例外的な大バカだもんな
876名無しさん@そうだ選挙にいこう:2013/03/02(土) 21:16:00.88
俺はバカな男さ、笑ってくれよ
877名無しさん@そうだ選挙にいこう:2013/03/02(土) 23:20:06.12
ははは・・・
878名無しさん@そうだ選挙にいこう:2013/03/03(日) 06:14:23.32
でも、マジな話、ぐぐればすぐにわかるようなことを、こことか、
質問サイトで聞くようなヤツは、バカが多いよ。
879名無しさん@そうだ選挙にいこう:2013/03/03(日) 07:36:42.42
【1 OSの種類         .】 Windows 7ultimate
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否

空のエクセルファイル作成して、適当な文字列入力して
上書き保存を押すと「応答なし」になるんですけど
誰かぼすけて

ちなみに20セルぐらいに文字入力すると反応しません
880名無しさん@そうだ選挙にいこう:2013/03/03(日) 08:29:35.39
>>879
OSをクリーンインストールしてからExcel入れ直しても同じ症状出るか検証してみて

因みに面倒とか、先に他の方法教えてとかは却下
金かけずに質問できる場で解決しようと思うなら、面倒でも自分で出来ることは自分でするのが鉄則
それが嫌なら金使って解決してくださいな
881名無しさん@そうだ選挙にいこう:2013/03/03(日) 08:49:07.12
OSの問題かこれ?
HDDとかのハード系な気がする
882名無しさん@そうだ選挙にいこう:2013/03/03(日) 09:04:33.18
Excel以外のソフトが大丈夫なら変なマクロが動いてるかも

Excelのスタートアップをいったん止めてみて
ttp://www.relief.jp/itnote/archives/003353.php
883名無しさん@そうだ選挙にいこう:2013/03/03(日) 10:30:12.19
>>879
エクセル 応答なし
でぐぐって色々試してみてほしい
とりあえずエクセルの再インストールかな。
OSごとの再インストールはまた後でいいだろう
884名無しさん@そうだ選挙にいこう:2013/03/03(日) 11:52:22.67
はじめまして、今excelでA列に244007このデータがあって、
それをA2475から101個のデータをA2578から101個のデータ、
A2681から101個・・・といった風にA24153までB列に連続して表示したいのですが
、手作業ではとても時間がかかりすぎてしまいます。どうか早くできる方法を教えていただけないでしょうか?
885名無しさん@そうだ選挙にいこう:2013/03/03(日) 12:04:58.07
>>884
「VBAで出来るから自分でコード書いて」 (>>3★2参照)
886名無しさん@そうだ選挙にいこう:2013/03/03(日) 12:30:40.78
なんかちょっと意味わからん

A2681:A2780 を B列のどこに表示させるの?
887名無しさん@そうだ選挙にいこう:2013/03/03(日) 12:31:53.99
まちがえた
A2681:A24153をB2681:B24153にっていうふうにしたいみたいに聞こえるが
888名無しさん@そうだ選挙にいこう:2013/03/03(日) 12:37:38.73
>>884
B1=INDIRECT("r"&MOD((ROW()-1),101)+1+(INT((ROW()-1)/101))*104+2474&"C1",0)
これを下にオートフィル
889名無しさん@そうだ選挙にいこう:2013/03/03(日) 12:54:19.12
>>884
日本語が稚拙すぎて書いてる意味がよく分からないが、Excelでする内容じゃないだろ
890名無しさん@そうだ選挙にいこう:2013/03/03(日) 12:56:28.26
ひょっとしてデータ約2500個ずつを、B,C以降100列に振り分けたいということか?
891名無しさん@そうだ選挙にいこう:2013/03/03(日) 13:00:02.74
質問者の日本語が糞すぎる;
892名無しさん@そうだ選挙にいこう:2013/03/03(日) 13:36:08.32
普通にINDEXでいいんじじゃねーの?
893名無しさん@そうだ選挙にいこう:2013/03/03(日) 13:51:25.74
作業列にグループ番号ふってピボット
894名無しさん@そうだ選挙にいこう:2013/03/03(日) 14:28:44.21
よーく読めば、
B1-B101=A2475-A2575
B102-B202=A2579-A2679
で、それをA24153、B21052まで続けるわけだな。
楽勝
895名無しさん@そうだ選挙にいこう:2013/03/03(日) 15:44:24.67
番号が少し飛んでるとこの説明がないっつの
101も意味わからん
896名無しさん@そうだ選挙にいこう:2013/03/03(日) 16:22:04.57
>>895
わからないなら無理に考えなくていいぞ、誰も強制してない。
こんなところで時間を使ってストレスをためるとか、本当に人生の無駄遣いだぞ?
俺はパズルを解いているみたいで面白いからやってるだけで
897名無しさん@そうだ選挙にいこう:2013/03/03(日) 16:46:08.69
>>894
あのな、質問者の日本語が糞すぎるのも問題だけどお前みたいな表記も同類なんだよ。
引き算に見えるだろうが。
898名無しさん@そうだ選挙にいこう:2013/03/03(日) 17:02:55.64
>>897
申し訳ございませんでした。
899名無しさん@そうだ選挙にいこう:2013/03/03(日) 17:35:32.51
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ(既存のモノの色や指定セルを変える程度)
【4 VBAでの回答の可否】 否

横に短く縦に長いデータがあります。
そのまま印刷すると無駄にかさばるので、整形して印刷しています。

■ ■■■(1P目)
■→
■ ■■■(2P目)

:

【1】毎回手作業で整形しているのですが、これを楽に行いたい場合はマクロを組む必要がありますか?

【2】両面印刷したいのですが、Wordと違って『手動で両面印刷』の項目がないのと印刷ページ指定機能がないため、
1ページ目を印刷→手差し→2ページ目を印刷と一つ一つ印刷を行なっています。
※プリンタ側にも両面印刷設定項目がありません。

なにか簡単に両面印刷できる方法はありますでしょうか?
現在1枚のシートで処理しています。
900名無しさん@そうだ選挙にいこう:2013/03/03(日) 18:07:53.48
>>899
1.はそう。indirectでできなくもないけど、きっとマクロのほうが早いだろう。
覚えておくと、色々融通がきいて便利だよ
2.は知らないや
901名無しさん@そうだ選挙にいこう:2013/03/03(日) 18:12:58.26
A4を縦半分にした用紙サイズをつくって、A4縦に2UPするって方法をいま
思いついた 実験してはいない
902名無しさん@そうだ選挙にいこう:2013/03/03(日) 18:16:54.36
プリンタに両面印刷の機能が無いって事だよね
6ページの印刷なら、先に3枚の紙に1、3、5を印刷し
3枚まとめて裏返しにプリンタにセットしてから残りの2、4、6を印刷する、って程度の工夫しか無いんじゃないの

印刷範囲の設定はマクロで出来るけど、厄介なので覚悟しておくように
903名無しさん@そうだ選挙にいこう:2013/03/03(日) 18:18:07.44
そもそもそんな縦長のデータを印刷すること自体を見なおすべき
少なくとも印刷するために手間かけて整形とか馬鹿げてる
どうしても印刷するなら段組で2ページずとかにしといたら?楽だよ
904名無しさん@そうだ選挙にいこう:2013/03/03(日) 18:18:36.71
一旦PDFに出力してしまってから、PDFを印刷する行程で工夫する、という手もあるな
905899:2013/03/03(日) 19:20:59.28
>>899です。
お答えくださった方々ありがとうございます。
ただ印刷したいときは段組がよさそうですね。今度ためしてみます。
きちんと印刷する場合は整形が必要なので、こちらはマクロを調べます。

印刷範囲指定は盲点でした。
PDF出力後印刷というのも手っ取り早そうです。
どちらにしても、片面印刷→手差し→もう片面よりはずっと早くなりそうですね。

ありがとうございました!
906名無しさん@そうだ選挙にいこう:2013/03/03(日) 19:44:00.64
【1 OSの種類         .】 Windows7 Professional
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 他の言語は少し触ったことがあるのでVBAじゃなければ出来ないようであれば勉強します。

すみませんエクセル超初心者ですが質問させてください。
隣り合ったセルを置き換える、という動作
もしくは隣り合っていないセルや行全体を置き換えるような操作をしたいのですが
どうすれば良いでしょうか?

WEB検索すると、↓のページが出てきたのでShift+ドラッグでやってみたのですが
セルが入れ替わらず、複数のセルが選択されるだけでした・・・。
http://officetanaka.net/excel/function/tips/tips20.htm

図解してみました。
http://www.dotup.org/uploda/www.dotup.org4003942.jpg
907名無しさん@そうだ選挙にいこう:2013/03/03(日) 19:47:10.07
>>906
F を右クリックして「切り取り」
D を右クリックして「挿入」
908名無しさん@そうだ選挙にいこう:2013/03/03(日) 19:48:02.86
カット&ペーストで挿入
909名無しさん@そうだ選挙にいこう:2013/03/03(日) 19:48:34.64
>>907
出来ました!
ありがとうございます!!
910名無しさん@そうだ選挙にいこう:2013/03/03(日) 19:48:36.82
間違えた
F を右クリックして「コピー」
D を右クリックして「コピーした列を挿入」
911名無しさん@そうだ選挙にいこう:2013/03/03(日) 19:50:58.98
>>906
セルの中央ではなく、セルのふち、罫線が引かれるところをクリックしてドラッグする。
カーソルが通常の白い十字ではなく、
  ↑
← →
  ↓
こうなった時だな。もう一度画像をよく見るといい
912名無しさん@そうだ選挙にいこう:2013/03/03(日) 19:52:28.28
もう出来たっつってんだろ
913名無しさん@そうだ選挙にいこう:2013/03/03(日) 19:55:53.52
>>911
ありがとうございます、勉強になりました。
914名無しさん@そうだ選挙にいこう:2013/03/03(日) 19:55:56.44
>>912
そうですね、出来たという回答は確認しています。
ですが、出来た後に回答してはいけないのでしょうか?
誰かの名誉を傷つけたのでしょうか?
それともレス数が多くて読むのが疲れますか?
それともテンプレに書いてありますか?
915名無しさん@そうだ選挙にいこう:2013/03/03(日) 19:57:13.75
>>912
今後のためにも、ご回答のほどおねがいしますね。
納得の行く回答が得られましたら、今後二度と同じ事はいたしません。
916名無しさん@そうだ選挙にいこう:2013/03/03(日) 20:03:58.00
【1 OSの種類         .】 WindowsXP(windows8購入予定)
【2 Excelのバージョン   】 Excel2003(excel2013購入予定)
【3 VBAが使えるか    .】 習得中
【4 VBAでの回答の可否】 可
vbaを勉強しているのですが、
今ひとつはかどりません。
問題集が乗っている
サイトなどはありますか?
917名無しさん@そうだ選挙にいこう:2013/03/03(日) 20:05:41.04
プログラムは目的ではなく手段だ
何か作りたいものを見つけてどんどん作っていけばいい
918名無しさん@そうだ選挙にいこう:2013/03/03(日) 20:07:14.05
>>914
既に解決していたにも関わらずあえて回答をしたのだから
「解決済みですよ」という指摘は当然ではありませんか?
919名無しさん@そうだ選挙にいこう:2013/03/03(日) 20:24:31.13
>>917
ありがとうございます。
がんばります。
920名無しさん@そうだ選挙にいこう:2013/03/03(日) 21:09:45.36
>>916
初心者が一から順を追って覚えたいなら初心者向けの本買った方が絶対良い。一冊で良い。
金出したくないなら図書館。

辞書みたいな分厚いのは不要。そういう内容はネットで十分見つけれる。
最初のとっかかりにたいして親切なのはやっぱりネットより本だと思う。
921名無しさん@そうだ選挙にいこう:2013/03/03(日) 21:36:11.51
>>918
なるほど、指摘だったのですね。ありがとうございます。
怒っているものかと感じ、疑問になっていました。
922名無しさん@そうだ選挙にいこう:2013/03/04(月) 00:04:59.70
うざ
923名無しさん@そうだ選挙にいこう:2013/03/04(月) 07:18:46.54
911は解答の補足的情報になるんだから
そういうのだったら別にかまわんと思うけどな

すでに同じ答えが出てるのに何度も答えられると
リロードしろよと思うけど。
924名無しさん@そうだ選挙にいこう:2013/03/04(月) 08:37:33.59
しつけぇ
925名無しさん@そうだ選挙にいこう:2013/03/04(月) 15:54:02.71
Excel2013の置換が1セル1セル置換されていって遅いです。
設定で一気に置換できるようにできませんか?
926名無しさん@そうだ選挙にいこう:2013/03/04(月) 16:18:04.48
女の子を痴漢するのに一人一人やったら毎回逮捕されてイヤです。
大量に一気に痴漢すれば逮捕は一回で済みますか?
927名無しさん@そうだ選挙にいこう:2013/03/04(月) 16:19:19.72
一気にやってそれで一生分満足できるのであれば1回で済むだろうけど、そうじゃないだろ?
しばらくしたらまたやりたくなるだろうから答えはNO
928名無しさん@そうだ選挙にいこう:2013/03/04(月) 16:55:28.57
普通に一括置き換えされるけど
逆にどうやったら1セルずつ置換されんの?
929名無しさん@そうだ選挙にいこう:2013/03/04(月) 17:27:30.62
Pentium IIじゃねーの?
930名無しさん@そうだ選挙にいこう:2013/03/04(月) 19:36:48.22
俺の環境下だと、excel2000より新しいバージョンは皆、
数式が大量にあるともたつくなぁ。
だから対象のファイルだけはバッチファイルから起動させて、
バッチ処理の中でexcel2000で開くようにしている。

ファイルは縦型のカレンダー数年分と、毎日の実績、月集計などを入れたもので、
if sumif ISERROR 何かがごちゃってる1枚シート。
ちなみに2000だと瞬時起動に対し、2003だと開いてから20秒くらい待つ。
(PhenomUx4 910e / SSD)

excel2000は外せないのう。
931名無しさん@そうだ選挙にいこう:2013/03/04(月) 23:15:59.89
黄色に塗ってあるところを緑色に置換することは可能ですか?
可能であれば、どのようにすればいいのでしょうか?
932名無しさん@そうだ選挙にいこう:2013/03/04(月) 23:19:46.46
>>931
置換 > オプション > 書式
933931:2013/03/04(月) 23:28:58.28
>>932
おぉ、こんな便利な機能があったのですね
今まで何度も置換して来ましたが、全然きづきませんでした
934名無しさん@そうだ選挙にいこう:2013/03/04(月) 23:32:24.95
この機能さえあれば俺のシートもバラ色か
935名無しさん@そうだ選挙にいこう:2013/03/05(火) 01:12:49.62
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2000&2003
【3 VBAが使えるか    .】 習得中
【4 VBAでの回答の可否】 可

VBA限定になると思いますが・・・
INDEX関数で引用したい範囲が他のファイルになる場合はどうやって選択(指示)したら良いのでしょうか?

・ファイル名はさまざま
・引用したい列は決まっている(A列〜E列)が、行に関しては10行〜200行とさまざま
・複数のファイルから引用してデータの比較をしたい(データ比較の関数は作成済み)
・データが入力されている最後の行(150行目とします)から5行下あたりにBMPファイルの画像が貼ってある

このような感じになっています
INDEX関数を使わなくても素敵な方法があったらご教授願います
936名無しさん@そうだ選挙にいこう:2013/03/05(火) 01:22:55.33
2013にはラベル印刷ウィザードないの?
見当たらないのだが
937935:2013/03/05(火) 01:48:04.10
引用したいファイルが3つあった場合

ファイル1には30行
ファイル2には50行
ファイル3には100行

のデータが入力されており、これらのファイルを開いておけば

ファイル1からはA1:E30
ファイル2からはA1:E50
ファイル3からはA1:E100
の範囲を自動的に認識してコピーして、合計180行のデータを貼り付けれたら良いかなと…
938名無しさん@そうだ選挙にいこう:2013/03/05(火) 16:09:41.92
>828 さん
>829 さん
ありがとうございます。
939名無しさん@そうだ選挙にいこう:2013/03/05(火) 20:23:48.69
>>937
開きたいファイルが1つのフォルダにまとまってるならDirでファイルの一覧が取れる
データの量が不定の場合はxlDownを使うと、どこまでデータが入っているか、切れ目を自動的に探してくれる
行数を足し算しながら次のデータをコピペしてけばいい
940名無しさん@そうだ選挙にいこう:2013/03/06(水) 20:30:30.22
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010

淡い色で着色した表を、インクジェットプリンタで印刷しています。
レーザープリンタを増設したので印刷したら、ピンクやオレンジなどが
黄色寄りになってしましました。

例えば、標準の色で用意されてるオレンジ(左から3番目)はほぼ黄色です。
しかし、黄色や緑はインクジェットと比べても差が少ないので、
マゼンタを混ぜる色がダメっぽいです。
何が悪いのでしょうか?

ちなみに、このようなカラーチャートを作って印刷すると、
インクジェットもレーザーも、それなりの発色で印刷できるので
プリンタの故障ではないと思います。
ttp://uproda.2ch-library.com/642164YBT/lib642164.jpg
941名無しさん@そうだ選挙にいこう:2013/03/06(水) 20:35:28.53
その表のスクリーンショットを印刷するとどうなる?
942名無しさん@そうだ選挙にいこう:2013/03/06(水) 20:56:20.34
プリンターのユーティリティーで調整すべきプリンターの問題じゃね?
943名無しさん@そうだ選挙にいこう:2013/03/06(水) 21:04:06.09
色相をテスト印刷してみなきゃ
944名無しさん@そうだ選挙にいこう:2013/03/06(水) 21:21:35.72
プリンターだけではなくモニターの問題の可能性もある

つまり、データ上の色と印刷された色は一致しているが
データ上の色とモニターで表示される色が違うから
印刷された色とモニターで表示される色が一致しないというケース

なんにしろ、プリンタ、モニタが絡んだ環境依存の問題なので
ネットの質問じゃ埒があかないよ
リアルで相談できる相手や業者を頼りなさい
945940:2013/03/06(水) 22:53:45.24
>>941
会社のプリンタなので、あとでやってみます。

>>942
940のカラーチャートだと問題がなく、2010のカラーパレットで
用意されてる中間色のうちオレンジ・ピンク系が変なので、
プリンタの問題ではないと思ってます。

>>943
色相とは?

>>944
モニタと印刷色が合致しないのは理解しています。
カラーキャリブレーションはやっていませんが、940で書いたとおり
それなりの発色で印刷できています。
946名無しさん@そうだ選挙にいこう:2013/03/06(水) 23:12:28.19
>>945
画面上で人間の目にはよく似た色に見えても、印刷すると全然違うなんてよくある話
とくにレーザーはちょっとした色の違いが大きな違いに化けやすいので
あらかじめテスト印刷を何度もやって、使う色を絞り込むしかない
947名無しさん@そうだ選挙にいこう:2013/03/07(木) 11:33:53.82
PDFで出力してそれ印刷すると色どうよ
948名無しさん@そうだ選挙にいこう:2013/03/07(木) 12:01:46.12
確かにPDFで検証するのは有効だな

ということで、この件はその報告が来るまで保留だね
949名無しさん@そうだ選挙にいこう:2013/03/07(木) 13:44:34.70
macがあれば、mac使うといいよ
画面をそのまま印刷するという点に関してだけは、windowsと比べ物にならない
950名無しさん@そうだ選挙にいこう:2013/03/07(木) 13:50:34.70
今はそんなに変わらないよ
少なくともExcelやPDFを印刷する上ではね

ただ、昔の名残で、「画面をそのまま印刷する」ということに
重点を置いた設計や設定項目のあるソフトウェアが多いから、
Excelを捨ててでも印刷結果に拘りたいならmac使う価値もあるけどね
951名無しさん@そうだ選挙にいこう:2013/03/07(木) 14:41:20.87
すまんけど教えてつかあさいや
Excel2003なんじゃがのう
今9+6って入力しとるんじゃ
当然数値じゃのうて文字列になっとるがー
並び替えん時に15にゃならんよのう

これを9+6の見た目のまんま実際には15で扱いたいんよ
=9+6にしたら見た目も15になりよるけえダメよね
並び替え専用の列作らんとなんとかできんかいね
952名無しさん@そうだ選挙にいこう:2013/03/07(木) 14:54:35.96
テンプレとVBAを使え
953名無しさん@そうだ選挙にいこう:2013/03/07(木) 14:55:43.97
テンプラとばばあ?そがなもん使えんで・・・
954名無しさん@そうだ選挙にいこう:2013/03/07(木) 14:57:14.72
じゃあ2chとエクセルは向いてない
955名無しさん@そうだ選挙にいこう:2013/03/07(木) 15:07:00.64
ほうか見た目9+6のまま15にするんは無理言うことじゃね
無理なもん頼んで悪かったねごめんね
956名無しさん@そうだ選挙にいこう:2013/03/07(木) 15:10:58.09
>>951
セルに15って入力したら、セルの書式設定開いて
表示形式のユーザー定義で "9+6" って入れたらいいさ

セルの実値は15だから、並び替えでは15として扱われるが
表示はセルの値に関係なく、ユーザー定義で指定した表示になる

たくさんあると、逐一表示形式を設定するのは面倒だろうから
そういう場合は9+6形式で入力してからVBAで変換すると良い

.NumberFormat = """" & .Text & """"
.Value = Evaluate(.Text)

ブックにマクロを含みたくなければ、変換が終ったらVBAコードは消しちゃっても問題ない
957名無しさん@そうだ選挙にいこう:2013/03/07(木) 15:12:07.56
VBAでEvaluate使えば出来るだろ
958名無しさん@そうだ選挙にいこう:2013/03/07(木) 15:16:15.99
書式を全て文字列にする
ふりがなとして適切な値を付ける
並べ替えオプションでふりがな使用する
テキスト形式で並べ替え
959名無しさん@そうだ選挙にいこう:2013/03/07(木) 15:16:21.26
>>956
できたよ!親切に教えてくれてありがとね!!
960名無しさん@そうだ選挙にいこう:2013/03/07(木) 17:15:54.33
【1 OSの種類         .】 WindowsXP、Vista
【2 Excelのバージョン   】 Excel2003、2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

「総合」相談書所ってことで、ここで質問

Excel上に管理品目のリストが記載されてある表から、VLOOKUP関数などを使って発注依頼書に必要な項目を抜き取って
プリントさせる単純なマクロを組んだのですが、ファイルを開く時は「マクロにはウイルスが含まれている場合があります〜」
と当然のように表示されます。
何故か「ウイルス」という言葉に反応して「ウイルス!?これはウチの会社では使えないね」と言われてしまいました。
(転職して3ヶ月になる従業員50人程度の中小企業です)
今までは既にプリントされてある表から必要なアイテムを見て手書きで発注依頼書を書いていたらしく、
業務時間短縮の為にと思ったのですが受け入れて貰えません・・・

他にもPC上から直接プリントすることになるのですが「コピーした方がコスト削減になるでしょ」とも言われてしまいました
コピー、孫コピーを繰り返して細かい文字が読み取れなくなっている発注依頼書の原紙よりも明確に見えますし、
スキャナ機能を使わない分、コピーよりもプリントの方が電気代的にコスト削減になるかと思うのですが、
入って3ヶ月の身分では反論も出来ません。

今まで単純、複雑は置いとくとしてマクロを含むファイルを作成したことなかったのか?とツッコミ入れたくなりますが、
一般的に見てマクロ(VBA)とは敬遠されるものなのでしょうか?
大半は業務の効率化が目的のオフィス系ソフトですし、マクロだとは思うのですが「ウイルス」という言葉に過剰に反応されるとキツいです・・・
(ウイルスという言葉に反応していますが、会社のPCから2chを始めとしたアクセス制限は掛かっていません)
961960:2013/03/07(木) 17:17:59.63
愚痴が多くなりましたがマクロを組んでいても「マクロにはウイルスが含まれている場合があります〜」
と表示されないようにする方法はありますか?
ぶっちゃけ、そんなこおを言ってくる上司なら表示さえされなければ気付かないとおもうのでw
962名無しさん@そうだ選挙にいこう:2013/03/07(木) 17:33:23.34
上司のパソコンのエクセルの警告レベルをさげたらいい
963名無しさん@そうだ選挙にいこう:2013/03/07(木) 17:41:15.81
マクロセキュリティーを設定で下げれば表示されなくなるけど、それを無断でやったことがバレたら
懲戒処分されても文句言えないからやめたほうがいい
もちろん、直属の上司はマクロに理解が無いだけで、更に上に上司やシス管から許可を貰えるなら
構わないけどね

というか、こういうのは君のプレゼン能力次第だよ
マクロというのがどういうもので、ウィルス云々という警告が指す意味はこういうことで
マクロ使うとこのくらい省力化出来ますってことを、上手くプレゼン出来れば採用される

俺も派遣やってた頃、私物の携帯もUSBメモリも持ち込み禁止ってくらいセキュリティー意識の高い派遣先でも
プレゼンして業務効率化マクロをいくつも作って、それでちょっとばかりの特別報奨金まで貰ったことあるし
マクロに理解のある人が1人も居ない職場で、派遣1,2ヶ月目でも通せるんだから、あとは君の実力次第
964名無しさん@そうだ選挙にいこう:2013/03/07(木) 18:53:02.07
>>960
システムまわりを一任されるようになれば楽なんだけどねぇ
上司の上に言った方が早いんじゃね

それかVB.NETで作るか・・・うーん。

ウイルスって言ってもただのプログラムなんですよー、 と言っても通じなさそうだ
こういう場合、どういうふうに言うもんなのかな。ちょっと知りたい。
965名無しさん@そうだ選挙にいこう:2013/03/07(木) 18:54:37.18
そんな長いプログラムじゃないし1行1行解説してやればいいじゃん
ここはA8のセルのvalueをBBって変数に読み込んで・・
ここで印刷ですね
みたいに
966名無しさん@そうだ選挙にいこう:2013/03/07(木) 19:00:33.44
それはないだろw
967名無しさん@そうだ選挙にいこう:2013/03/07(木) 19:01:53.79
>>960
転職せざるを得ない背景(あなたの問題)がわかるわ。
それを乗り越えられるよう頑張ってください。

コミュニケーション。
これなしでは社会人務まりませんよ。
968名無しさん@そうだ選挙にいこう:2013/03/07(木) 19:28:31.21
人間社会って、難しくて正論が正しいとは限らないんだよね。

上手く立ち回らないと損するだけだよ。
969名無しさん@そうだ選挙にいこう:2013/03/07(木) 19:40:10.73
マクロとエクセルファイルを分けて保存すりゃいいんでは。
970名無しさん@そうだ選挙にいこう:2013/03/07(木) 20:04:22.56
べつにいいじゃん 自分だけで使えば。
明らかに他人より効率良ければ、向こうの方からそれどうやってんのと聞いてくる。
そうでなければたいした差がないってことだから無意味。
971名無しさん@そうだ選挙にいこう:2013/03/07(木) 21:51:04.39
>>970
最初から何食わぬ顔でそうしてればともかく、
一旦ダメだと言われた以上そんなことしたら拙いでしょ。
無知な上司の下に付いたのが不運だったと言うしかないよ。
972名無しさん@そうだ選挙にいこう:2013/03/07(木) 21:57:53.53
マクロ知らないの?プギャーってすればいいんだよ
973名無しさん@そうだ選挙にいこう:2013/03/07(木) 22:08:00.16
>>960
VBA使うならそのセキュリティに関しては知ってて当然な知識だと思うけど。

ちょっとマクロ覚えて簡単な作業が自動化できて嬉しいのはわかるけど、 まだ3ヵ月でVBAもその程度のスキルなら無理して背伸びしないほうが無難ちゃうか。
974名無しさん@そうだ選挙にいこう:2013/03/07(木) 22:28:46.41
>>960
契約内容にもよるけど、保守メンテ費用を考えるとプリントの方が安いという点もあるよな
975名無しさん@そうだ選挙にいこう:2013/03/07(木) 22:45:48.54
こんな完全な愚痴聞かされてもそうですねとしか言えねーよ。飲み屋でも行けよ。
976名無しさん@そうだ選挙にいこう:2013/03/08(金) 00:18:17.98
自分で使うマクロ入りのエクセルファイルには、自己署名入りデジタル証明書で署名する
そうすると自分のパソコンで開く分には「マクロにはウイルス云々〜」のダイアログは出なくなる
人に渡すファイルは作業シートを別名で保存する、そうすればマクロの痕跡は残らない
977940:2013/03/08(金) 01:02:55.79
ピンク系、オレンジ系のチャートを作って印刷したら、そこそこの再現ができました、
ttp://uproda.2ch-library.com/642625Xqr/lib642625.jpg

これらは3セルを1組としてRGBに変えたもので、これだとレーザープリンタでも
順応してくれるようです。

テーマの色として用意されてる薄いオレンジをB2セルに着色するときは
Range("B2").Interior.Color = 11851260 と書いていましたが、
これだと順応してくれません。(インクジェットだと順応してくれますが・・・)
978名無しさん@そうだ選挙にいこう:2013/03/08(金) 01:54:46.22
>>977
11851260をRGBに直すと(252, 213, 180)になるってのはわかってる?
979名無しさん@そうだ選挙にいこう:2013/03/08(金) 01:57:22.13
わかっていませんが何か?
980名無しさん@そうだ選挙にいこう:2013/03/08(金) 02:13:18.68
>>978
同じじゃねーだろ!ハゲ!
11851260は32ビット
(252, 213, 180)は24ビット
981名無しさん@そうだ選挙にいこう:2013/03/08(金) 02:26:17.86
255^3=
982名無しさん@そうだ選挙にいこう:2013/03/08(金) 02:26:57.27
256^3だった
983名無しさん@そうだ選挙にいこう:2013/03/08(金) 02:37:21.11
>977の数値を使って、Excel2003でやると酷いことになるなw
984名無しさん@そうだ選挙にいこう:2013/03/08(金) 03:44:39.41
>>977
PDFでの検証結果はどうなったの?
985名無しさん@そうだ選挙にいこう:2013/03/08(金) 12:46:21.47
>>980
小学校からやり直し
986名無しさん@そうだ選挙にいこう:2013/03/09(土) 02:00:18.52
987名無しさん@そうだ選挙にいこう:2013/03/09(土) 04:19:05.03
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可


A1の文字がショウガのときはB1がイワシでなければならない
A1の文字が大根おろしのときはB1がサンマでなければならない
            ・
            ・
            ・
A1の文字がワサビのときはB1がマグロでなければならない
A1の文字がコンブのときはB1がマダイでなければならない

このような条件で合否判定する(0,1で返す)ときは、どのような書式にすれば良いのでしょうか?
但し、A1の文字がショウガ、大根おろし・・・ワサビ、コンブ(10種類)のときのみ合否判定するようにしたいです



          
988名無しさん@そうだ選挙にいこう:2013/03/09(土) 04:33:56.41
ショウガ   | イワシ | 1
大根おろし | サンマ | 2
  :       :    :
コンブ    | マダイ | 10

というような表を作って、A1とB1それぞれVLOOKUPやMATCH関数に掛けて
返った値が同一かどうか見ればいいんじゃね?

ショウガ=1、イワシ=1、結果:合
ショウガ=1、サンマ=2、結果:否

リストに無いものならN/Aが返るから、あとはISNAやISERRORを使って判定すれば良い
989名無しさん@そうだ選挙にいこう:2013/03/09(土) 07:58:23.57
10種類ならギリギリifのベタ打ちでも大丈夫な量だな
990名無しさん@そうだ選挙にいこう:2013/03/09(土) 11:12:31.96
>>989
メンテナンス性ゼロなので2・3種類だとしてもその方法は却下。
991名無しさん@そうだ選挙にいこう:2013/03/09(土) 12:03:14.82
sumif関数を使って、
=SUMIF($E$3:$E$14,F18,C$3:C$14) と構文で F18 に >F18 と記載すれば F18 以下の数値が抽出されますが、
=SUMIF($E$3:$E$14,>F18,C$3:C$14) と構文自体に記載するとエラーになります。
どのように書けばいいですか?
992名無しさん@そうだ選挙にいこう:2013/03/09(土) 12:26:58.65
">"&F18
993名無しさん@そうだ選挙にいこう:2013/03/09(土) 13:03:58.10
>>987にしたがって、
A1の文字がが七味唐辛子のときのB1のセルの値を述べよ。
994名無しさん@そうだ選挙にいこう:2013/03/09(土) 14:03:15.08
思慮の甘い奴だな

そう言うネタを出すなら、B側を指定してA側を問うんだよ

Bに対して適する候補は1,2個だが
Aに対して適する候補は多数有るので
Aを指定した場合は、正解となる値は腐るほど発生してしまう
995名無しさん@そうだ選挙にいこう:2013/03/09(土) 15:04:03.42
しょうがといわしなら結合して1つのキーにすればVLOOKUPでかんたん
"しょうがいわし"をけんさくするだけ
996名無しさん@そうだ選挙にいこう:2013/03/09(土) 15:10:21.93
その方法は「じょうがい」と「わし」の場合を区別できないから嫌いだ
997名無しさん@そうだ選挙にいこう:2013/03/09(土) 15:14:47.74
それは区切り文字入れることでいくらでも回避できるな
998名無しさん@そうだ選挙にいこう:2013/03/09(土) 17:56:48.49
 
次スレ

Excel総合相談所 108
http://toro.2ch.net/test/read.cgi/bsoft/1362819177/
 
999名無しさん@そうだ選挙にいこう:2013/03/09(土) 20:34:46.84
1000名無しさん@そうだ選挙にいこう:2013/03/09(土) 20:44:51.90
お疲れ様1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。