Excel総合相談所 84

このエントリーをはてなブックマークに追加
1名無しさん@そうだ選挙にいこう
Excelに関する質問は、ここで!

▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★1 質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★2 要望は具体例や図を使って明確かつ具体的に。
★3 質問前に>>2-20あたりの注意書きやQ&Aを必ず読むこと。
★4 質問テンプレ(雛形)は必須じゃないけど、
   OSやExcelのバージョン、VBAの可否など(下記テンプレ1〜4の情報)は必須情報。

▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類         .】 Windows**
【2 Excelのバージョン   】 Excel**
【3 VBAが使えるか    .】 はい・いいえ
【4 VBAでの回答の可否】 可・否
【5 検索キーワード     】 Googleやヘルプでの検索キーワード

※【4】は、VBAはわからないけどコード書いてくれるならVBAでもいいって場合は「可」
  VBAを使うのは避けたいって場合は「否」にしましょう。丸投げする場合は、必要に応じてブックをアップすること。

※【5】は、あなたがGoogleやヘルプで検索した際に使ったキーワードを書いてください。
  まだ検索してないなら、質問の前にGoogleやヘルプで検索してみてください。
  ttp://www.google.co.jp/

前スレ
Excel総合相談所 83
http://pc11.2ch.net/test/read.cgi/bsoft/1244628763/
2名無しさん@そうだ選挙にいこう:2009/07/04(土) 21:39:57
▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━
・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名無しさん@そうだ選挙にいこう:2009/07/04(土) 21:40:49
★ルールを無視すると…
 >>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名無しさん@そうだ選挙にいこう:2009/07/04(土) 21:41:39
★ 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名無しさん@そうだ選挙にいこう:2009/07/04(土) 21:43:05
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)

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

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

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

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

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

>▼環境・書式
> ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する
補足
2007ではページレイアウトビューの表示時に限り、幅・高さともcm単位で表示され、
指定も同じくcm単位でできる。
ただし大元がインチ系なのでなかなかピタリの値は出ない。1cm→0.98cmのように
近い値に勝手に丸められる。
7名無しさん@そうだ選挙にいこう:2009/07/04(土) 22:12:58
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【5 検索キーワード     】 抽出
初めまして、質問なのですが、

  A   B  C  D
1 20  25  26  27 
2 26  24  26  29
3 21  25  30  24
4 34  32  21  27
5 24  18  40  30   のようなデータがあり、
これの平均26.45に近い5個のデータに○をつけるには
どうしたらいいでしょうか?
現在は平均は出せますが、○付けは図形描画コピペで(´・ω・) ス
このタイプのデータ整理があと300件ほどあり、来週の月曜日が
怖くてしょうがありません。
どうか、よろしくお願いします。
8名無しさん@そうだ選挙にいこう:2009/07/04(土) 22:14:56
>>1
9名無しさん@そうだ選挙にいこう:2009/07/04(土) 22:18:25
>>7
○ってどこに付けるの?数字の右?左?それとも数字を○で囲むの?
丸で囲むんなら図形を使わないと無理だし、それを自動でやるにはVBA使わないと無理。
10名無しさん@そうだ選挙にいこう:2009/07/04(土) 22:20:44
>>1
11名無しさん@そうだ選挙にいこう:2009/07/04(土) 22:21:36
>>9
おっしゃるとおり、数字を○で囲みたいです。VBAを使えばできるのですか?
12名無しさん@そうだ選挙にいこう:2009/07/04(土) 22:23:50
>これの平均26.45
>○付けは図形描画コピペで(´・ω・) ス

意味がワカランので、俺はパス
13名無しさん@そうだ選挙にいこう:2009/07/04(土) 22:25:18
>>7
平均って何の平均?
また同じ数字が六個あった場合はどうするの?
14名無しさん@そうだ選挙にいこう:2009/07/04(土) 22:28:57
>>13
平均は単純にデータの平均です。上記の場合だと合計529/20(データの個数)で26.45になります。
同じ数値が6個あった場合は、6個とも数字を○で囲みたいです。
15名無しさん@そうだ選挙にいこう:2009/07/04(土) 22:29:05
あ、全体の平均か失礼
近い数字って大小は関係なく絶対値が近いものでよいのかな?
16名無しさん@そうだ選挙にいこう:2009/07/04(土) 22:30:01
>>15
はい、絶対値が近いものでおkです。
17名無しさん@そうだ選挙にいこう:2009/07/04(土) 22:31:28
>>7
  B  D   F  H
1 20  25  26  27 
2 26  24  26  29
3 21  25  30  24
4 34  32  21  27
としてACEGに文字の○を入れるのはダメ?こっちならすぐにできるんだけどなぁ
18名無しさん@そうだ選挙にいこう:2009/07/04(土) 22:32:40
>>17
全然かまわないです。よろしくお願いします。
19名無しさん@そうだ選挙にいこう:2009/07/04(土) 22:33:17
>7
>このタイプのデータ整理があと300件ほどあり
データが埋まっているセルの個数が300個ほど、ということですか?
それとも、例にあがっているような5行×4列が1組として300組?

自分が行う場合の処理の手順としては、
1 別シートに平均との差(絶対値)をセル位置とともに出力(A列:差、B列:セル位置)
(平均値はどこかのセルに求められているものと仮定)
2 1のデータを差で降順ソートして上位5件のセル位置を得る
(同値5位が複数あったときは>14にあるように5件以上の場合もありうる)
3 図形描画で元シートの該当セルに○を描画
こんな感じでしょうか。自分はVBAで図形描画したことないので、セルに色付けして
手動で○をコピペするかな。
20名無しさん@そうだ選挙にいこう:2009/07/04(土) 22:37:49
>>7
結局VBAでいいのかな。よかったら作る。無理なら俺には無理だ
21名無しさん@そうだ選挙にいこう:2009/07/04(土) 22:39:54
>>19
5行4列、もしくは5行5列があと300組ほどです。
同じことの繰り返しで、ちょっと週末涙目でした。

>>20
VBAでいいです、というか是非ともお願いします。
22名無しさん@そうだ選挙にいこう:2009/07/04(土) 22:48:11
条件付き書式でセル色を変えるならVBAなしでも行けそう。
2319:2009/07/04(土) 22:48:42
>7,19 あと300組・・・了解
データが収められているセル範囲は5行5列ということは、A1:E5でのべ300シート
ということでいいのかな?
それとも、1シートの中に5行5列の組がいくつもあるとか?
シート数、ブック数、配置はシート間で同じなのかどうかを知らせてください。
配置状況がわかれば>17さんのやり方(列挿入して文字の"○"を書き込む)で作れると思うけど。
配置がバラバラだとプログラムの方が大変なので、きちんとしてもらうのがいいです。

あと、VBAはまったくの初心者ということですか?このスレにVBAマクロが書いてあるとして、
それを実際にエクセルのシートやモジュールに書き込んで実行させるところまでできますか?
24名無しさん@そうだ選挙にいこう:2009/07/04(土) 22:58:55
>>23
1シート中にデータセル範囲は5行5列です。
データの配置はブック、シート間で同じです。

あと、VBAのほうは今モジュール挿入の方法をヘルプで調べている最中ですw
多少時間が掛かっても、手入力よりは早いかと思いますので、明日中にでも
勉強するよていです。
25名無しさん@そうだ選挙にいこう:2009/07/04(土) 23:06:09
>>24
必ず五行五列?
26名無しさん@そうだ選挙にいこう:2009/07/04(土) 23:07:07
必ず五行五列ならワークシートで足りるよ
っていうか300っていうのはそういう作業がそれだけあるって意味か?
27名無しさん@そうだ選挙にいこう:2009/07/04(土) 23:11:46
>>25
必ず5行5列です。

>>26
300シート分の作業の意味です。あと、記録した生データも切り貼りしないといけないので・・・
28名無しさん@そうだ選挙にいこう:2009/07/04(土) 23:15:15
>>27
切り貼りも巨大な表からの単純なコピペならVBAで一発でできるかもよ。
300枚のシートは1つのブックの中にあるの?
29名無しさん@そうだ選挙にいこう:2009/07/04(土) 23:17:01
>>7
>>17のやり方ならもう出来たぞ
ttp://www1.axfc.net/uploader/Sc/so/14609.xls
試しに使ってみてくれ。微妙に間違いとかあるかも試練
3019:2009/07/04(土) 23:34:51
プログラムでの方法は>29さんに先を越されたみたいなので、>26さんのワークシートだけで
「セルの色付け」をする方法を考えてみた。
元データがA1:E5で決まっているとの前提です。
1 平均を求める計算式 =AVERAGE(A1:E5) を E6セル に書き込む。
2 F1:J5までの範囲に平均との差を求める計算式を書き込む。
  例:F1セルには =ABS(A1-$E$6) として、他のセルにはフィルコピーで。
3 K1:O5セルには 順位を求める計算式を書き込む。
  例:K1セルには =RANK(F1,$F$1:$J$5,1) として、他のセルにはフィルコピーで。
4 A1:E5セルには 条件付書式 を設定する。
  例:A1セルには =K1<6 として、書式にはセルの色づけ(薄目がいいです)。

これで、○をつけるべきセルに色付けできます。(当方はExcel2003で確認済み)
いずれも絶対参照の$の有無には注意。
これを残りの約300シートに設定するのは大変とは思いますが、F1:O5セルの範囲は
範囲選択してコピーしたら複数シートを選択して1度の貼り付けでいいし、(E6も忘れずに)
条件付書式もA1:E5セルを選択して書式コピー後、複数シートを選択して1度A1セルをクリックするだけ。

31名無しさん@そうだ選挙にいこう:2009/07/04(土) 23:35:30
>>28
切り貼りはレシートみたいな記録用紙の物理的な奴なので、PC上では無理です(泣)

>>29
おお、すごい!助かりました。ありがとうございます。
32名無しさん@そうだ選挙にいこう:2009/07/04(土) 23:41:55
>>19さんに先越されたw

自分は、多分要素としてはそれでいいような気がするな、○はいらんのでは。
色つけて○置くだけでも随分手間は省けると思うけど、
まあマクロ動かせるならそれが一番いいよなw

>>7が今後、凄い奴だと思われてもっと面倒な作業を押し付けられないことを祈るw
337:2009/07/04(土) 23:43:15
みなさんありがとうございます。本当に助かります。

あと、後学のためにもVBAで指定の箇所に○←図形オブジェクトを描く方法がありましたら、
教えていただきたいです。
34名無しさん@そうだ選挙にいこう:2009/07/04(土) 23:45:32

Sub 平均探し()
Dim h, i, j, k, l, m, n
For i = 1 To Worksheets.Count
Sheets(i).Activate
For j = 1 To 5
For k = 1 To 5
h = h + Sheets(i).Cells(j, k)
Next
Next
h = h / 25
m = 0
n = 1
For j = 1 To 5
l = 0
For k = 1 To 5
l = l + Sheets(i).Cells(k, j)
Next
If m = 0 Then
m = l / 5
Else
If Abs(h - m) > Abs(h - (l / 5)) Then
n = j
m = l / 5
End If
End If
Next
Sheets(i).Shapes.AddShape(msoShapeOval, (n - 1) * 55 + 10, 1, 40, 67).Select
Selection.ShapeRange.Fill.Visible = msoFalse
Next
End Sub
3519:2009/07/04(土) 23:46:02
ついでに老婆心ながら

マクロ利用にしろ計算式+条件付書式の方法にしろ、元データは万一こわれてもいいように
必ずバックアップをとっておいてくださいね。(経験者は語る)
36名無しさん@そうだ選挙にいこう:2009/07/04(土) 23:48:11
>>33
マクロの記録をする
ttp://kiyopon.sakura.ne.jp/vba/index.htm
このページだとファイルを開くという動作だが、これをオートシェイプに変えてみる
ただこの○ってかなりめんどくさい気がする
>>34
A1-E5に数字入れて試してみたけど、B1:B5の範囲にでっかい丸が出来るだけだったぞ
3734:2009/07/04(土) 23:58:39
すまん 忘れてくれ
縦5個の平均が全体の平均に近いとこに○すんのかとおもた
38名無しさん@そうだ選挙にいこう:2009/07/05(日) 00:00:01
いよいよ明日
39名無しさん@そうだ選挙にいこう:2009/07/05(日) 00:00:05
セルに丸を書くのではなく、オートシェーブの中ににテキストを
入れるとかしないと位置があわないよ。
407:2009/07/05(日) 00:02:19
>>34
複数のシートのB列に○が書けました。内容がほとんど理解出来ないのが悲しいです。

>>35
ありがとうございます。気をつけたいと思います。

>>36
実はだいぶ昔に○に挑戦したことがあるのですが、同じセルに何個も○の上書きが精一杯で、
俺にマクロは向いていないとあきらめたことがあり、VBA恐怖症になっています。
41名無しさん@そうだ選挙にいこう:2009/07/05(日) 00:06:48
>>31
ああ、ごめん
Q1に=J1を入れて、O〜Rをそれぞれ25行目までオートフィルしておくれ
42名無しさん@そうだ選挙にいこう:2009/07/05(日) 00:10:02
なんか親切な人に泣けたわ
  ∧∧
 ( =゚-゚)v キラッ☆
43名無しさん@そうだ選挙にいこう:2009/07/05(日) 00:55:07
>>33
セルの幅、高さ、文字のサイズが初期状態の時、指定したセルの2桁の数字を○で囲む。

Sub aaa()
  Set r = Range("A1")
  h = r.Height
  ActiveSheet.Shapes.AddShape(msoShapeOval, r.Left + r.Width - h - 2, r.Top + 1, h + 1, h + 1).Select
  Selection.ShapeRange.Fill.Visible = msoFalse
End Sub
44名無しさん@そうだ選挙にいこう:2009/07/05(日) 01:16:56
>>7
ttp://www1.axfc.net/uploader/Sc/so/14677.xls
もういないかな。いなくてもいいや。見れば分かるけどA1:E5にコピーしてコマンドボタン押すだけ
寝る
457:2009/07/05(日) 01:46:14
>>44
激しく感謝いたします。なんとか、明日中に規定の書式に埋め込めるようにしたいです。
○消去は自動記録で、なんとかマクロ登録できショートカットキーで実行できてなんか嬉しいです。
そんで、月曜には「このマクロはワシが育てた!」と言うつもりです(というのは嘘ですw)

皆様夜遅くまで、親切に教えていただき、本当にありがとうございました。

46名無しさん@そうだ選挙にいこう:2009/07/05(日) 02:31:00
>>45
丸の位置ずらすのか?
g(i) = Cells(i, i).RowHeight
r(i) = Cells(i, i).ColumnWidth * 7
ActiveSheet.Shapes.AddShape(msoShapeOval, retu + 5, gyo, 25, 12).Select
この三行で位置が変わるからテキトーにいじるといいと思うよ
.AddShapeの内容はぐぐるとすぐに出てくる
47名無しさん@そうだ選挙にいこう:2009/07/05(日) 02:50:41
くだらない質問ですが教えてください

フォームのコンボボックスに値を初期時に入れておいて、選択させるようにしたいのですが
ttp://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_userform05.html
上記のサイトを参考にしていますが何をどうやっても値がセットされません
教えてください

やり方としては
1、Excel画面上でデザインモードでコンボボックスをセットする
2、オブジェクト名はCombobox1
3、VBAを開いてthisworksheetに下記を入力する。もしくはconboboxがあるシート
Private Sub UserForm_Initialize()
With ComboBox2
.AddItem "りんご"
.AddItem "みかん"
End With
End Sub
4、一度閉じて再度開く

そうすると設定値がコンボボックスの中に出てくると思うのですが
何か間違っているところとかありますでしょうか?
48名無しさん@そうだ選挙にいこう:2009/07/05(日) 02:54:02
>>47
いつのまにか
コンボボックス2になってる
49名無しさん@そうだ選挙にいこう:2009/07/05(日) 03:11:20
>>48
すいませんコピペが間違っていました

いやcomboboxはComboBox1です
いろいろ試して同じシートに二つ作ったりしたので2のままになっていました

50名無しさん@そうだ選挙にいこう:2009/07/05(日) 04:29:35
Excelでデータ解析するならいったんAccessに入れた方がいいの?
みんなどうしてるの?
今はPerlでやってるんだけどいちいちcsvから読み込んでやってます
51名無しさん@そうだ選挙にいこう:2009/07/05(日) 06:42:49
>>47
まず第一に違うのが、参考にしているサイトでは、ユーザーフォームでコンボボックスを使っているという事。
>>47はワークシートで使っているようなので、参考サイトのコードそのままではうまくいかない。

最終的にやりたい事がよくわからないが、とりあえずこのコードをコンボボックスのあるシートモジュールに
貼り付ければ希望の動作はする。

Private Sub Worksheet_Activate()

 With Me.Combobox1
  .Clear
  .AddItem "りんご"
  .AddItem "みかん"
  .ListIndex = 0
 End With

End Sub
52名無しさん@そうだ選挙にいこう:2009/07/05(日) 09:11:36
>>50
>Excelでデータ解析するならいったんAccessに入れた方がいいの?

意味がわからないな。
53名無しさん@そうだ選挙にいこう:2009/07/05(日) 09:35:12
>>7
そもそもデータは縦に並べることだな。
別々のシートにわけるのもご法度。
ついでにいうと、数字をオートシェイプの○で囲んでマーキングというのもセンスの悪い発想だ。
54名無しさん@そうだ選挙にいこう:2009/07/05(日) 10:18:56
EXCEL2007です。

あるセルに、全角で「2009」と入力した後で、
別のセルに、全角で「2」を入力すると、
その後に反転表示で「009」が表示されます。
ここで「2」だけを入力したい時は、
どういう操作をすれば良いのでしょうか?

よろしくお願いします。
55名無しさん@そうだ選挙にいこう:2009/07/05(日) 10:43:10
反転表示は Delete で消す。
私は、うっとおしいので
オートコンプリートは切ってます。
56名無しさん@そうだ選挙にいこう:2009/07/05(日) 10:45:39
>>53
そんなことはみんな分かってる上で回答してるわけで・・
その無駄なレスがナンセンス
57名無しさん@そうだ選挙にいこう:2009/07/05(日) 10:51:36
ナンセンスってナウイな。
58名無しさん@そうだ選挙にいこう:2009/07/05(日) 10:55:50
>そんなことはみんな分かってる上で回答してるわけで・・
さっきカキコしようとしたが、やめたのと全く同じ文章で吹いたww
59名無しさん@そうだ選挙にいこう:2009/07/05(日) 11:23:51
>63
カレンダーを縦一列にしろ、
予定に○印付けるな、ってこと?
60名無しさん@そうだ選挙にいこう:2009/07/05(日) 11:30:31
>>59
>63に期待
61名無しさん@そうだ選挙にいこう:2009/07/05(日) 11:48:47
【1 OSの種類         .】 Windowsvista
【2 Excelのバージョン   】 Excel2007

  A B C

1 12 3 15 

このようなデータがあったとします。C1は、A1+B1=の数式で出してあります。(12+3=15)

そして、C1のデータをコピーしたいんですが、コピーすると「数式」がコピーされてしまいます。
「数式」ではなく、「値」(この場合なら15)をコピーしたいんですが、そのような方法はありますか?

すみません、教えてください。
62名無しさん@そうだ選挙にいこう:2009/07/05(日) 11:53:02
>>61
コピーは普通にコピー。
貼り付けるときに形式を選択して貼り付けで値を選択して貼り付ければok.
63名無しさん@そうだ選挙にいこう:2009/07/05(日) 12:01:43
>>50
質問が大雑把すぎ
そんなのデータの種類とか量とか解析の手順によって最適な方法なんて変わってくる
64名無しさん@そうだ選挙にいこう:2009/07/05(日) 12:04:59
>>53
Excelの中だけで完結してるんならその通りだけど、
元のデータは何かの装置から紙に出力された物だって書いてあるじゃん。
だったらデータの並べ方もそれに合わせないと、よけいややこしくなるだろ。
入力ミスとか発見しにくくなるし。
6561:2009/07/05(日) 12:15:53
>>62

たいへんありがとうございます!できました!
66名無しさん@そうだ選挙にいこう:2009/07/05(日) 14:33:27
>>56
>そんなことはみんな分かってる上で

むしろそんなことこそ指摘してやることこそが大事なんだ。
ここの回答者はバカ正直にVBAで平均求めて、オートシェイプで○つけて、それを300シート分繰り返して…とやってしまう。
そんなの何のためにExcel使ってんだよ。
6744:2009/07/05(日) 14:43:53
>>66
実務経験ある奴なら分かると思うけど、
こういう作業はアホな上司から押し付けられてるんだろうな、ってのが大体想像できるだろうよ
で、まず上司に「見た目は変わりますが内容は同じ>>29ではダメですか」と相談して>>29を使うか、
どうしてもダメというアホな上司なら>44を使えばいい
で、何か問題あったか?
6854:2009/07/05(日) 14:49:08
>>55
レスありがとうございます
69名無しさん@そうだ選挙にいこう:2009/07/05(日) 14:51:33
>>59
お前の場合知らんが、時間は一次元なので、カレンダーのデータも一次元で管理するのが自然な発想だ。
曜日別に並べるのは表示プログラムの仕事。
70名無しさん@そうだ選挙にいこう:2009/07/05(日) 15:02:07
日本中いたるところで今日もセルにオートシェイプの○を重ねるお仕事を頑張ってるやつがいる。
そしてその作業をVBAで自動化できた!ものすごい効率化だバンザーイと大喜び。

こんなことでは日本に未来はない。
71名無しさん@そうだ選挙にいこう:2009/07/05(日) 15:02:18
>>69
データの作成から管理できるんならそうだろうね

データ整理ってのは既存のデータ(自分の思い通りの形とは限らない)を整理することも多いけどね
元から表形式で与えられてるデータなんて山ほどある
72名無しさん@そうだ選挙にいこう:2009/07/05(日) 15:05:54
>>70
そんなの日本に限った話じゃないから大丈夫
海外にもExcelのQ&A掲示板とかいっぱいあるけど、ここと大差ないレベルのとこが大半だよ
73名無しさん@そうだ選挙にいこう:2009/07/05(日) 15:10:23
>>70
それを>>7に言っても仕方ないだろ?
>>7がどうにかできる問題ではない。

もちろん俺らがここで「そんなデータの作り方はなってない」などと言ったところで仕方がない。
自分もアホな上司及びアホなデータと毎日格闘しているが、
効率が悪いのでこうしたい、と提案して受け入れられるものとそうでないものがある。
元々のデータの入力方法が悪いと思っても、それを入力しなおす手間よりは無理やりどうにかするほうがいいことも多い。

今回の件にしても、オートシェイプの○が必要な理由はわからないが、
自分なら条件付書式でセルに色を塗るということで代用できないかとは提案してみる。

元データが縦一列に並んでいたほうがいいかどうかはわからない。
1枚分が一目で見れることが大事なのかも知れないし、
カレンダーのように何か意味のある行列なのかも知れないからな。
頭ごなしに縦一列でないことを否定はできないな。

ExcelのデータはAccessのデータとは違う。
並び方にも意味があることが多い。
74名無しさん@そうだ選挙にいこう:2009/07/05(日) 15:17:55
>>70
君がニートさんならちょっと黙ってて欲しい
IT系列なら当然問題外な問題だろうね、おめでとう
大企業でも自動化するシステムがあるだろう。なければ上に報告すればいい。俺が無料で二時間で組んだシステムだ。きっと君の手柄になる
まぁ、こういうのは中小・零細企業で問題になってる。それも顕在化されないため、解決しにくい問題にね
総務のババァの残業時間はこういう下らない事で費やされてるのさ
75名無しさん@そうだ選挙にいこう:2009/07/05(日) 15:19:36
>69
だから表示の問題なんだよ。
それを元データをリニアにしろ、○で表示はセンス悪いと
いうから話がややこしくなる。

エクセル様に処理していただくんだから
おまいら一列に並べ、みたいな、
76名無しさん@そうだ選挙にいこう:2009/07/05(日) 16:02:10
>>75
何が言いたいのかさっぱりわからん。
>>69に賛成なのか反対なのかさえわからん。
77名無しさん@そうだ選挙にいこう:2009/07/05(日) 16:07:50
>>73
>元データが縦一列に並んでいたほうがいいかどうかはわからない。
>1枚分が一目で見れることが大事なのかも知れないし、
>カレンダーのように何か意味のある行列なのかも知れないからな。
>頭ごなしに縦一列でないことを否定はできないな。

表形式のデータは多次元データを縮約して二次元に投影しただけのいわば影に過ぎない。
光の当て方次第で影の形は変わるのだよ。
78名無しさん@そうだ選挙にいこう:2009/07/05(日) 16:12:47
久しぶりにgdgdですね(`・ω・´)

79名無しさん@そうだ選挙にいこう:2009/07/05(日) 16:18:34
>>74
いつまでも中小零細レベルの回答するのはやめようってことだよ。
VBAで平均もとめて、マーキングのためにオートシェイプ並べるコード書いて、それを300シート分繰り返す。
そんな無駄なスキル身につける必要ない。
中小零細なら素直に上司にできませんと言えばいいんだ。
80名無しさん@そうだ選挙にいこう:2009/07/05(日) 16:39:33
>>79
だからここで質問してるんだろう?
>>7は分かる奴だ
本当にダメな奴は残業してせっせと楕円かいてるだろう

バイトならどっちでもいいと思うが、正社員ならちょっと助言
ただこれは上司の手柄にさせるべきだね
そして同期にそっと「今まで一日か゚仮の仕事を数分で出来るようになったよ」と言えば
上司の評価は大幅に下がり、自分がその立場に立てる
まぁ俺がやったことだけどな。出世したいならどうぞ。したくないならVBA使った後、一日中遊んでればいい
81名無しさん@そうだ選挙にいこう:2009/07/05(日) 16:45:11
>>80
>だからここで質問してるんだろう?

中小零細レベルの回答をやめろと言っている。
質問が零細レベルなのは仕方が無い。
せめて回答だけでもまともなのをお願いしたい。
82名無しさん@そうだ選挙にいこう:2009/07/05(日) 16:49:59
ひどいなこりゃw
83名無しさん@そうだ選挙にいこう:2009/07/05(日) 17:12:29
>>81
え?だから先に>>29で割と普通の回答してるじゃないか
RANK関数使ってどうにでも応用できるようにしてるのに
これではダメなのか?w
84名無しさん@そうだ選挙にいこう:2009/07/05(日) 17:36:17
俺はどっちかつーと>>30の案に賛成だな。
ただRANKの領域は作らないで下くらいでもいいと思う。

1 平均を求める計算式 =AVERAGE(A1:E5) を E6セル に書き込む。
2 F1:J5までの範囲に平均との差を求める計算式を書き込む。
  例:F1セルには =ABS(A1-$E$6) として、他のセルにはフィルコピーで。
3 K1には F1:J5の5番目に小さい値を求める式=SMALL(F1:J5,5)を書き込む。
4 A1:E5セルには 条件付書式 を設定する。
  例:A1セルには =F1<$K$1として、書式にはセルの色づけ(薄目がいいです)。

>>29は見てないが多分同じような考え方?
85名無しさん@そうだ選挙にいこう:2009/07/05(日) 17:44:23
自分の力で手に負えそうにない仕事なら最初から引き受けない方がいいよ>>7
ていうか、引き受けるのは別に勝手だが、Excelスレなんてあてにしない方がいいぞ。
86名無しさん@そうだ選挙にいこう:2009/07/05(日) 17:45:08
>84
SMALL関数って手がありましたね。
ところで、=F1<$K$1 には「=」が必要では? ちょうど5番目に小さい値と同じ場合に色が付かないような。
87名無しさん@そうだ選挙にいこう:2009/07/05(日) 18:15:06
>>84
2までは同じで3にRANKだな
後はセルの色付けじゃなくて左にセルを挿入して"○"を付けてる
見た方が早い
>>85
単純作業だがだるい仕事なんだろ。まぁバイトだろう
88名無しさん@そうだ選挙にいこう:2009/07/05(日) 20:59:38
インドカレーの店の前に七夕の短冊があって、ふと見たら「いんどにかえりたい」って書いてあって吹いた
8984:2009/07/05(日) 21:01:30
>>86
すまん、たしかにそうだ。
=が必要だね。
90名無しさん@そうだ選挙にいこう:2009/07/05(日) 21:08:50
29とか44のマクロには、マクロウィルスが含まれてないですか?
どうも2ちゃんで公開してるファイルは安心して開けない俺ガイル
91名無しさん@そうだ選挙にいこう:2009/07/05(日) 21:19:46
昔はブラクラとかも多かったけど、最近ほとんど無いよ
ウィルス張ると犯罪になるんだっけ?
92名無しさん@そうだ選挙にいこう:2009/07/05(日) 22:13:43
>90
マクロウィルスが心配な場合は、「マクロを有効にしない」にしてブックを開き、
[alt]+[f11]でVBエディタ画面を表示させて中身を確認したらどうですか?
フォームなどない場合はこれでいいと思うけど。
93名無しさん@そうだ選挙にいこう:2009/07/05(日) 22:40:23
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい(超初心者)
【4 VBAでの回答の可否】 可

文字を検索するとき、列が決まっていればオートフィルタで探せますが、
どの列に入ってるか分らないとき、Ctrl+Fで探してます。
これをマクロの自動記録でやったら、何も記録されていませんでした。
マクロではできないのでしょうか?
ボタンを押すと窓が開いて、検索したい文字を入れると、その文字を含むセルへ
カーソルを動かすようなものです。
94名無しさん@そうだ選挙にいこう:2009/07/05(日) 22:40:43
>>81
で、お前さんのまともな回答とやらが>>53なわけか?
>>7は月曜日に会社に行って
「こんな非効率なやり方はない。まずデータを縦一列に並べろ、話はそれからだ」とか言えと?
それとも、今までやってきた作業を全部白紙に戻して、
まず入力から縦一列になるようにやり直して…○を付けろと言われてるにもかかわらずそれにも逆らえと?

理想論を語るのは勝手だが現実はそんなに甘くない。
95名無しさん@そうだ選挙にいこう:2009/07/05(日) 22:46:27
>>93
範囲を指定して検索する方法はこんな感じ

Set r = Worksheets("Sheet1").Range("A1:C5").Find("文字列")

変数rには見つかったセルの位置(Range)が入る
96名無しさん@そうだ選挙にいこう:2009/07/05(日) 22:58:07
100×100マスを探す場合

sub 検索

a=inputbox("文字を入力すれ")

for b = 1 to 100
for c = 1 to 100
if cells(b,c)=a then
cells(b,c).activate
exit sub
next
next

end sub
97名無しさん@そうだ選挙にいこう:2009/07/05(日) 23:28:56
>>94
私はそうしている。
ていうか基幹システムは普通そうなっているだろ?
98名無しさん@そうだ選挙にいこう:2009/07/05(日) 23:47:38
泣けてくるごっこ遊びだな
99名無しさん@そうだ選挙にいこう:2009/07/06(月) 00:01:02
祝!! 40000日!!!
100名無しさん@そうだ選挙にいこう:2009/07/06(月) 00:07:07
俺は>>53の考え方に同意なんだが>>7の具体的な業務内容が不明なのに
基幹システムがどうのこうの言うのも大袈裟じゃないのかな。
>>56みたいな下らない煽りにイラつくのは分るがもうちっと冷静になれんのか
1017:2009/07/06(月) 00:19:42
みなさん昨晩は夜遅くまで、親切に教えていただき、本当にありがとうございました。
結局、>>44氏のVBAを貼り付けさせていただき、なんとか書式完成できました。
(列がずれたりして、ちょっと涙目になったりもしましたが・・・)
今まで、他の板で質問したことがあるのですが、
良くて「ググレカス」、普通で「釣りか?」のような回答しかもらえたことがなく、
今回も恐る恐るだったのですが、親切にしていただき涙が出そうになりました。
これからは、ちょっとでも勉強していつかは質問に答えられるようになりたいと思いました。
本当にありがとうございました。
102名無しさん@そうだ選挙にいこう:2009/07/06(月) 00:22:50
>>100
そうかすまん。
熱くなってたつもりはなかったのだが。
基幹システムは大げさな例として出したつもりはなくて、
標準的な当たり前のやり方という例のつもり。
103名無しさん@そうだ選挙にいこう:2009/07/06(月) 00:24:21
>>100
そうかすまん。
熱くなってたつもりはなかったのだが。
基幹システムは大げさな例として出したつもりはなくて、
標準的な当たり前のやり方という例のつもり。
104名無しさん@そうだ選挙にいこう:2009/07/06(月) 00:44:43
>>102
ちなみに聞きたいんだけど、
300枚に分かれてる紙の、5×5に出力されてるデータの、平均値に近い5個をそれぞれ抽出せよ、
というのが今回の目的だったわけだけど、
シートを分けないで、全部縦1列に並べたとして、このお題をどう解決するのがスマートなわけ?
105名無しさん@そうだ選挙にいこう:2009/07/06(月) 07:49:00
>>101
良かったね
困ったらいつでもどうぞ
106名無しさん@そうだ選挙にいこう:2009/07/06(月) 07:53:23
********************
EXCELヲタ徘徊注意報
********************

マニアの自己満足レスが
頻発しております。
相談者の方は警報が解除
されすまで今しばらくお待
ちいただくようお願いします。

********************
EXCELヲタ徘徊注意報
********************
107名無しさん@そうだ選挙にいこう:2009/07/06(月) 07:54:58
5*5の数字に○付ける作業と基幹システム比べる事がアホってことに気づかないのかこいつはw
108名無しさん@そうだ選挙にいこう:2009/07/06(月) 08:20:01
>>107
それを300シート分やるんだぞ。
それと基幹システムのことなんか過大評価してない?
109名無しさん@そうだ選挙にいこう:2009/07/06(月) 09:27:51
【1 OSの種類         .】 WindowsVista SP2
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否

セルB1に

 =COUNTIF(A1:A10,">0")

という式があります。この A1:A10 の部分の 10 の部分を可変にして、別のセルから参照して来たいのですが、
どのように実現したものでしょうか?
INDIRECTがいまいち違う気がします。文字列から範囲に変換できればいけそうな気がするのですが・・・。

何をやりたいかと申しますと、上記式以外に、
 =COUNTIF(C1:C10,">0")
というような式がたくさんありまして、1と10の部分だけを共通にして可変にしたいと考えています。
上記のように直接書いた場合だと1、10の範囲を変える場合は、いくつも修正しなくてはなりません・・・
それを簡略化したいということです。
110名無しさん@そうだ選挙にいこう:2009/07/06(月) 09:40:43
>109
参照セルをB2セルとすると、=COUNTIF(A1:A10,">"&B2)

&でつなぐところがミソ
111110:2009/07/06(月) 09:41:30
勘違いだった。見なかったことにしてくれ orz
112109:2009/07/06(月) 09:45:29
解決しました。
INDIRECTに文字列渡したら、ちゃんと範囲が返ってきました。勘違いしてました。
例:
 =COUNTIF(INDIRECT("A" & B1 & ":A" & B2),">0")
にして、B1 に 1、B2 に 10 を入れたところ、
無事に
 =COUNTIF(INDIRECT(A1:A10),">0")
と同じ結果がえられました。

最初、OFFSET駆使しようとしてたw

お騒がせしました。
ありがとうございました。

>>110
サンクス。あー、いや、そこの条件のところはなく、範囲を変えたかったのです。
113名無しさん@そうだ選挙にいこう:2009/07/06(月) 10:39:30
>>31
>レシートみたいな記録用紙の物理的な奴
これって手書きじゃないよな?
手書きじゃないならまずはこれをエクセルが読めるようなデータか何かでもらえないか聞いてみる
機械が吐き出したデータを人間が入れなおすことほど無駄なことはない
114名無しさん@そうだ選挙にいこう:2009/07/06(月) 12:22:04
質問です

セルの塗りつぶしの色をコピーしたときに色もコピーしないように
自動的に設定する方法はありますか?
項目の名前を色分けしているのですが、コピー先まで色がついてくると
ごちゃごちゃして見難いのです

印刷で塗りつぶし色を印刷しない方法や、コピーした後で右下に出るメニュー?で
「貼り付け先の書式に合わせる」方法は分かりますが、一手間かけずに
一発で出来ると楽なのです
115名無しさん@そうだ選挙にいこう:2009/07/06(月) 12:28:27
>>108
だからw
バイトの仕事とプロの仕事の違いって意味だよ
バイトの仕事なんて言われた業務を遂行できればそれでよろしい
あまり目立つと角が立つ場合もあるしねぇ
>>114
VBAを使えるならショートカットキーに登録する
ttp://arrow3.way-nifty.com/shige/2005/07/__fa5b.html
使えないなら一手間かけるしかない
116名無しさん@そうだ選挙にいこう:2009/07/06(月) 12:33:01
>114
前スレにありました。
581 名前: 名無しさん@そうだ選挙にいこう 投稿日: 2009/06/23(火) 22:45:01
ショートカットの Ctrl + C と Ctrl + V でコピペできますが、
ショートカットで “値だけ貼り付け” ってできますか?

582 名前: 名無しさん@そうだ選挙にいこう 投稿日: 2009/06/23(火) 22:48:55
できまへん VBAでつくって登録しとけ

587 名前: 名無しさん@そうだ選挙にいこう 投稿日: 2009/06/23(火) 23:26:30
>>583->>584
まったくどいつもこいつも・・
それじゃコピーした該当セルだけでしか対応しねーだろが!

Sub 値の貼り付け()
Selection.PasteSpecial xlValues
Application.CutCopyMode = False
End Sub

591 名前: 名無しさん@そうだ選挙にいこう 投稿日: 2009/06/23(火) 23:38:16
>>587
なーるほど、>>581じゃないけどそれ頂きました。
Personal.xlsに登録してCtrl+Shift+Vに設定したらバッチリでした。

592 名前: 名無しさん@そうだ選挙にいこう 投稿日: 2009/06/23(火) 23:40:18
>>590
まず、どこかのセルをCtrl+Cでコピーしてからマクロ実行しなきゃエラーになるよ。
117名無しさん@そうだ選挙にいこう:2009/07/06(月) 12:33:23
バイトとかどっから出てきたんだ
>>7のキャラクタ設定勝手に作るなよw
118名無しさん@そうだ選挙にいこう:2009/07/06(月) 12:57:14
自分が数万件のデータを扱う業務に精通した基幹系システムのエンジニアという設定する奴だから仕方ない
ほっとけ
119名無しさん@そうだ選挙にいこう:2009/07/06(月) 13:25:31
そろそろ雑談やめないか
120名無しさん@そうだ選挙にいこう:2009/07/06(月) 13:27:20
このスレ全部印刷して上司に見せるのが一番いいと思う
121名無しさん@そうだ選挙にいこう:2009/07/06(月) 13:48:12
>>118
たった数万件しか扱えないようなものは使えねーだろよ。
122名無しさん@そうだ選挙にいこう:2009/07/06(月) 13:48:13
たぶん直接無駄と言うよりキレるぜ
123名無しさん@そうだ選挙にいこう:2009/07/06(月) 15:51:36
想像してワロタw
12493:2009/07/06(月) 16:26:50
>>95
サッパリわかりません・・・ orz
12595じゃないよ:2009/07/06(月) 16:48:31
>93、124
>95さんのマクロは検索部分だけなので、検索結果をどうするかというところは自分で
書く必要があります。
試しに以下のマクロを標準モジュールに書いてみてください。
A2:P100のセル範囲内に適当にいろいろなデータを入力したうえで、
A1セルに検索したい内容を入力してから[alt]キー+[F8]キーを押してマクロ一覧から
検索 を選んで実行してみてください。該当セルを選択してくれます。
該当しないときは 該当なし というダイアログを表示します。
Sub 検索()
 Set r = Worksheets("Sheet1").Range("A2:P100").Find(Range("A1").Value)
 On Error GoTo ERROR_PROC
 r.Select
 Exit Sub
ERROR_PROC:
 MsgBox ("該当なし")
End Sub
12693:2009/07/06(月) 16:58:38
>>125
できました!
いろいろググって、InputBoxというのを探し当てたんですが、
どう使えばいいでしょうか?
真似て書いてみたものの、何を入れても該当なしになります。
Sub 検索2()
r = InputBox("文字列")
Set r = Worksheets("Sheet1").Range("A2:P100").Find("文字列")
On Error GoTo ERROR_PROC
r.Select
Exit Sub
ERROR_PROC:
MsgBox ("該当なし")
End Sub
127125:2009/07/06(月) 17:02:13
r はセルオブジェクトとして使います。
× r = InputBox("文字列")
○ MOJI = InputBox("検索文字を入力してください")

× Set r = Worksheets("Sheet1").Range("A2:P100").Find("文字列")
○ Set r = Worksheets("Sheet1").Range("A2:P100").Find(MOJI)
128125:2009/07/06(月) 17:05:48
一応付け加えておくと
このマクロでは次に該当するセルへの移動とか、上方向への検索はできません。
>93さんが最終的になにをしたいのか(マクロで作っているシステムの中に検索を含めるとか?)
がわかればアドバイスできると思うけど。
12993:2009/07/06(月) 17:20:13
>>127>>128
ありがd!
同じ文字なら探せるようになりました。
ただ、やりたいのは、オートフィルタの「〜を含む」って機能を
特定の列だけじゃなくてシート内の全部から探したいんです。
例えば"12345"とInputoboxに入れたら、M012345とか、
F123456が入ってるセルを選択したいんですが・・・
130名無しさん@そうだ選挙にいこう:2009/07/06(月) 17:22:13
検索の人かw それ検索機能で済む話じゃないのw
13193:2009/07/06(月) 17:23:50
あ、ちょっと待って!
Ctrl+Fで探せばいいだけ?

出直してきます・・・
132125:2009/07/06(月) 17:33:52
をいをい
133名無しさん@そうだ選挙にいこう:2009/07/06(月) 17:39:24

   ∧_∧        / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ( ´・ω・)       < 突っ込まれてショボーン…
____( つ旦O   ∀   \__________ 
   と_)_) ̄| ┷┳━ 
 ̄ ̄ ̄..   ̄ ̄|  ┃ 
 ̄ ̄ ̄ ̄ ̄ ̄ ̄  ┻
134名無しさん@そうだ選挙にいこう:2009/07/06(月) 17:45:09
基幹系システムエンジニアの俺が思うにこうだな

Sub func1()
s = InputBox("検索したい文字列を入れて下さい")
With Application
.SendKeys "^f"
.SendKeys s
.SendKeys "%i"
.Application.SendKeys "^a"
.OnTime Now() + TimeValue("00:00:02"), "func2"
End With
End Sub

Sub func2()
Application.SendKeys "{ESC}"
End Sub
135名無しさん@そうだ選挙にいこう:2009/07/06(月) 17:58:18
Excel2000と2003を使ってます。
仕事がなくて暇なので、エクセルでゲームとかできますか?
136名無しさん@そうだ選挙にいこう:2009/07/06(月) 18:12:11
137名無しさん@そうだ選挙にいこう:2009/07/06(月) 18:24:10
どもw
138名無しさん@そうだ選挙にいこう:2009/07/06(月) 18:39:20
エクセル ゲーム 
でググればコード晒してるのが出てくるが中身さっぱりわからん
139名無しさん@そうだ選挙にいこう:2009/07/06(月) 19:01:12
パックマンとかインベーダーゲームとか色々ある。
ぐぐれ。
140名無しさん@そうだ選挙にいこう:2009/07/06(月) 19:29:32
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【5 検索キーワード     】 抽出
初めまして、質問なのですが、

  A   B  C  D
1  1  25  26  27 
 2  24  26  29
  3  25  30  24

2  1  32  21  27
 2  18  40  30   
3 44 32 12 のようなデータがあり、(左端はセルが3行ずつ結合されています)


まず左端列の番号に一致して、さらにその番号の行のAの列の数字に一津するものの
Cの番号を抽出するにはどうすればいいでしょうか。
141名無しさん@そうだ選挙にいこう:2009/07/06(月) 19:40:37
>>140
結合セルの質問はしちゃいけないことになってます。
お引き取りください。
142140:2009/07/06(月) 19:46:24
すみませんずれてしまいました・・・
http://www.dotup.org/uploda/www.dotup.org208291.jpg.html
↑のような場合はどうすればよいのでしょうか、具体的に作ってみました。
143名無しさん@そうだ選挙にいこう:2009/07/06(月) 19:51:03
質問と画像が合ってないw
144名無しさん@そうだ選挙にいこう:2009/07/06(月) 20:56:43
>142 に準じてつくってみた。
左端列(A列)を指定するセルをF1、次の番号を指定するセルをG1としたうえで、
作業セルを2個(F2:G2)、答えを出すセルを1個(H2)としてます。
F2セルには =MATCH(F1,A1:A15,0)
G2セルには =MATCH(G1,INDIRECT("B"&F2&":B"&F2+2),0)
H2セルには =INDIRECT("D"&F2+G2-1)
と計算式を入れるとうまくいくみたい。ただし、範囲外の数値を入れたら#N/Aと表示される。
145名無しさん@そうだ選挙にいこう:2009/07/06(月) 21:47:52
Windowsvistahomebasic使ってます。Excelはインストールされているのでしょうか?マイクロソフトのハガキスタジオは入ってるんですが。
入っているならば立ち上げ方法を教えて下さい
初心者で申し訳ありません。教えてください。
146名無しさん@そうだ選挙にいこう:2009/07/06(月) 21:52:31
>>113
仕事で使う機械はやたら古いものもあって、
今のPCにはつながらない場合も結構あるんですよ。
147名無しさん@そうだ選挙にいこう:2009/07/06(月) 22:52:18
>>145
なんかエクセルファイルをダウソして開いて新規
148名無しさん@そうだ選挙にいこう:2009/07/06(月) 23:07:37
>>145
デスクトップの空白部分で右クリック→新規作成を選んだときに
「Microsoft Office Excel 2007ブック」というのが出てきたらExcelは入ってる。
あとはスタートメニューの中を探せ。Vistaならスタートメニューに検索機能ついてるだろ。
149名無しさん@そうだ選挙にいこう:2009/07/07(火) 01:10:16
今日、学校で太った女子部員が俺に手を出して
「ぶひ、ぶひ」っていうからお腹が空いたのかと思って
おにぎりあげたら「部費、部費」の間違いだった
150名無しさん@そうだ選挙にいこう:2009/07/07(火) 14:52:15
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000&2003
【3 VBAが使えるか    .】 いいえ
【5 検索キーワード     並び替え

すいません、初めて質問させていただきます。
初心者ですので宜しくお願いします。

やりたいことなんですが、たとえば・・・
300÷20=15 や
200÷20=10 とか答えが1〜20になった場合は全て20で表示。
答えが21以上は全てそのままの数値で表示(例)21→21 22→22

小数点切り上げのROUNDUPとかなんかを応用して・・・と思って
本読みながら色々試したんですけど私には無理でした。。
すいませんが教えてください!
151名無しさん@そうだ選挙にいこう:2009/07/07(火) 15:00:44
>>150
IFを使うんだ
152名無しさん@そうだ選挙にいこう:2009/07/07(火) 15:20:59
>>150
計算には使えないが表示だけでよければ表示形式使え。
[>20]G/標準;[>0]"20";G/標準

20.5は20.5、0.5は20になる。
これで都合が悪ければ手直ししろ。
153150:2009/07/07(火) 17:19:27
>>151さん

すいません、IFが分からないくらいの初心者です(汗
IFとは?

>>152さん
計算の答えの表示(変換)には使える。ってことでしょうか?
154名無しさん@そうだ選挙にいこう:2009/07/07(火) 17:31:07
例えばD9が20以下なら20、20以上ならその数なら

=IF(D9>20,D9,20)
155名無しさん@そうだ選挙にいこう:2009/07/07(火) 18:43:52
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 複数条件に一致

こんばんわ
複数の条件に一致する文字列を表示させたいのですが、
その条件にDMIN関数を含んでいます。
LOOKUP関数などを使ってやってみましたが上手くいきませんでした。

  A   B  C 
1 アジ  100  ウミ
2 イワシ  120  ウミ 
3 イワシ  110  カワ  
4 メダカ  200  ヤマ
5 アジ  110  カワ

というようなリストがあり、イワシのうちBが最小値となる行のC列の文字列を表示したいのです。
156155続き:2009/07/07(火) 18:45:41
DMIN関数を使ってAの各項目のB最小値のリストは以下のような感じで作ってありますが、

  A   B   
1 アジ  100 (B列は値ではなく関数のまま)
2 イワシ  110   
3 メダカ  200    
 
そのリストにCの列を追加して以下のようなリストにしたいのです。

  A   B  C 
1 アジ  100  ウミ
2 イワシ  110  カワ 
3 メダカ  200  ヤマ

アドバイスよろしくお願いします。
157名無しさん@そうだ選挙にいこう:2009/07/07(火) 18:57:54
>>155
AとCだけのリストを作って
ソートして重複排除して
AでLOOKUP
158名無しさん@そうだ選挙にいこう:2009/07/07(火) 18:58:54
sub 魚()
dim a,b,c,d
c = 530000
a = inputbox("魚種を入力すれ")
for b = 1 to 100
if cells(b,1)=a and cells(b,2)<c then
c = cells(b,2)
d = cells(b,3)
end if
next
msgbox d & "だな"
end sub
159名無しさん@そうだ選挙にいこう:2009/07/07(火) 19:01:02
>150
IFもわからない初心者ということなので、わかりやすく説明する。
>300÷20=15 や
>200÷20=10 などの計算式が設定されているセルの計算式はそのままに、表示(見た目)
だけ変更するのが>152さんの方法。
表示形式の設定方法は、変更したいセルを選択した状態で[Ctrl]+[1]もしくはメニュー→書式→セル
分類の枠の中の一番下「ユーザー設定」をクリックして、種類(T)の直下の入力欄(標準/Gと表示されて
いるところ)に>152さんの書いている通りに入力して[OK]をクリック。

計算式そのものを工夫するのが>154さんの方法。
ただし、>154の方法は、「計算式が設定されているセル」がD9と仮定して、別の場所にあらためて
結果を表示する場合なので、例えばD10セルに表示させたいならD10セルに>154の計算式を書き込む。
ただし、>154の計算式だと計算結果がゼロやマイナスのときも 20 って表示されるので念のため。

元々の計算式を変更して、別のセルじゃなく同じセルに結果(=表示も)を出すのがこれから説明する
第3の方法。
元々の計算式を仮に =SUM(D1:D8) だったとします。
これを、=IF(SUM(D1:D8)>20,SUM(D1:D8),20) に変更する訳です。(計算式のあるセルは変えず、計算式
そのものを変更すること)元々の計算式が簡単ならいいけど、複雑なら中身をまちがえないようにすること。
この方法も>154の計算式と同様に元々の計算結果がゼロやマイナスのときも 20 になります。

>152さんの 計算には使えないが表示だけでよければ っていうのは、理解できますか?
わからなければレスください。
160名無しさん@そうだ選挙にいこう:2009/07/07(火) 19:17:27
正しくはこれだな
=IF(OR(D9>20,D9 <=0),D9,20)
161155続き:2009/07/07(火) 19:34:01
>>157
>>158
早速ありがとうございます。

>>157
こちらの方が確実に上手くいきそうですね
ただ出来れば参照元に合わせて更新するようにしたいので

>>158
マクロはほとんど使ったことが無いですが
がんばってやってみます。
162名無しさん@そうだ選挙にいこう:2009/07/07(火) 20:01:52
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000

B列を「小数点以下の桁数を2」にしておき、
B1セルに95.12、A3セルに10400、B3セルに=A3/B1のとき、109.34になります。
B3セルをコピーし、C3へ値を貼り付けると109.3356になります。

B3セルをコピーしてC3へ値を貼り付けたとき、109.34にすることは出来ますか?
163名無しさん@そうだ選挙にいこう:2009/07/07(火) 20:08:15
>>162
コピーして張り付けるときに右クリック、形式を選択して貼り付け
値と数値の書式を選択して張り付ける
若しくは
B3=ROUND(A3/B1,2)

164名無しさん@そうだ選挙にいこう:2009/07/07(火) 20:27:27
>>162
別の角度から言えばC3セルの書式設定も「小数点以下の桁数を2」にすればいい。
165164:2009/07/07(火) 21:03:46
もうすこし細かいこと言うと書式設定「小数点以下の桁数を2」の場合は
小数点以下の桁数2以降の桁がそのまま生きていますが、ROUND関数の場合は
桁の設定したらそれ以降の桁はぶった切る感じになります。
ケースバイケースで使い分けて下さい。
166162:2009/07/07(火) 21:49:49
>>163-165
ありがとうございます。
ROUNDでうまくいきそうです。
円をドルに変えたとき、合計すると0.01合わなかったので
質問させてもらいました。
167名無しさん@そうだ選挙にいこう:2009/07/07(火) 23:20:29
ctrl+Fをセルに埋め込む事って出来ないの?
イメージはブラウザの右上の検索ウインドみたいな感じ。
もうctrl+F押すのもめんどくさくて。
168名無しさん@そうだ選挙にいこう:2009/07/07(火) 23:30:45
特定のセルがチェンジされたらマクロが発動するイベントを作る
169名無しさん@そうだ選挙にいこう:2009/07/07(火) 23:31:42
>167

出来る。
んがお前の態度が気に入らない(AA略
170名無しさん@そうだ選挙にいこう:2009/07/07(火) 23:45:20
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002(OfficeXP)
Range("B2:D4")の範囲で罫線があったとき、B5に文字を入れるとセルの右側に罫線が引かれてしまいます。
いちいち消すのが面倒なのですが、なにか解決方法がありますか?
171名無しさん@そうだ選挙にいこう:2009/07/07(火) 23:46:56
あ、違った。

誤 B5に文字を入れるとセルの右側に罫線が引かれてしまいます
正 E2に文字を入れるとセルの右側に罫線が引かれてしまいます
172名無しさん@そうだ選挙にいこう:2009/07/07(火) 23:56:30
満喫の2007で確かめたけどそんな現象なかったぜ
173名無しさん@そうだ選挙にいこう:2009/07/08(水) 00:00:25
>170
>文字を入れると
これでセルの右側に罫線が引かれますか?
「B2:D4の範囲内のセルのどれかをコピーすると」ではありませんか?

自分はExcel2003なので確認のしようがありませんが、文字入力と罫線設定は別もの、
単純にコピー&ペーストだと書式もコピーするからありうると思う。
(そのために「形式を選択して貼り付け」の操作が用意されている)
174名無しさん@そうだ選挙にいこう:2009/07/08(水) 00:04:09
>>173
コピーじゃなくて、単純に文字を入れると右側に罫線が引かれます。
今わかったのは、罫線だけだとその症状が出ません。
Range("B2:D4")の範囲に文字が入った状態で、かつ、罫線がある条件で出ます。
175名無しさん@そうだ選挙にいこう:2009/07/08(水) 00:08:31
>>174
満喫の2007で確かめたけどそんなことなかったぜ!
176名無しさん@そうだ選挙にいこう:2009/07/08(水) 00:10:21
177名無しさん@そうだ選挙にいこう:2009/07/08(水) 00:13:44
>>170
ツール→オプション→オートコンプリートのチェックを外す でとりあえず
罫線つかなくなったけど。
178名無しさん@そうだ選挙にいこう:2009/07/08(水) 00:14:08
条件付き書式とかじゃないですか?
179名無しさん@そうだ選挙にいこう:2009/07/08(水) 00:14:18
>>176
一端罫線を消去→上書き保存→B2:D4に罫線描画→E2に文字入力
でやってみて
180名無しさん@そうだ選挙にいこう:2009/07/08(水) 00:14:41
>>176
その範囲を選択してさらに外枠太罫線
181177:2009/07/08(水) 00:16:21
ツール→オプション→編集タブ→オートコンプリートのチェックを外す
            ↑これ抜けてた
182173:2009/07/08(水) 00:17:39
>170、176
ほんとだ。excel2003でも同じようになった。いろいろテストしてみる。
183名無しさん@そうだ選挙にいこう:2009/07/08(水) 00:20:13
同じ罫線が連続するから親切機能が働いちゃうんだよ
途中に太いの入れれ
184名無しさん@そうだ選挙にいこう:2009/07/08(水) 00:20:50
>>177
Excelのバージョンは何ですか?
ツール→オプション→編集→オートコンプリートを使用する のチェックは外しましたが、変わりません。

>>178
条件付き書式は使用していません。

>>179
変わりません。
185173:2009/07/08(水) 00:21:02
オートコンプリートって罫線も対象になってたんですか。ひとつ勉強になった。
186名無しさん@そうだ選挙にいこう:2009/07/08(水) 00:21:49
漏れも。
187名無しさん@そうだ選挙にいこう:2009/07/08(水) 00:24:05
>>180 >>183
出なくなりました。

>>181
了解!

>>182
信じてもらえてヨカッタです・・・
188177:2009/07/08(水) 00:24:21
>>184
>>170と同環境です。バージョンはSP3です。
189名無しさん@そうだ選挙にいこう:2009/07/08(水) 00:35:29
>>188
了解!

普段は表を作ってから罫線を引いていますが、枠外にコメントを書くときに
出た症状なので質問しました。
夜中なのに付き合ってくださったみなさん、ありがとうございました。
190名無しさん@そうだ選挙にいこう:2009/07/08(水) 00:37:30
幅0の列を挟んで書き込んでもおkなはず
191173:2009/07/08(水) 00:38:01
いろんなパターンでやってみたら、罫線引いてる範囲の横1行分のセルが埋まると
右隣セルに文字入力したときに「小さな親切:大きなお世話」で罫線が発生する。
今回の例の場合、横3列なのでどこか1個のセルでもデータがなければ大丈夫。
縦方向ではこうならない・・・と書こうとしたら、変なことがおきた。
縦3行分では罫線の発生はなかった。4行分でも罫線発生せず。
ところが、縦5行分埋めたら6行目(元々罫線なし)の左右両側に罫線発生。

何なの、これ。(Excel2003にて)
192名無しさん@そうだ選挙にいこう:2009/07/08(水) 00:56:53
満喫の2007でもなった
193名無しさん@そうだ選挙にいこう:2009/07/08(水) 01:23:08
>>191
俺漏れも! by Exel2000
194名無しさん@そうだ選挙にいこう:2009/07/08(水) 01:58:29
ためしにやってみた
1*3でその書式が同じ場合、横にどんどん書式がオートコンプリートの如くコピーされていく
背景色、フォントまでコピーされる。条件つき書式も。
予め設定されていれば伝染しない。
書式を空セルからコピーした後、内容をクリアして入力すれば伝染してしまう。

表のサイズがどんどんでかくなっていく人向け・・の機能か?
邪魔だな
195150:2009/07/08(水) 09:23:10
>>154さん
ありがとうございました!
返事おそくなりましたが、ちゃんと表示できました!
ありがとうございました。
196新規:2009/07/08(水) 14:59:54
質問させてください
vbscriptからExcelを操作してますが
 Obj.Range("E3").Validation.Add 3, , , "=INDIRECT(A1)"
と書くと、実行時にエラーが出てしまいます。
"=INDIRECT(A1)"を、"=INDIRECT(""A1"")"
と書くと、実行できますが、作成されたセルには
「=INDIRECT("A1")」となり、値参照になってしまうんです。
vbscriptからはセルの参照設定は出来ないのでしょうか
「=INDIRECT(A1)」と指定されたセルを作りたいのです。
197名無しさん@そうだ選挙にいこう:2009/07/08(水) 15:10:23
2003で一つのセルに複数の数字を入力して
どれかが一致したら表示するような関数は組めるでしょうか
198名無しさん@そうだ選挙にいこう:2009/07/08(水) 15:22:02
>197
もっと具体的に説明してください。
また、ひとつのセルに複数の数字を入れなきゃならない事情とは?
「複数の」とは ,でつなげるということ?
「どれかが一致したら」とはひとつのセルの中に入れた複数の数字同士が一致したらということ?
199名無しさん@そうだ選挙にいこう:2009/07/08(水) 15:33:28
>196
VBは扱ったことがありませんが、VBAでセルに計算式を書き込みたいときは
Range("E3").Formula = "=INDIRECT(A1)"
というふうにしますが、vbscriptでも一緒のようですよ。ぐぐったらこんなのがありました。
http://www012.upp.so-net.ne.jp/scotchegg/VBScript/ExcelVBA.htm
200199:2009/07/08(水) 15:36:02
一緒じゃなかった。上で紹介したページの

objXL.Cells(row + i, 5).FormulaR1C1 = _
"=R" & (row + i) & "C3 * R" & (row + i) & "C4"

のような書き方したらいいんじゃないですか。
201名無しさん@そうだ選挙にいこう:2009/07/08(水) 15:50:50
Excel 2003 を Windows Vista で使ってます。郵便局で使う払込取扱票を真似て枠線や
文字を位置あわせをしながらつくりました。これを使って実際の払込取扱票に印刷する場合、
用紙にあらかじめ印刷してある枠線や文字を印刷しないようにしたいのですがどのようにしたら
いいのでしょうか。枠線と文字は青色で作ったので青色だけ印刷されないようにとかいう設定
があるのでしょうか。
202名無しさん@そうだ選挙にいこう:2009/07/08(水) 15:54:22
オートシェイプの書式設定のダイアログを表示させ、
「プロパティ」のタブに切り替えると、
オブジェクトを印刷する という項目にチェックが入っているので、チェックを外す。
印刷プレビューを見たら  ほら消えてるでしょ。
203202:2009/07/08(水) 15:58:50
続き
テキストボックスの場合はテキストボックスそのものを選択した状態(中のテキストの
編集状態:縦棒カーソルが見えてる状態ではダメ)でテキストボックスの書式設定の
画面を表示させ、プロパティのタブ〜以下同文。
204196:2009/07/08(水) 16:04:11
>200
早々にありがとうございます。
「FormulaR1C1」を使うときはご教授いただいた書き方で大丈夫でした
しかし、
「Validation.Add 3, , , "=INDIRECT(A1)"」
と、セルをリストにしたときの「入力規制」への指定では
出来ないみたいでした。
Excelでいう「データの入力規制」の「元の値」への指定です。
205199,200:2009/07/08(水) 16:19:23
計算式じゃなくて入力規則でしたか。早とちりすまん。
vbscript excel xlValidateCustom でぐぐってるけど、よくわからない。
詳しい人、よろしく。
206196,204:2009/07/08(水) 16:23:01
>205
いえいえ、Excelも2chも初心者なので
色々言葉足らずで申し訳ありません。
ご丁寧にありがとうございます。
私もいろいろぐぐっていますが
VBAでは出来るみたいなんですが・・
207名無しさん@そうだ選挙にいこう:2009/07/08(水) 17:07:47
>>196
セルA1に入力されている文字と同じ名前の名前付きセル範囲が存在してないとエラーになんじゃないかなそれは
208202:2009/07/08(水) 17:08:04
>>202
自己レスですがファイル→ページ設定→シート→印刷→「簡易印刷」にチェックで罫線が出力
されなくなる事はいろいろ調べてわかりました。後はセルの青色の文字を表示はされるが印刷
されない状態にもっていきたいです。
209名無しさん@そうだ選挙にいこう:2009/07/08(水) 17:10:34
>>208
無理
青い文字部分消した印刷用のシート作って、そこに入力用のシートのセルを参照するような数式入れれば済む話じゃないのかいな
210名無しさん@そうだ選挙にいこう:2009/07/08(水) 17:13:49
>>209
なるほど。印刷用のシートを作って印刷時はそれを使うようにするのですね。
211202:2009/07/08(水) 17:17:13
>208
セルの場合は オブジェクトを印刷する(のチェックを外す)ような設定はないみたい。
画面上だけ表示して、印刷はしたくない場合は テキストボックス で表現するしかない
でしょう。


その方法がいやだ、というんなら、プリンタから青色カートリッジを取り外すとか。

※名前欄の番号は、自分が書き込んだレス番号をつけないと。これじゃ自作自演だよ。
212196:2009/07/08(水) 17:18:06
>207
お返事ありがとうございます。
いいえ、存在します。
Obj.Range("E3").Validation.Add 3, , , "INDIRECT(""A1"")"
と書いて出来上がったファイルを直接開いて
入力規制「=INDIRECT("A1")」のダブルクォートを手作業でとると
動くのです。
213名無しさん@そうだ選挙にいこう:2009/07/08(水) 17:22:18
>>211
名前欄番号の件、単なる間違いです。テキストボックスを作る方法で試してみます。
それなら作るのは面倒でも使うのは楽みたいですので。ありがとうございます。
214名無しさん@そうだ選挙にいこう:2009/07/08(水) 17:46:38
>>212
じゃあわからん。少なくとも下のコードでは普通に動いてるよ
dim xlApp
set xlApp = createobject("Excel.Application")
xlApp.visible = true
set wb = xlApp.WorkBooks.Add
set ws = wb.worksheets(1)
ws.range("A1").value = "はんい"
ws.range("B1:B3").value = xlApp.worksheetfunction.transpose(Array("A","B","C"))
wb.names.add "はんい", "=Sheet1!R1C2:R3C2"
ws.range("C1").Validation.Add 3, , , "=INDIRECT(A1)"
215196:2009/07/08(水) 18:38:06
>>214
教えていただいたコードを自分の環境で動かしたら
正常に動きました!
自分のソースとの違いは、範囲指定を範囲名で行なっている点です。
つまり参照元もリストなんです。
もう少し試行錯誤してみます。
216名無しさん@そうだ選挙にいこう:2009/07/08(水) 22:38:15
VBAについて質問です。
グラフのプロットエリアの位置・サイズ指定の方法は、Excel 2007で変更になったのでしょうか?

PlotArea.Top = 数字
PlotArea.Left = 数字
PlotArea.width = 数字
PlotArea.Height = 数字

のようにすると 2003だと上手くいくのですが、
2007だと'Top'メソッドは失敗しました.'plotArea'オブジェクト
というようなエラーが出ます。どなたか、ご教授下さい。
217名無しさん@そうだ選挙にいこう:2009/07/08(水) 22:52:07
【1 OSの種類         .】 Windows XP(SP3)
【2 Excelのバージョン   】 Excel 2003(SP3)
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 ピボットテーブル グループ化 上半期 下半期
ピボットテーブルで、
金額 年 売上日
2008年 2009年
得意先 4月 5月 6月 7月 8月 9月 上半期計 10月 11月 12月 1月 2月 3月 下半期計 総計
い商店 1 1 1 1 1 1 6 2 2 2 2 2 2 12 18
ろ商店 2 2 2 2 2 2 12 2 2 2 2 2 2 12 24
は商店 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2
総計 3 3 3 3 3 3 18 4 4 4 4 4 6 26 44
のように通常の年、月のグループ化に「上半期」「下半期」を入れた
グループ化、または同等な集計をしたいのですが、可能でしょうか。
218名無しさん@そうだ選挙にいこう:2009/07/08(水) 23:04:05
>>216
ちゃんとグラフをSelectしたか?
219名無しさん@そうだ選挙にいこう:2009/07/08(水) 23:52:31
>217
元データに、「上半期」「下半期」の列を足せばいい。
220名無しさん@そうだ選挙にいこう:2009/07/08(水) 23:57:02
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003

拠点別集計.xls シート名"MENU"
   A   B   C     D
1
2
3
4             20090417.xls
5             20090521.xls
6             20090623.xls
7
8
9


拠点別集計.xlsのSheets"MENU"に、D列の4行目からブック名が書かれています。
変数Mが"4月"ならD4セルの20090417.xlsを開いて、その中のSheets"4月"〜Sheets"9月"を
拠点別集計.xlsのSheets"MENU"の右隣りにシートコピーします。

変数Mが"5月"ならD4セルの20090417.xlsを開いて、その中のSheets"4月"と、
D5セルの20090521.xlsを開いて、その中のSheets"5月"〜Sheets"9月"を拠点別集計.xlsの
Sheets"MENU"の右隣りにシートコピーします。

変数Mが"6月"ならD4セルの20090417.xlsを開いて、その中のSheets"4月"と、
D5セルの20090521.xlsを開いて、その中のSheets"5月"と、D6セルの20090623.xlsを開いて、
その中のSheets"6月"〜Sheets"9月"を拠点別集計.xlsのSheets"MENU"の右隣りにシートコピーします。

7月以降も同様に各ブックを開いて、シートのコピーをして行きますが、SelectでMを分岐し、
上記に書いたままをマクロで書いてみようと思ったものの、無駄に長くなってしまいます。
効率よい書き方があればアドバイスください。
221名無しさん@そうだ選挙にいこう:2009/07/09(木) 00:08:00
ブックを分けない、はナシ?
222220:2009/07/09(木) 00:18:56
>>221
「販売見込み」を「販売実績」にし、更に昨年との値差を集計しなおすため、
このようなややこしいことをしなければなりません。
つまり、20090417.xlsの"4月"と20090521.xlsの"4月"は別ものなので、
ブックを統一することはできません。
223名無しさん@そうだ選挙にいこう:2009/07/09(木) 00:19:14
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel97
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 不一致 重複 一致

A列に「お客様番号(絶対に重複しない固有の番号)」がズラリと並んでおり
B列以降はなんやかやと住所やらのデータが並んでいます。
シート1には昨日終了時点のデータが残してあり、シート2に本日終了時点のデータがあります。
(順番はメチャクチャになります。)

「A列で、シート2にあって、シート1にない番号」が「今日の入庫」と判定しています。

この判定の方法なんですが、シート2のX列に下記の式を入れて下までコピーして
当日入庫を判定しています。
=IF(ISNA(VLOOKUP(A2,Sheet1!A:A,1,0))=TRUE,"当日入庫","")

データが2000行くらいだった頃は良かったのですが、あれよあれよと30000行を越えてしまい
判定に3分くらいかかるようになってしまいました。

=if(countif(Sheet1!A:A,A2)=0,"当日入庫","")
という式に変えてみたらますます遅くなりました。

こういった「シート2に有ってシート1に無い」を比較的高速で判定できる式というと
どのようなものが考えられますでしょうか?
224名無しさん@そうだ選挙にいこう:2009/07/09(木) 00:20:11
>220
ブックの名前変えたら?
20090417でなく、「2009年4月分」あるいは「4月」、「0904」とか。
無駄にややこしくなってる気がする。
でいて、実行できてるなら多少長くてもかまわないと思う。
225名無しさん@そうだ選挙にいこう:2009/07/09(木) 00:26:08
>>223
matchが早いと聞いたことあるけど、もうそこまでいくとPC買い換えた方がいいかも
後はCTRL+Fの検索とか、試してみては
vlookupはかなり遅い
アキバ行けば中古のpen4の2Gが5000円で売ってるよ
226220:2009/07/09(木) 00:29:38
>>224
ブックの名前を変えても、ややこしさは変わらないと思いますが?
開くブック名 = Worksheets("MENU").Cells(M, 4).Value でいいのでは?
227名無しさん@そうだ選挙にいこう:2009/07/09(木) 00:35:09
意味も無くブック名を変えろとか、PCを買い換えろとか
今宵の先生はレベルが低いねwwwww
228名無しさん@そうだ選挙にいこう:2009/07/09(木) 00:47:11
PC買い換えろとはいってないよ
時期的に検討してもいいぐらいの期間は経っている
10年近く使えばPC内部も劣化するし、色々な意味でPCを買い換えるという事は視野に入れておいていいと思う
とりあえずvlookupの式をmatchに変えて満足ならソレでいいかもしれないけど
229名無しさん@そうだ選挙にいこう:2009/07/09(木) 00:53:18
句読点くらいは、シッカリ打てるようになってくれ。
小学生か?
230名無しさん@そうだ選挙にいこう:2009/07/09(木) 00:56:10
句読点が無いと読めないとか、朝鮮人?
231名無しさん@そうだ選挙にいこう:2009/07/09(木) 00:57:47
>>227
突っ込むところはそこじゃないw

「シート2に有ってシート1に無い」を比較的高速で判定できる式 に対する答えが
“CTRL+Fの検索”というところだ。
232名無しさん@そうだ選挙にいこう:2009/07/09(木) 00:59:00
句読点が打てない人は、バカっぽく見える。
実際バカなんだろうけどw
233名無しさん@そうだ選挙にいこう:2009/07/09(木) 01:00:36
>>230
朝鮮半島に句読点ってあるの?
句読点の起源は韓国ニダーって言いそうでもあるけど
234名無しさん@そうだ選挙にいこう:2009/07/09(木) 01:00:51
>>229>>232
読点の使い方がおかしい。
バカ?
235名無しさん@そうだ選挙にいこう:2009/07/09(木) 01:02:15
さぁ。盛り上がってま、いりますた!
236名無しさん@そうだ選挙にいこう:2009/07/09(木) 01:03:56
>>234
読点の使いどころは時代によって大きく変わる
昔は存在すらしなかった
ちなみに読点を多用する人は弱気な人が多い
237名無しさん@そうだ選挙にいこう:2009/07/09(木) 01:04:40
>>235
読点と文末の使い方が完璧。
天才?
238名無しさん@そうだ選挙にいこう:2009/07/09(木) 01:04:42
>>230, >>233
朝鮮人とか朝鮮半島とか、母国を愛してるのか?
239名無しさん@そうだ選挙にいこう:2009/07/09(木) 01:06:02
>>229の日本語がおかしいことは良く分かった。
240名無しさん@そうだ選挙にいこう:2009/07/09(木) 01:11:31
そんなに必死になるなよw
覚えたての日本語を使ってみたい気持ちがワカランでもないo
241名無しさん@そうだ選挙にいこう:2009/07/09(木) 01:22:35
vlookupはデータが万を超えるとほんと遅くなる。
ただWin2000でExcel97ってさすがにPCもしょぼいんだろ?
うちのC2DのVista + Excel2007で
シートA 約4万データ
シートB 約1万データ
でBのデータがAに含まれるかをvlookupでやると15秒ぐらいかかる
matchにしても変わらないね。
VBAの方がExcelの関数より遅いと思うから、PC買い替えなどを
しない限り確かに速度アップは無理と思う。
242名無しさん@そうだ選挙にいこう:2009/07/09(木) 07:31:39
>>222
>(略)
>このようなややこしいことをしなければなりません。
>つまり(略)
>ブックを統一することはできません。

決め付けんなって。
データがカスだから苦労するんだ。
カスブックを捨てろ。
243名無しさん@そうだ選挙にいこう:2009/07/09(木) 07:35:03
どういう流れだ
244名無しさん@そうだ選挙にいこう:2009/07/09(木) 07:39:47
>>223
データベースソフトを使ってみてはどう?
3万件のデータ結合、抽出くらいなら一瞬で終わると思うよ。
245名無しさん@そうだ選挙にいこう:2009/07/09(木) 08:06:44
>>228
お前分裂症か?
>>225で明確にPC買い換えろと発言してるぞ。
246223:2009/07/09(木) 08:07:49
色々とご返答ありがとうございます。
皆様ご指摘のとおり、PC自体が旧式です。
ためしにmatchを当ててみましたがイマイチ変わりませんでした・・・。

>>244
アクセスの不一致クエリだと確かに若干早いのですが、
普段の作業はエクセル上で行っているので
作業都度アクセスに合う形に直して・・・といった作業を考えると
作業時間はあまり変わらなくなってしまいます。

vlookup等のような汎用性の高い式でなく
不一致を抽出するのに特化した少し処理の早い数式や仕組みがあれば・・・と思ったのですが。
247名無しさん@そうだ選挙にいこう:2009/07/09(木) 08:34:01
vlookupはダメ!matchを使え。
とか言ってるやつの話は聞いても無駄です。
248名無しさん@そうだ選挙にいこう:2009/07/09(木) 08:49:59
なんだ?
我慢できずにとうとう基地外がわいてきたかw
249名無しさん@そうだ選挙にいこう:2009/07/09(木) 08:53:44
>>223自体が釣りの質問だろうねぇ。
朝鮮人とか一人で騒いでたんじゃねーのか?
250名無しさん@そうだ選挙にいこう:2009/07/09(木) 09:54:47
>>246
一日に一回の処理だったら、ワークシート関数使わないでマクロの方がいいんじゃないかな
251名無しさん@そうだ選挙にいこう:2009/07/09(木) 10:42:44
実際vlookupよりmatch+indexの方が早くなる傾向はあるんじゃなかったか?
>>223みたいに一行だと同じだけど、範囲(列)が広くなるとvlookup関数は計算する量が大きくなるとか
>>223
速度は分からないけど、条件付書式と組み合わせてみるのもいいかもしれない
=VLOOKUP(A2,Sheet1!A:A,1,0)
がエラー値だったらセルに色付けするとか

後は無難にVBAか
Sub a()
gyo2 = Sheets("sheet2").Range("A65536").End(xlUp).Row
For i = 1 To gyo2

Set FoundCell = Range("sheet1!A:A").Find(What:=Cells(i, 1))
If FoundCell Is Nothing Then
Cells(i, 24) = "当日入荷"
Else
Cells(i, 24) = ""
End If

Next
End Sub
252196:2009/07/09(木) 12:07:07
昨日からお世話になっております。
vbscriptのみ で Excelのテンプレートを作成したいのですが
行き詰っており、質問が2つあります。
初心者で申し訳ありませんが、どなたかご教授お願いいたします。

@入力規制のリストボックス作成で失敗する
-----
with ws.Range("A1").Validation
.Delete
.Add 3, , , wb.Names("HOGE")
.IgnoreBlank = false
end with

with ws.Range("C1").Validation
.Delete
.Add 3, , , "=INDIRECT(A1)"
.IgnoreBlank = false
end with
------

「Add 3, , , "=INDIRECT(A1)"」
で実行時エラーがでます。


>214
昨日214さんに教えていただいたコードは
自分の環境でも動きました。
違いは"A1"も,自分の場合はリストであるということでした。
"A1"は作成時はどの項目も選択されないので、
もしかしたらそれが原因なのかもしれません。
リスト作成時にある項目を選択する方法はありますか?
253196:2009/07/09(木) 12:08:33
AVLOOKUPの「範囲」で文字列指定

VLOOKUPの第二引数に、
範囲名称を加工して入力したいのですが
下記の式では落ちちゃいます。
VLOOKUP文字列が指定できないのでしょうか?
------
VLOOKUP(A1,SUBSTITUTE(INDIRECT("C3"),"hoge1","hoge2"),2,FALSE)),"err","succes")
------
254196:2009/07/09(木) 12:10:24
すみません、253の式はミスです。
正しくは↓です
------
VLOOKUP(A1,SUBSTITUTE(INDIRECT("C3"),"hoge1","hoge2"),2,FALSE)
------
255名無しさん@そうだ選挙にいこう:2009/07/09(木) 12:35:51
>>252
名前がないと止まるっていってんじゃん。バカ?
必ず存在する名前かセル番地入れておいて、設定後に消さばいいんじゃね?

'セルA1は絶対存在するからとりあえず入れとく
ws.range("A1").value = "A1"
'それ指定
ws.range("C1").Validation.Add 3, , , "=INDIRECT(A1)"
'消す
ws.range("A1").clear
256名無しさん@そうだ選挙にいこう:2009/07/09(木) 12:37:02
vlookupも同じミスしてんじゃね?検証する気も起きないけど
257名無しさん@そうだ選挙にいこう:2009/07/09(木) 12:45:17
>>223
どちらのシートにも3万件以上あって3分で終わってるなら十分早いと思うんだが・・・
これ以上を望むのならそのファイルに入力するためのフォームとか組んで
入力時に判定するようにしたほうが良くないか?
258257:2009/07/09(木) 13:50:29
>>251がFind使ってるの見て考え直してみた
>>223はvlookup使ってやってるようなのでシート1はソート済みのはず
もしそうならこれなら早いはず

Sub 当日入庫()
 Dim var2A, var2X
 Dim lngMax1 As Long, lngMax2 As Long, i As Long, j As Long, lngFind As Long
 Dim rngRet As Range
 lngMax1 = Sheet1.Cells(65536, 1).End(xlUp).Row
 lngMax2 = Sheet2.Cells(65536, 1).End(xlUp).Row
 'A列をVariantに入れる
 var2A = Range(Sheet2.Cells(1, 1), Sheet2.Cells(lngMax2, 1))
 '結果用のVariantを初期化
 ReDim var2X(1 To lngMax2, 1 To 1)
 lngFind = 1
 For i = 1 To lngMax2
  Application.StatusBar = var2A(i, 1) '←進行状況を見るため
  Set rngRet = Range(Sheet1.Cells(1, 1), Sheet1.Cells(lngMax2, 1)).Find(What:=var2A(i, 1), after:=Sheet1.Cells(lngFind, 1))
  If rngRet Is Nothing Then
   var2X(i, 1) = "当日入庫"
  Else
   lngFind = rngRet.Row
  End If
  Set rngRet = Nothing
 Next i
 Application.StatusBar = False
 '結果(Variant)をX列に入れる
 Range(Sheet2.Cells(1, 24), Sheet2.Cells(lngMax2, 24)) = var2X
End Sub
259257:2009/07/09(木) 13:54:32
いろいろ試してるときに作った変数の宣言とか残ってたorz
260名無しさん@そうだ選挙にいこう:2009/07/09(木) 13:58:22
釣り質問にまだやってたのかよ。
そんなもん両方3万件でもいまどきのパソコンは1秒もかからん。

261196:2009/07/09(木) 14:02:25
>256
バカですみません。
@が解決しました。本当にありがとうございました。
でもvlookupの件は違うようです。
262名無しさん@そうだ選挙にいこう:2009/07/09(木) 14:07:29
配列に流しこんでソートをだな
263名無しさん@そうだ選挙にいこう:2009/07/09(木) 14:12:48
>>262
そう考えなかったわけじゃないが面倒なので省きたかった
それにシート2のデータにまったく連続性がなかったら意味がないなw
264名無しさん@そうだ選挙にいこう:2009/07/09(木) 15:29:08
>>258
vlookpの最後の引数が0なら並んでなくてもいいぞ
265名無しさん@そうだ選挙にいこう:2009/07/09(木) 16:10:06
>>264
目が腐ってたようだ見落としてたわ
266名無しさん@そうだ選挙にいこう:2009/07/09(木) 16:22:17
>>223なんてソートしてLOOKUPで一瞬だよな。
FindメソッドとかVLOOKUPでFALSE検索やMATCHの検索の型0を使うやつは何も分っとらん。
267名無しさん@そうだ選挙にいこう:2009/07/09(木) 16:33:59
Excell2002です。説明しにくいんですが

商品名・(仕入の)数量・単価・金額のリストがあって
ピボットテーブルで、
「商品・合計数量・単価・合計金額」
と作表したいのですが、

ピボットテーブルの左側に「商品・合計数量・単価」を入れると、

仮に単価1,000とすると、
商品の仕入が3回あって数量が3・5・5の合計13のとき
「商品・13個・単価1,000・金額13,000」
という行になって欲しいのですが

「商品・3個・単価1,000・金額3,000
 商品・5個・単価1,000・金額10,000」
となってしまいます。

「商品・5個」の部分で10個分の金額が出てしまい不都合なのですが
どうすればいいでしょうか。
268名無しさん@そうだ選挙にいこう:2009/07/09(木) 16:35:39
>>223みたいな問題は
ハッシュテーブルを使って処理するのが一番速い。
269名無しさん@そうだ選挙にいこう:2009/07/09(木) 16:38:58
>>268
うんにゃ、3万対1万ならそおうとも言えない。
Dictionaryなんかここ数年まともなコード見たことナス。
何年たっても上達しないやつが書いてるから仕方がねーな。
270名無しさん@そうだ選挙にいこう:2009/07/09(木) 16:44:57
>>269
アルゴリズムの優劣と個人のプログラミング技術の優劣の話は別物だと思うが・・・
271名無しさん@そうだ選挙にいこう:2009/07/09(木) 16:57:45
>>269
Dictionaryって使ったことないけど
>>223に適用できるなら「まともなコード」とやらを書いてみてくれないか?
272名無しさん@そうだ選挙にいこう:2009/07/09(木) 17:02:41
まーた嘘つくんじゃないよ。
まともじゃないコードさんざん書いてるくせにw
273名無しさん@そうだ選挙にいこう:2009/07/09(木) 17:06:09
>>271
非難したいだけの奴にそんなこと言っても無駄
もっと良い方法がある、自分ならもっと上手くできるってことを臭わせるだけで
実際には具体的な指摘も見本となるコードを書くことも出来ないんだからw
274名無しさん@そうだ選挙にいこう:2009/07/09(木) 17:08:19
>>272
>>271宛だよな?
Dictionaryって今ググってみたんだが
これだと3万回Addしないといけないみたいだから
これじゃたぶん遅くなるな

それと「まともじゃないコード」ってどんなの?
275名無しさん@そうだ選挙にいこう:2009/07/09(木) 17:08:42
はいはいそう思ってなさい。
276名無しさん@そうだ選挙にいこう:2009/07/09(木) 17:10:51
と、「実際は違う」的なふいんきを臭わせるだけで
具体的な話は一切しないw
277名無しさん@そうだ選挙にいこう:2009/07/09(木) 17:12:53
>>274
そこらへんで見るDictionaryのほとんど。
盲愚やサロンへ逝ってみればいやでも目に入る。
278名無しさん@そうだ選挙にいこう:2009/07/09(木) 17:19:33
>>269の1行目と2,3行目の関連がよく分らん・・・
279名無しさん@そうだ選挙にいこう:2009/07/09(木) 18:00:22
いい例でも悪い例でもいいから書けよ
めんどうなら悪い例とやらのURL教えてくれ
280名無しさん@そうだ選挙にいこう:2009/07/09(木) 18:06:24
こんなで
Set f = Application.WorksheetFunction
[A1:A5] = f.Transpose(Array("A", "B", "C", "D", "E"))
[B1:B3] = f.Transpose(Array("G", "A", "C"))
A1:E1のリストに無いB1:B3の値を求めるコード
早く書いてくれ
281名無しさん@そうだ選挙にいこう:2009/07/09(木) 18:10:40
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 excel マクロ 警告 表示しない 2003

大量のExcelファイルを開きつつ行う作業があるのですが、
すべてのファイルに無駄なマクロの残骸が入っているようです。
セキュリティを「最高」「高」でも、
「マクロは無効になっています」という旨のメッセージが出るのが鬱陶しいです。
ファイルを開く際に警告メッセージを出さずに、
マクロを無効にして開く方法はないでしょうか。
「中」では有効無効の選択が出てしまい、
「低」では勝手に有効になるのでそれも万が一ということを考えると避けたいです。
よろしくお願いします。
282名無しさん@そうだ選挙にいこう:2009/07/09(木) 18:22:07
>>281
複数のブックからマクロを一括で削除するマクロってのがある
ttp://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_800_200.html
283名無しさん@そうだ選挙にいこう:2009/07/09(木) 18:30:02
いいから早く書けよ269
その素晴らしいコードとやらを
284名無しさん@そうだ選挙にいこう:2009/07/09(木) 18:37:53
>267
商品1件につき1行は無理だったけど、一番近い形としてこういうのはどうですか?
1 商品と単価を「行」にドラッグする
2 数量と金額を「データ」にドラッグする
285名無しさん@そうだ選挙にいこう:2009/07/09(木) 18:43:44
【1 OSの種類         .】 WindowsXP Pro SP3
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 不可

A1からT2000までのセルに記載された製品情報があり、
その範囲にあるC列に型名が記載されています

このC列の型名情報を元にA1からT2000までの情報に
フィルタを掛けたいのですが、特定の複数のセル、例えばU1からU10まで
に型名を打ち込んだら、C列の情報に一致するものだけをフィルタリング
して表示する、という関数はありますか?
286名無しさん@そうだ選挙にいこう:2009/07/09(木) 18:48:33
だから自作自演の質問はいらねーんだよ
はやくしろよ269
287名無しさん@そうだ選挙にいこう:2009/07/09(木) 19:01:33
>>285
作業列に一致したかどうかを示す式を入れてオートフィルタが一番簡単だと思う
288名無しさん@そうだ選挙にいこう:2009/07/09(木) 19:10:38
WindowsXP(home)sp3 Excel2003ですが、エクセルを使い始めてしばらくすると
CPU使用率100%になってまして、どのプロセスが使っているんだろうとみたら
EXCEL.EXEが95%前後使ってました。
不思議なことに、エクセルは起動していてブックをすべて閉じていても状況は
変わりません。ネット接続の有無も関係ありません。
エクセルを終了して再度エクセルを起動したところ、何の操作をしなくても
約12秒後からCPU使用率が(全体で)100%になってしまいます。
一体これはなんでしょうか?
※OfficeUpdateはしてません。これからやってみます。
289名無しさん@そうだ選挙にいこう:2009/07/09(木) 19:22:05
>>287
それでもいいけどたぶんフィルタオプション使った回答書きたかったんじゃないかな彼は
290名無しさん@そうだ選挙にいこう:2009/07/09(木) 19:24:40
269早くしろよまじで
不一致クエリ相当の処理書けよ
291名無しさん@そうだ選挙にいこう:2009/07/09(木) 19:31:41
>>288
まずは変なマクロが走ってないかチェック。
もちろんウィルスチェッカーは常駐してるよな?
まさかと思うけどメモリが足りてないなんてことはないか?
292名無しさん@そうだ選挙にいこう:2009/07/09(木) 19:32:05
もうそのへんにしよけよ
どうせろくなプログラムも書けやしないんだからw

こんだけ煽られて反骨心のあるやつならとっくに書いてる
293288:2009/07/09(木) 19:46:48
>291
エクセルだけ起動していて、何もブックが開いていないときのマクロの実行状況の
確認方法ってありますか?

ウィルスチェッカーというか、NTTのフレッツ光で接続してるので、「セキュリティ
対策ツール(実体はトレンドマイクロのウィルスバスター)」をインストールしてます。

メモリは1Gバイトです。
294名無しさん@そうだ選挙にいこう:2009/07/09(木) 19:59:02
>>293
ブックを開かなくても実効できるマクロはあるよ
ttp://excel-vba.seesaa.net/article/151578.html
念のため聞くけど割れ物じゃないよね?
295名無しさん@そうだ選挙にいこう:2009/07/09(木) 20:00:46
>>293
ttp://www.google.com/search?hl=ja&safe=off&client=opera&rls=ja&hs=Ejr&q=%E3%82%A6%E3%82%A3%E3%83%AB%E3%82%B9%E3%83%90%E3%82%B9%E3%82%BF%E3%83%BC+%E3%82%A8%E3%82%AF%E3%82%BB%E3%83%AB%E3%80%80%E9%87%8D%E3%81%84&btnG=%E6%A4%9C%E7%B4%A2&lr=
色々解決方法があるらしい。一度試してみては?
ウィルスバスターに限らずアンチウィルスソフトは本当に不具合が多いな
296288,293:2009/07/09(木) 20:24:58
>294
XLStartフォルダが2個(\ProgramFilesの下と\Documents and Settingsの下)ありましたが、
その中には何もありませんでした。
割れ物ではありません。バイオノートtypeFに最初からインストールされてたものです。

>295
みてみましたが、フリーズではない(エクセルの操作はできるし、それ以外のアプリも
ストレスなく動いている)ので状況は少し違うかな、と思います。
297220:2009/07/09(木) 20:40:50
>>242
決め付けるもなにも、私がつくったファイルじゃないので変えられません。
データがカスなのは認めます。
詳細は書けませんが、中身は物凄い複雑です。
298名無しさん@そうだ選挙にいこう:2009/07/09(木) 21:14:50
コピーした文字列
例えばH21. 7. 9
をセルにペーストする際に
H21.7.9と置換かトリムしてペーストさせたいのですが
何か良い方法はないでしょうか?
宜しくお願い致します。
299名無しさん@そうだ選挙にいこう:2009/07/09(木) 21:20:52
>>297
>>251のマクロは試してもらえました?
かなり早くなると思いますよ。不満店があれば言ってもらえればまた直しますんで
>>298
=SUBSTITUTE(A1," ","")
で空白がとれるからこれをコピーして値で貼り付け
じゃなきゃ素直に置換かな
300名無しさん@そうだ選挙にいこう:2009/07/09(木) 21:40:22
>>299
ペーストする時に文字列判定して置換したいのです
って無茶ですよね・・・
一段階踏むしかないかな
301名無しさん@そうだ選挙にいこう:2009/07/09(木) 21:53:00
>>297
うそつけ。
その制約を受け入れているのはおまえ自身だよ。

>「販売見込み」を「販売実績」にし、更に昨年との値差を集計しなおすため、
>このようなややこしいことをしなければなりません。
>つまり、20090417.xlsの"4月"と20090521.xlsの"4月"は別ものなので、
>ブックを統一することはできません。
302名無しさん@そうだ選挙にいこう:2009/07/09(木) 22:05:56
グラフを作成する際、横軸データが[0.1,1,10]という様にバラバラになっている場合に
目盛りを[1,2,3〜10]と表示したいのですが、どのようにしたら良いでしょうか?

プロットする点が
・ ・ ・ ・
となる様にしたいんです

初歩的な質問なのかも知れませんがお願いします
303220:2009/07/09(木) 22:07:00
>>301
じゃ、嘘つきだと思ってください。
マトモに答えるつもりがないなら、レスしなくて結構。
あなたも社会人になれば、しがらみを知ることになるでしょう。
304名無しさん@そうだ選挙にいこう:2009/07/09(木) 22:08:51
ピボットテーブルを使えば解決するものばかりだな
305名無しさん@そうだ選挙にいこう:2009/07/09(木) 22:17:03
>302
状況を質問テンプレートを使ってもっと詳しく。
レス番号>1からの注意事項を読みましょう。
306名無しさん@そうだ選挙にいこう:2009/07/09(木) 22:35:52
>>305
すいません
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 excel グラフ 目盛
(excelの使い方という様なサイトも色々回りました)


グラフにプロットしたい点が
(0.123,1.23),(3.45,5.6),(10,6)
という風にバラバラなんです
これを正しい尺度で作図したいと思っています

今の私の知識では点を均等にプロットする方法(0.123〜3.45と3.45〜10の距離が同じ)しか知りません

色々調べましたが、このような例の載っているサイトが見つからず質問しました
307306:2009/07/09(木) 22:41:01
ちなみに横軸がひずみ、縦軸が応力です
308305:2009/07/09(木) 22:45:29
>302
グラフの種類は何?
>306 のデータで散布図を書いたら縦軸は0〜7(目盛りは1きざみ)、
横軸は0〜15(目盛りは2きざみ)で書けたよ。
309305:2009/07/09(木) 22:47:54
>308 をちょっと訂正
横軸の目盛りはグラフサイズで変化する。当初は15までだったけどサイズを変えていたら
12までになった。きざみ具合はサイズによって異なる。
310306:2009/07/09(木) 22:53:47
>>309
散布図ですか
今はPCを使えない状況なんで後で試したいと思います

ちなみにこのグラフの目盛付きが完成形の予定です
http://www.instron.jp/wa/resourcecenter/glossaryterm.aspx?ID=152
311名無しさん@そうだ選挙にいこう:2009/07/09(木) 22:53:55
>>306
散布図を使え
グラフの範囲は自由に変更できる
目盛りの間隔も等間隔という条件で自由に変更できる
散布図でも気に入らないなら別のソフトを使うかオートシェイプ
312305:2009/07/09(木) 23:04:11
>306
散布図以外で>310のようなグラフは書けないと思うんだけど・・・
グラフの種類を何で書こうとしたのか>310でも回答なし。
313223:2009/07/09(木) 23:06:22
>>299
色々ありがとうございます。
マクロをためしてみたんですが、VLookとほとんど変わりませんでした・・・。

やっぱり不一致判定ってエクセルは苦手なんでしょうかね・・・。

>>266で書かれている「ソートしてLOOKUPで一瞬」という意味、
どなたかわかる方おられますか?
314306:2009/07/09(木) 23:11:00
>>312
回答忘れてすいませんでした

折れ線グラフで書いて滑らかにするやつを使おうとしてました
本当に初心者で申し訳ありません

お答えありがとうございます
315305:2009/07/09(木) 23:47:32
>314
折れ線グラフ・・・・無謀でしたね。
例えば、学校(学級単位でもいいけど)で、生徒の身長と体重のデータから
相関図をつくるとか、関数(Y=aX^2+bとかの)のグラフを書くとか
縦軸・横軸とも数値であるものは散布図ですよ。
316名無しさん@そうだ選挙にいこう:2009/07/10(金) 01:09:17
>>313
VBAのForの直前に
Application.ScreenUpdating = False
Nextの直後に
Application.ScreenUpdating = True
を入れたら早くなるかも。
ExcelのVBAで遅くなる原因にデータの描画に時間が掛かる
というケースがあって、大量のデータをVBAで書き込むときに
このおまじないコードで描画をやめて最後に描画させると
高速化する。ただし、計算の途中なにもしていないように見える
ので、不安になるがあせらないこと。
317名無しさん@そうだ選挙にいこう:2009/07/10(金) 06:10:27
>>316
いまさらそこから?
そんな基本的なことどうでもいいからアルゴリズムの話をしろや。
上のほうでハッシュとか出てるでしょ?読んでるの?

さっき簡単なSQL作って試してみたら一瞬で終わった。
SELECT * FROM TABLE1 LEFT OUTER JOIN TABLE2 ON COLUMN1=COLUMN2
この1行で完成。
エンターキー押した瞬間に結果出たぞ。
318名無しさん@そうだ選挙にいこう:2009/07/10(金) 06:34:09
>>304
だよな。
>>223関連でDictionaryのへたくそオタクどもがファビョってるが、ピボットの複数のワークシート範囲で表示形式を[=1]"当日入庫";""とでもすりゃいいもんな。
319名無しさん@そうだ選挙にいこう:2009/07/10(金) 06:44:31
そもそも>>223のお客様番号がどんなものか分らんことには始まらないよな。
本当に番号ならハッシュ使うやつは馬鹿だしな。
F00001とかM12345とかの文字列にしてもSheet1の番号のリストと当日の番号のリストの数が数万対数千でもハッシュ使うやつは馬鹿。
320名無しさん@そうだ選挙にいこう:2009/07/10(金) 06:51:27
>>318
本来ピボットテーブルがおすすめなんだが>>223はExcel97なんだよな。
321名無しさん@そうだ選挙にいこう:2009/07/10(金) 06:55:35
>>320
そうだったか、見落としすまん。
ピボットは2007からじゃないとつらいかもね。
今30000アイテム程度らしいから、あとちょっとでパンク?
322名無しさん@そうだ選挙にいこう:2009/07/10(金) 06:57:46
書きもれ。
あとちょっとでパンクはExcel2003を使った場合ね。
323名無しさん@そうだ選挙にいこう:2009/07/10(金) 07:05:15
>>321
ここの質問はだいたいピボットテーブルで解決だな。
アイテム数の制限さえなければほんとに便利。
私は普段2000を使っててアイテム数制限あるけど、実用上めったに不便は感じないな。
324名無しさん@そうだ選挙にいこう:2009/07/10(金) 07:42:37
>>313
>「ソートしてLOOKUPで一瞬」という意味、
>どなたかわかる方おられますか?

元データがソート済であると仮定するアルゴリスムのほうが一般に高速ということだろう。
わざわざLOOKUPを使わなくてもVLOOKUPで条件にTRUEを指定してやれば同じ。
VLOOKUPを否定するやつ多いが意味がわからん。

ソートしてLOOKUP試してみたが一瞬とは感じなかった。
どちらかといえば遅くて我慢できなかった。
325名無しさん@そうだ選挙にいこう:2009/07/10(金) 07:54:57
vlookupはだめだ。index+matchを使えという迷信も多いね。
326名無しさん@そうだ選挙にいこう:2009/07/10(金) 07:55:55
にわか知識かじったバカどもが必死だなあこりゃ
赤面するのは何年後になるのかわからないレベルの低さというのが悲しいな
327名無しさん@そうだ選挙にいこう:2009/07/10(金) 08:11:12
>>326
だな、さしずめ>>324は関数での範囲指定の仕方も知らないんだろう。
328名無しさん@そうだ選挙にいこう:2009/07/10(金) 08:17:00
=LOOKUP(C1,A$2:A$10000)これをわざわざ=VLOOKUP(C1,A$2:A$10000,1,TRUE)とするやつはヴァカだな。
329名無しさん@そうだ選挙にいこう:2009/07/10(金) 08:22:17
>>328
それの何が不満?
330名無しさん@そうだ選挙にいこう:2009/07/10(金) 08:22:48
jsk
331名無しさん@そうだ選挙にいこう:2009/07/10(金) 08:29:26
>>328
わざわざ無駄に長くことを趣味にしてるやつはいるからねぇ。
数式は知らんが、VBAなんて昔は書いたコードの量によって貰うお金がちがうなんてこともあった品
それでSelectだらけの汚いコード書いてウマー
332名無しさん@そうだ選挙にいこう:2009/07/10(金) 08:35:00
レベルの低さにくらくらしてきた。
引数が多いからムダとか何言ってるんだろ。
333名無しさん@そうだ選挙にいこう:2009/07/10(金) 08:40:44
おれも332にクラクラしてきたぜw
334名無しさん@そうだ選挙にいこう:2009/07/10(金) 08:45:40
範囲の1列目をわざわざ取得してるんだからjsk無駄だよなぁ。
レベルのお高い人はそう感じないらしいなw
335名無しさん@そうだ選挙にいこう:2009/07/10(金) 08:45:55
実際、ソートしてlookupは速いのかよ。
一瞬で結果でるのか?
336名無しさん@そうだ選挙にいこう:2009/07/10(金) 08:48:28
>>334
うーん。真性のバカ発見。
337名無しさん@そうだ選挙にいこう:2009/07/10(金) 08:50:57
一瞬と書いたのは俺じゃねーが、Sheet1が3万行、Sheet2に1万行でlookupで約0.25秒だな。
一瞬と言えるか微妙だが0.25秒はSheet1をいじった時だけだから、まぁいいんじゃね?
338名無しさん@そうだ選挙にいこう:2009/07/10(金) 08:55:04
うーん、真正のレベルのお高い人を発見。
Range("A:A!")をRange("A:A").Columns(1)って書くのはレベル高いよな。
斜め上の人はさすがだなw
339名無しさん@そうだ選挙にいこう:2009/07/10(金) 08:56:00
びっくりして!までつけちゃったよw
340名無しさん@そうだ選挙にいこう:2009/07/10(金) 09:11:38
>>335
lookup関数は元々ソートされていることが前提で計算する関数だったはず
どこから速度が出るという話が出てきたか見当もつかん
都市伝説か何かか?
341名無しさん@そうだ選挙にいこう:2009/07/10(金) 09:23:31
>>337
速度なんてマシン環境によって全然違ってくるのにLOOKUPの結果だけいきなり出されても。
元のやり方でも時間測ってそれと比較しないと意味ないだろ・・・
あとピボット厨の人もピボットだとどれぐらい早くなるのか数字を出して欲しいな。
342名無しさん@そうだ選挙にいこう:2009/07/10(金) 11:20:40
【1 OSの種類         .】 WindowsXP Pro SP3
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 不可

すみません。 何かの自演と勘違いされてスルーされてしまったよう
ですので再度ご質問させて頂きます

A1からT2000までのセルに記載された製品情報があり、
その範囲にあるC列に型名が記載されています
このA1-T1000をデータベースとします
343名無しさん@そうだ選挙にいこう:2009/07/10(金) 11:21:47
C列の型名情報を元にA1からT2000までの情報に
フィルタを掛けたいのですが、特定の複数のセル、例えばU1からU10まで
に型名を打ち込んだら、C列の情報に一致するものだけをフィルタリング
して表示する、という方法はありますか?

関数をいくつか試しましたが、「抽出結果を別のセルに表示」ではなく
「データベース」を最新情報にするために、データベースを編集できるような
フィルタで無いと意味が無く、その様な方法を探しています

ご教示お願い致します

【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否


質問です。
下記のような文字列があったとして…


愛知県名古屋市名東区
愛知県名古屋市北区
名古屋市北区
愛知県名古屋市守山区
名古屋市昭和区


この文字列の中から『○○区』だけをピックアップしたいです。

ご回答よろしくお願いいたします。
345名無しさん@そうだ選挙にいこう:2009/07/10(金) 11:56:57
>344

置換で
"愛知県名古屋市"→""
"名古屋市"→""
346名無しさん@そうだ選挙にいこう:2009/07/10(金) 11:57:54
>>342-343
自演とか騒ぎだす病人はいつもいるからねぇ。
しかし回答はすでに貰ってるよな?
たった2000行と10行なら>>287で十分じゃないのかい?
その程度のデータならMATCHなりCOUNTIFでも動くはずだが。
作業列に=ISNUMBER(MATCH(C2,U$1:U$10,0))とでもしてTRUEをフィルタリングするだけだ。
>>345
ご回答ありがとうございます。

説明不足で申し訳ありませんが、「愛知県名古屋市」、「名古屋市」以外にも大量の文字列があります。
(例:「東京都港区」、「大阪府大阪市北区」など)

私の予想で申し訳ないのですが、『任意の文字列の中より「区」より手前の○文字目を表示』
という感じなのではと思っております。


改めてよろしくお願いいたします。
348名無しさん@そうだ選挙にいこう:2009/07/10(金) 12:17:52
名古屋って愛知県なんだよなと懐かしい気分

で、ソート云々はなんなんだ
349名無しさん@そうだ選挙にいこう:2009/07/10(金) 12:23:00
Dictionaryもなんなんだろうな
350名無しさん@そうだ選挙にいこう:2009/07/10(金) 12:26:13
>>347
それは、文字数とか使える文字とかに規則がないから、簡単な式で一発でやるのは無理。
一覧表を用意して、それと一致するかどうか調べるしかない。
政令指定都市の数なんてたかが知れてるし、ネットを探せば区名の一覧ぐらいすぐ見つかる。

「市」と「区」の間の文字を取り出す、みたいな方法が使えるかどうかは
一覧表があればわかるんだけど、
今はOKでも将来使えなくなる可能性があるからオススメはできない。
351名無しさん@そうだ選挙にいこう:2009/07/10(金) 12:37:46
そこをあえて
=MID(A1,FIND("市",A1)+1,FIND("区",A1)-FIND("市",A1))
352名無しさん@そうだ選挙にいこう:2009/07/10(金) 12:38:58
何かの間違いで市川市や市原市が政令指定都市になったら破綻するな
353名無しさん@そうだ選挙にいこう:2009/07/10(金) 12:40:19
たぶん最新?
政令指定都市の一覧表
ttp://www.tt.rim.or.jp/~ishato/tiri/cities/seirei.htm
354名無しさん@そうだ選挙にいこう:2009/07/10(金) 12:42:32
一覧表を引く方法だってメンテナンスが必要って意味では大差ない

それよりも、区名を取り出したあと何がしたいのか、目的がわかれば
もっといい方法があるかもよ?
355名無しさん@そうだ選挙にいこう:2009/07/10(金) 12:47:25
名古屋市は名古屋県だと言ったやつ二人知ってる
356名無しさん@そうだ選挙にいこう:2009/07/10(金) 13:00:57
連想配列を定義
定義文字は直記述でもシートの一覧データからの取得でも
357名無しさん@そうだ選挙にいこう:2009/07/10(金) 13:01:41
昔は本当に名古屋県があったから、バカか年寄りかどっちかだな
358名無しさん@そうだ選挙にいこう:2009/07/10(金) 13:03:43
配列でもなんでもいいけど、データソートかけてカウントして、結果が1のデータを抜き出すのはどうだろうか
359名無しさん@そうだ選挙にいこう:2009/07/10(金) 13:27:42
エクセルファンクラブはどうしちゃったの?
知っている人いたらkwsk
360名無しさん@そうだ選挙にいこう:2009/07/10(金) 13:29:24
>223ね
シート1とシート2の番号を配列に連続して流し込む
ソート

データが終わるまでループ
i=1
データn=n+1を満たす間ループ
i=i+1
ループ
i=1なら番号を取得
ループ

取得した番号はユニークなはずなので、全探索よりは早いと思う
361名無しさん@そうだ選挙にいこう:2009/07/10(金) 15:16:38
>>360
言われてみるとなるほどだな。
頭いい人っているもんだなあ。
362名無しさん@そうだ選挙にいこう:2009/07/10(金) 15:22:09
>>282
多少怪しい挙動もありましたが(なぜか途中で止まる、デスクトップ表示でブラクラ状態にw)
このマクロでなんとか処理できました。ありがとうございました。
363名無しさん@そうだ選挙にいこう:2009/07/10(金) 15:37:37
>>351
ありがとうございます
100点のご回答です
364名無しさん@そうだ選挙にいこう:2009/07/10(金) 15:43:04
度々すいません

これだと『名東区』と表示されてしまいます
これを更に『名東』だけにしたいのです

贅沢言って申し訳ありませんが何卒よろしくお願いいたします
365名無しさん@そうだ選挙にいこう:2009/07/10(金) 15:45:35
>>364
試してないけどこうかな
=MID(A1,FIND("市",A1)+1,FIND("区",A1)-FIND("市",A1)-1)
366名無しさん@そうだ選挙にいこう:2009/07/10(金) 15:47:41
>>363
「市」や「区」が無いとエラーになると思うが・・
ほとんど処理できるならいいのか

とりあえず回答
=SUBSTITUTE(MID(A1,FIND("市",A1)+1,FIND("区",A1)-FIND("市",A1)),"区","")
367名無しさん@そうだ選挙にいこう:2009/07/10(金) 15:49:51
>>365
試せよw
368名無しさん@そうだ選挙にいこう:2009/07/10(金) 15:52:47
A列 商品名
B列 仕入先
C列 仕入価格(E列日付)
D列 販売価格(E日付)
E列 仕入日
F列 仕入価格(H列日付)
G列 販売価格(H列日付)
H列 仕入日
という商品名に対し仕入れ日と仕入れ/販売価格を
3列セットで増やしながら管理しています
とある生モノを扱っているので、仕入れ、販売価格が仕入れ日により結構違うので、このような管理方法になっています
そこで仕入れ日を指定したセルに入れれば、その日に仕入れた商品名(全部)と個々の仕入れ価格、販売価格を全DATAから検索して表示してくれる機能は
ないでしょうか?
369名無しさん@そうだ選挙にいこう:2009/07/10(金) 16:01:00
オートフィル

そこでマッチでーす
370名無しさん@そうだ選挙にいこう:2009/07/10(金) 16:03:11
>>368
俺ピボット厨じゃないですけどこれはピボットテーブル使えば簡単だな
371名無しさん@そうだ選挙にいこう:2009/07/10(金) 16:03:26
>>368
そんな機能はない

同じ意味のデータ(仕入日)が複数列にまたがっていて、しかも列数が不定だから、一発で求めるのは無理
作業シートを使って段階的に抽出していくことになるが、オレならVBA使う
372名無しさん@そうだ選挙にいこう:2009/07/10(金) 16:04:35
>>370
「列を増やしながら管理」
373名無しさん@そうだ選挙にいこう:2009/07/10(金) 16:07:11
254/3=84回仕入れしたら会社終了?
374名無しさん@そうだ選挙にいこう:2009/07/10(金) 16:10:04
悪いことは言わん。
商品名と仕入先の重複を許して、仕入日は1行に1つにしなさい。
そうすれば整理も分類も検索も一発でできるようになるから。
375名無しさん@そうだ選挙にいこう:2009/07/10(金) 16:17:36
>368
VBAマクロでしか実現できないと思う。
Excelのバージョン、データシート名(シートは1枚?)を回答されたし。

っていうか、こういうのはエクセルよりもアクセスの方が管理しやすいんじゃないかな。
それか、
A列 商品名
B列 仕入先
C列 仕入価格(E列日付)
D列 販売価格(E日付)
E列 仕入日
の5項目で固定(列を増やさない)にするとフィルタで用が足りるんじゃない?
376名無しさん@そうだ選挙にいこう:2009/07/10(金) 16:27:12
>373
Excel2007は16384列までOKです。なので(16,384-2)÷3=5,460回まで大丈夫!
377名無しさん@そうだ選挙にいこう:2009/07/10(金) 16:32:31
>>374しかないよなぁ
378名無しさん@そうだ選挙にいこう:2009/07/10(金) 16:44:56
WindowsXPsp1,EXCEL2003です。

約1ケ月前から、EXCELファイルを開こうとすると、
Windowsインストール画面が表示され、EXCELのインストール処理が始まり、
「必要なインストールファイルSKU033.CABが見つかりませんでした」の
メッセージが表示されます(ファイルは開けない)。
EXCELそのものを起動しようとして、EXCEL2003のショートカットを
クリックしても、同じ現象になります。
EXCEL2003はインストールされていて、以前は使えてました。
WORD2003は正常に立ち上がります。
原因と対策を教えて下さい。

よろしくお願いします。
379名無しさん@そうだ選挙にいこう:2009/07/10(金) 16:52:47
>378
excel2003 SKU033.CAB でぐぐったら、こういうのがありました、参考になれば。
答えてねっと 「突然エクセルが起動できなくなりました」
http://www.kotaete-net.net/Default.aspx?pgid=14&qid=1203072270664
380379:2009/07/10(金) 16:57:31
これも参考になるかと。
msn質問箱 xlsのファイルが開けない・・・。
http://questionbox.jp.msn.com/qa1103897.html

こちらの方も「先月くらいまでは問題なく使用できていた」と書いています。
(質問投稿日は04/11/28)
381368:2009/07/10(金) 17:52:14
沢山の回答ありがとうございました

自分もこの管理を始めたのが最近で、
信じられないかもしれませんが、つい最近まで
経理のおばちゃんがこれを鉛筆とノートで管理してたんです

Aという商品が売りにでて、\500とします

\500がまず定価(一応あります)に比べて安いか高いか、
前年の同時期とは? 過去の最安値はいくらで、その時
の日付はいつだったか?

少し前までは仕入れに合わせてこちらの売値を調整していた様ですが
最近は売れ残りも激しく、仕入れ値が売価に対して適性と判断した
382名無しさん@そうだ選挙にいこう:2009/07/10(金) 17:55:50
モノに関してのみ、適正な数量を仕入れ出来る様にしたいです
また、客先からも「いついつにこの値段で売ってくれたんだから、\○にして欲しい」という要求もあって、それが本当かどうか、またそのとき仕入価格に対して利益率いくらでやったの?

という事が管理、検索できる様なシステムを作りたいです
おぼちゃんはこれを毎日12時ぐらいまで手作業で残業代も無しでやってます

SHEET は1枚で管理してます
アクセスは全く使えないです

というかデータベース事作り直しても良いので、なにか良い方法があれば
ご教示願えないでしょうか?
383名無しさん@そうだ選挙にいこう:2009/07/10(金) 18:09:27
>>382
だから、>>374 >>375で立て続けに同じ内容の回答が来てるでしょ?
列は増やしちゃだめ。
ところでエクセルのバージョンは?商品は何種類?仕入先は何件?
VBAは使える?
384名無しさん@そうだ選挙にいこう:2009/07/10(金) 18:11:36
>>382
A列 仕入日
B列 商品名
C列 仕入先
D列 仕入価格
E列 販売先(必要なら)
F列 販売価格
G列 利益率
H列 摘要(トラブルや格安価格で購入できた等、例外的に起こったことを書く)


こうしておけば全て管理できる
並び方は好みによると思うけど、この辺りが一般的じゃないかな
こうしておけばオートフィルタで抽出すればほしいデータがすぐに入るし、
ピボットテーブルに入れれば色々な形で利用可能。

後後学のために
http://ja.wikipedia.org/wiki/%E3%83%AA%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E6%AD%A3%E8%A6%8F%E5%8C%96
流し読みでいいから一度は読んでおくことをお勧めする。あんまり分からなくても大丈夫
385375:2009/07/10(金) 18:17:09
>368 >381 >382

>374さんや自分が書いたように商品名〜仕入日まで固定で1行がベストです。あとは>384さんが付加した
項目は必要に応じてということで。

行数は増えます。全部で商品名が50種類あって、毎週全種類の商品を2回ずつ仕入れると毎週100行ずつ
増えます。
しかし、商品名で絞れば(フィルタ機能)、日付毎の仕入価格、販売価格は一覧できるし、さらに
仕入価格での並べ替え(ソート機能)も組み合わせればやりたいことはできると思います。

データを入力する際、商品名、仕入れ先をその都度(毎日のように?)入れるのは大変かもしれませんが、
「データの入力規則」機能でリストを指定しておけば、▼をクリックして選ぶだけ、ということも可能です。
入力間違いもありません。

アクセスを使わなくても、「おばちゃんが一人で」管理している程度ならエクセルで十分と思いますよ。
386名無しさん@そうだ選挙にいこう:2009/07/10(金) 18:25:09
>>381

>>375
のエクセルのバージョン答えてないよね?
シート名はどうでもいいけどバージョンは分からないと困ることがある


仕入販売の記録と商品別のデータは分けて管理するといいと思うんだが
例えば

仕入
仕入日、商品名、仕入先、仕入価格、数量

販売
販売日、商品名、販売先、販売価格、数量

商品
商品名、定価、(その他商品の情報)

といった感じに分ける
仕入販売の記録は月別や年別にシートを分ける

それと販売日とか在庫の管理をしてないけど
生ものだから「仕入日=販売日」なのかな?
387名無しさん@そうだ選挙にいこう:2009/07/10(金) 18:29:05
商品マスタを別につくるのはいいとしても、月別、年別にシートを分けるのはお勧めしない
単に集計がめんどうになるだけ
388名無しさん@そうだ選挙にいこう:2009/07/10(金) 18:35:16
実は1日1万件のデータを処理できる、ものすごいおばちゃんだったりして

とりあえず、月に何件ぐらいのペースで仕入れデータが増えるかによって
Excelでも十分かAccessが必要かがかわってくるから
389名無しさん@そうだ選挙にいこう:2009/07/10(金) 18:36:24
どっちにしても、そのおばちゃんがやめたら会社終了じゃん
すげーな
390386:2009/07/10(金) 18:40:43
>>387
年別に分けたほうがいいと思ったのは10年くらいで1シート埋まってしまうからだ
そこまで使い込むことを考えないなら別にいらない
391名無しさん@そうだ選挙にいこう:2009/07/10(金) 18:45:55
>>368
もし色んな方と仕事の進め方を手分けして取り決め出来るのでしたらエクセルよりも
アクセスとかのデータベースでの管理をやった方がいいような気がするんですが。
392名無しさん@そうだ選挙にいこう:2009/07/10(金) 18:49:51
質問させて頂きます。あるアプリが、データをCSVに出す機能があります。
Excel2007が自動で起動しますが、年月を示すデータ(「09/07」の形式)が、
「9月7日」と表示されてしまいます。これを「2009/07」と表示させる為には
どうすれば良いですか?入力時の問題ではありません。
393名無しさん@そうだ選挙にいこう:2009/07/10(金) 18:55:12
>>392
セルの書式設定での話でしたらユーザー定義でyyyy/mmと入力すれば解決すると思うよ。
394378:2009/07/10(金) 19:02:19
>>379,380
レスありがとうございます。

結局、EXCELをアンインストール、インストールすれば良い
という事でしょうか?
395名無しさん@そうだ選挙にいこう:2009/07/10(金) 19:11:17
>392
Excelを自動起動させずに、手動起動させてから読み込んでも自動的に日付と見なしてしまうので、
読み込んでから作業列を使って当該項目を変換するしかないと思う。

例えば、A列が問題の項目の列、X列を作業列にすると仮定して
A2のセル(2009/9/7となっている)を変換対象とするX2セルの計算式は
=DATE(2000+MONTH(A2),DAY(A2),1)
となります。これにより、X2セルの内容は 2009/7/1 となります。
X2セルを下にフィルコピーしてからX2:X最終データ行 をA2:A最終データ行まで
「値だけコピペ」した後、セルの書式設定で yyyy/mm にしたらどうですか?
396393:2009/07/10(金) 19:12:39
間違えた
mm/dd
です。
397393:2009/07/10(金) 19:15:03
ごめん
yyyy/mm

でよかったか。orz
398379:2009/07/10(金) 19:19:16
>394
OfficeのCD−ROMはありますよね?
まずはネットに紹介されてたように、「インストールしてるけどSKU033.CABがないよ」っていう
画面で、OfficeのCDをセットしてみたらどうですか? たぶん画面のどこかにインストール元
を指定するボタンとか[参照]ボタンとかあるはず。

どうしてもわからなければアンインストール・インストールってことになると思うけど、それは
最終手段だし、プロダクトキーが必要になるかもしれないので事前に確認しましょう。
399名無しさん@そうだ選挙にいこう:2009/07/10(金) 20:29:18
>>361
ほ、誉めたって何もないんだからね!
400名無しさん@そうだ選挙にいこう:2009/07/10(金) 20:29:29
もしかしてC:\msocacheを消してない?
これ消すとOfficeが起動できなくなったり再インストールの画面が出たりアイコンが化けたりするから注意な。
401名無しさん@そうだ選挙にいこう:2009/07/10(金) 20:56:35
A1に7月と入力し、B1に=Left(A1,1)と入れたとき、7は数字なの?文字なの?
402名無しさん@そうだ選挙にいこう:2009/07/10(金) 21:03:53
文字やろ
403名無しさん@そうだ選挙にいこう:2009/07/10(金) 21:10:39
数字だよ
404394:2009/07/10(金) 21:11:14
>>398
レスありがとうございます。
そもそも、インストールのプロセスに入る事自体がおかしいので
アンインストール、インストールしたいと思います。
405名無しさん@そうだ選挙にいこう:2009/07/10(金) 21:12:50
Dim A1 As String. B1 As String
A1 = "7月"
B1 = Left(A1, 1)

Dim A1 As String. B1 As Integer
A1 = "7月"
B1 = Left(A1, 1)
406名無しさん@そうだ選挙にいこう:2009/07/10(金) 21:19:03
>401
left関数は文字列関数なので結果は文字ですね。
たとえばA1セルに数字を入れて、B1セルに =A1&"" としただけでも文字になる。
407名無しさん@そうだ選挙にいこう:2009/07/10(金) 21:19:36
>>401
数字の文字列
数値ではない
408名無しさん@そうだ選挙にいこう:2009/07/10(金) 21:50:22
>>402>>403も両方正しいよ
409ぼるじょあ ◆yBEncckFOU :2009/07/10(金) 22:03:57
(・3・) エェー!
410名無しさん@そうだ選挙にいこう:2009/07/10(金) 22:05:03
>>399
残念だね。シート2にあってシート1にないものは>>360じゃ無理じゃね?
二次元配列にするとか工夫すれば出来ないことはないけどな。

ピボットで複数の範囲で集計して、どっかにコピーしてからシート1のデータが空白になてるものを
オートフィルターが簡単。
411名無しさん@そうだ選挙にいこう:2009/07/10(金) 22:06:15
>>392です。
>>397
通常有効ですが、データが既に変わってしまってます。
>>395
法則修正でやはり手作業入りますか。でもよい方法ですね。
皆様レス有難うございます。
412名無しさん@そうだ選挙にいこう:2009/07/10(金) 22:08:23
401の例で、B1は文字の7のハズ。でもC1に=B1+1にすると、8になる。
これってエクセルのバグ?
413名無しさん@そうだ選挙にいこう:2009/07/10(金) 22:12:25
>412
B2に '7 と入れて、C2セルに =B2+1 って入れても 8 になりますよ。
バグというよりも親切機能では?
414名無しさん@そうだ選挙にいこう:2009/07/10(金) 22:24:57
非明示的な型変換 親切機能だ
415ぼるじょあ ◆yBEncckFOU :2009/07/10(金) 23:40:01
(・3・) エェー!
416名無しさん@そうだ選挙にいこう:2009/07/10(金) 23:43:01
>368のとこの「経理のおばちゃん」まだ仕事してるかな?
417名無しさん@そうだ選挙にいこう:2009/07/10(金) 23:44:56
>>415
ごめん、ボルジョアの名前を落とすだけなら発言しないでください
俺も元ボルジョアなんです。ちょっと悲しいです
本当に、お願いします
418名無しさん@そうだ選挙にいこう:2009/07/10(金) 23:47:51
>>414
親切じゃない
VBAは「そういう機能」なんだ
419名無しさん@そうだ選挙にいこう:2009/07/10(金) 23:52:12
   ∧_∧  / ̄ ̄ ̄ ̄ ̄
  ( ´∀`)< Perlモナー
  (    )  \_____
  | | |
  (__)_)
420名無しさん@そうだ選挙にいこう:2009/07/11(土) 00:47:06
>410
>シート2にあってシート1にないものは

質問からは読み取れないけど、想定しとくべきだな
これで動く?

dim i as long
dim i2 as long
dim n as long
dim n2 as long
dim Hai() as string

n = sheets("シート1").Cells(Rows.Count,1).End(xlUp).row
n2 = sheets("シート2").Cells(Rows.Count,1).End(xlUp).row
redim Hai(n + n2 ,1) as string

' シート1のデータを取得しつつ、行番号を登録
for i = 0 to n - 1
Hai(i,0) = sheets("シート1").cells(i,1)
Hai(i,0) =i + 1
next

for i = n + n2 - 1
Hai(i,0) = sheets("シート2").cells(i,1)
Hai(i,0) =i + 1
next

' Hai = 領域 のほうが多分早いけど
421名無しさん@そうだ選挙にいこう:2009/07/11(土) 00:49:35
Hai(i,0) =i + 1
これ↓ね
Hai(i,1) =i + 1

' 続き

ソート

データが終わるまでループ
i = 1
i2 = 1
データi2=i2 + 1を満たす間ループ
i=i + 1
ループ
i=1で、かつHai(i,1)<=nなら番号を取得
ループ
422223:2009/07/11(土) 13:01:53
おまいが書いたのを試してやるから、「ループ」なんて書かずに
マクロを書いてくださいです、、
423名無しさん@そうだ選挙にいこう:2009/07/11(土) 15:01:12
表の選択範囲を一行追加するプログラムを始めて作ったのですが美味くいきません、、、

実行時エラー '9'
インデックスが有効範囲にありません。

と出ます。

誰かタシケテ。。。

Sub 一行追加()

Worksheets("sheet2").Names _
.Add Name:="資産推移表", RefersTo:="sheet2!a1:h53"

Worksheets("sheet2").Range("資産推移").Select

With Selection

.Offset(1, 0) _
.Resize(.Rows.Count + 1, .Columns.Count) _
.Select

End With

End Sub
424名無しさん@そうだ選挙にいこう:2009/07/11(土) 15:11:38
>>423
電話からのレスだから宛にならんけど
・名前は「資産推移表」?「資産推移」?
・最初のOffsetは不要
・リサイズした範囲を改行せずSelect
あたりかな?
425名無しさん@そうだ選挙にいこう:2009/07/11(土) 15:12:39
Range("資産推移")w
426名無しさん@そうだ選挙にいこう:2009/07/11(土) 15:14:33
>>423
何行目ででる?
sheet2というシートがない、なんてことはないよね
427424:2009/07/11(土) 15:14:41
あっよくみたら改行してるだけで続いてるのか
これだから電話は・・・・
428名無しさん@そうだ選挙にいこう:2009/07/11(土) 15:15:03
767 名前:ひよこ名無しさん[] 投稿日:2009/07/11(土) 15:11:49 ID:QpFAayZv
表の選択範囲を一行追加するプログラムを始めて作ったのですが美味くいきません、、、

実行時エラー '9'
インデックスが有効範囲にありません。

と出ます。

Sheet2が資産推移というシート名だった場合なんて設定すればこのエラーでないのでしょうか教えてください。。。

誰かタシケテ。。。

Sub 一行追加()

Worksheets("sheet2").Names _
.Add Name:="資産推移表", RefersTo:="sheet2!a1:h53"

Worksheets("sheet2").Range("資産推移").Select

With Selection

.Offset(1, 0) _
.Resize(.Rows.Count + 1, .Columns.Count) _
.Select

End With

End Sub

771 名前:ひよこ名無しさん[] 投稿日:2009/07/11(土) 15:14:19 ID:QpFAayZv
おい、回答まだか。
429名無しさん@そうだ選挙にいこう:2009/07/11(土) 15:15:20
>>428
GJ
430名無しさん@そうだ選挙にいこう:2009/07/11(土) 15:19:01
>>426
とりあえず、1行目で出ます。

VBAのプロジェクトウィンドウを見ると、
Sheet2 (資産推移)というシートがあるのですが、この場合
Sheet2ではこのシートを選択したことにはならないのでしょうか?
431名無しさん@そうだ選挙にいこう:2009/07/11(土) 15:24:55
>>430
Worksheets(2).
Worksheets("資産推移").
のどちらかを使う。2にダブルコーテーションはつけちゃダメよ

Worksheets("sheet2").
はsheet2という名前のシートが無いと使えない
432名無しさん@そうだ選挙にいこう:2009/07/11(土) 15:34:13
マルチか、氏ね
433名無しさん@そうだ選挙にいこう:2009/07/11(土) 15:41:48
レスありがとうございます。皆々様の暖かいアドバイスのお陰で大分改善できたのですが、
また、重大なエラーが出てしまい難儀して、ここにやってまいりました。

2行目で

実行時エラー 1004
アプリケーション定義またはオブジェクト定義エラーです
というのが出ます。


Sub 一行追加()

Worksheets(2).Names _
.Add Name:="資産推移表", RefersTo:="2!a1:h53"

Worksheets(2).Range("資産推移表").Select

With Selection

.Offset(1, 0) _
.Resize(.Rows.Count + 1, .Columns.Count) _
.Select

End With

End Sub

どうしたらいいでしょうか、、、
434名無しさん@そうだ選挙にいこう:2009/07/11(土) 16:05:03
まるちぷる

たいたんぱーっ!
435名無しさん@そうだ選挙にいこう:2009/07/11(土) 17:35:47
>>169
即レスthx!
ヒントだけでも教えて下さい。
436名無しさん@そうだ選挙にいこう:2009/07/11(土) 18:29:29
>>433
マルチはもう来なくていいよ
437名無しさん@そうだ選挙にいこう:2009/07/11(土) 18:30:16
>>435
チェンジイベント
438名無しさん@そうだ選挙にいこう:2009/07/11(土) 18:31:18
マルチ指摘するなら元のURL貼れよ馬鹿
質問だけあって終了じゃここの住民からすると気持ち悪いだろ
439名無しさん@そうだ選挙にいこう:2009/07/11(土) 18:33:21
うるせーチンカス
そんな義理ねーわ
440名無しさん@そうだ選挙にいこう:2009/07/11(土) 18:39:10
>>428
パソコン初心者総合質問スレッド Part1898
ttp://pc11.2ch.net/test/read.cgi/pcqa/1246723874/767
>>438
自分で探せハゲ
名無しとレス番見れば1分で見つけれるだろ
441433:2009/07/11(土) 18:43:11

                 ┌─┐
                 |も.|
                 |う |
                 │来│
                 │ね│
                 │え .|
                 │よ .|
      バカ    ゴルァ  │ !!.│
                 └─┤    プンプン
    ヽ(`Д´)ノ ヽ(`Д´)ノ  (`Д´)ノ    ( `Д)
    | ̄ ̄ ̄|─| ̄ ̄ ̄|─| ̄ ̄ ̄|─□( ヽ┐U
〜 〜  ̄◎ ̄  . ̄◎ ̄   ̄◎ ̄   ◎−>┘◎
442名無しさん@そうだ選挙にいこう:2009/07/11(土) 18:44:03
俺が勝手に向こうに貼りましたが、何か?
443名無しさん@そうだ選挙にいこう:2009/07/11(土) 18:46:42
2chでは投稿者の同一性なんて確認しようが無いから
この手で荒らそうと思えばいくらでも荒らせるな
444名無しさん@そうだ選挙にいこう:2009/07/11(土) 19:15:47
確かに向こうのほうが時間遅いっちゃそうだな
445名無しさん@そうだ選挙にいこう:2009/07/13(月) 10:57:58
446名無しさん@そうだ選挙にいこう:2009/07/13(月) 12:23:46
Excel2007の新機能の重複の削除のバグ治ったの?
昨日VistaのSP2をインストールしたら重複しないものまで削除するバグがでなくなってるが。

下のような重複しないデータでも以前は削除されるものがあった。
a1
a2
a3
a4
a5
.
.
.
.
a99999
a100000
447名無しさん@そうだ選挙にいこう:2009/07/13(月) 12:37:08
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 Alt+D データ フィルター

Altキー使いの者なんですが、どういうわけかいつのまにか
Alt+Dが効かなくなり、フィルタの解除などする際に困っています。
以前のようなつもりで Alt+D > F > S とやると、
Alt+F>S(=上書き保存) となり、慌てることがしばしば。

Alt+Dのあとで一旦「↓」を押せば「データ(D)」のリストに入れますが
その一手間が非常にうざいです。
以前はちゃんと使えてたと思うんですが。
448447:2009/07/13(月) 12:39:15
すみません、1箇所訂正です。

【1 OSの種類         .】 WindowsXP SP3
449名無しさん@そうだ選挙にいこう:2009/07/13(月) 13:38:01
>447
最初の Alt+D ってひょっとして [alt]キーを押しながら[D]を押す ってしてませんか?
正しくは、[alt]キー、[D]キー と順番に押すものですよ。
※[Ctrl]キーの場合は [Ctrl]を押しながら です。

[alt]キーを押した時点で、メニューバーの ファイル(F) の部分が選択(ただしプルダウンではない)
ついで[D]を押せば データ(D) のプルダウンメニューが現れ ・・・・というようになるはず。

自分の環境も同じですが、[alt]、[D]、[F]、[S]と順番に押して正常に操作できています。
450名無しさん@そうだ選挙にいこう:2009/07/13(月) 13:45:52
>447

他のアプリのショートカットと重複とか?

>449

同時に押しても同じでしょ?
451名無しさん@そうだ選挙にいこう:2009/07/13(月) 14:02:07
>>449-450
レス、ありがとうございます。

>449
ためしにAltだけ押してやってみましたが結果は同じでした。
いつもAlt+○は同時に押していますが、ちゃんと作動するようです(この件以外は)。

>450
他のソフトを全て終了させてやってみましたが結果は同じでした。


メニューバーのうち、「データ(D)」だけがこの反応で
(一応、反転まではするのですが、プルダウンリスト出ず)、
ほかの機能ではプルダウンリストまで普通に表示されます。


452名無しさん@そうだ選挙にいこう:2009/07/13(月) 14:06:19
メニューの中に(&D)がもう一個どこかにあるんでしょ
453名無しさん@そうだ選挙にいこう:2009/07/13(月) 14:23:17
>>452
わかりました!
ツールバーの条件付書式がDでした。
カスタマイズするときは要注意ですね。

助かりました。ありがとうございます!

454名無しさん@そうだ選挙にいこう:2009/07/13(月) 22:18:20
>>453

        ∧∧
       ヽ(・ω・)/   ズコー
      \(.\ ノ
    、ハ,,、  ̄
455名無しさん@そうだ選挙にいこう:2009/07/13(月) 22:47:31
Excel2000ですが、コメントの書式を変えられますか?
ググったら、Windowsの設定を買えないとダメぽみたいですが、
裏ワザ的なことを知ってたら教えてくりん。
456名無しさん@そうだ選挙にいこう:2009/07/13(月) 22:48:18
x 買えないと
o 変えないと
457名無しさん@そうだ選挙にいこう:2009/07/13(月) 23:23:59
>455
フォント、サイズ、書体(太字、イタリック、下線)、文字の色、コメント欄の色
は変更できるはず。(自分は2003なので2000とは違うかも)
458名無しさん@そうだ選挙にいこう:2009/07/13(月) 23:40:35
>>457
どうやんの?
(Windowsの設定以外で)
459名無しさん@そうだ選挙にいこう:2009/07/13(月) 23:41:25
あ、コメントの書式を変えるというか、デフォルトに設定したいのねん。
460457:2009/07/14(火) 08:47:25
>455
自分もデフォルトの書式の変更方法は知らない。
461名無しさん@そうだ選挙にいこう:2009/07/14(火) 10:01:31
行挿入で書式や入力規則はコピーされますが、数式がコピーされません。
そこで1列目の値入力時点(Changeイベント)で数式をコピーするマクロを作成
したのですが、今度はUndo(元に戻す)が出来なくなる事に気付いた。

Undoを生かす為には、数式のコピーを関数等(マクロ以外)で実現すれば良い
と思うのですが、何か方法がありますでしょうか?
462名無しさん@そうだ選挙にいこう:2009/07/14(火) 10:32:06
>>461
質問の意味がよくわかんない。
「挿入」メニューの「行」だと、挿入されるのは空白だし、
「コピーしたセルの挿入」「切り取ったセルの挿入」だと、
数式もちゃんと挿入される。

何をどうやって挿入したいの?
463名無しさん@そうだ選挙にいこう:2009/07/14(火) 10:50:46
>>459
試してはいないが、こんなのがあるようだ。
ttp://www.vector.co.jp/soft/win95/business/se329574.html
464461:2009/07/14(火) 11:21:10
>>462
説明不足でした、オートフィルタを使うデータシートなので、
行を追加/挿入するのに、挿入コマンド1回の操作で数式も含めて
コピーする方法が無いかなぁと考えた次第です。
465名無しさん@そうだ選挙にいこう:2009/07/14(火) 11:56:37
>>464
途中に挿入じゃなくて最下行に追加してくという形なら
Excelの親切機能が働いて勝手に数式コピーしてくれるんだけどな。
>>170からの流れも参考に)
466461:2009/07/14(火) 13:58:48
>>465
ありがとうございます。

最下行への追加で書式と数式のコピーを確認できました。
最下行選択で挿入とやれば入力規則もコピー出来ます。

# 数行のデータでテストしていたからダメだったのですね...
467466:2009/07/14(火) 15:54:11
最下行への追加時のコピーですが、
=ROW()やMACH関数等の数式はコピーしてくれな様です。

何かやり方間違っているのかな?
468名無しさん@そうだ選挙にいこう:2009/07/14(火) 15:56:13
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 入力規則 元データ更新を反映

Excel2007で入力規則でリストを使用しています。
もともと「りんご」をリストで選択していたとして
リストの元データの「りんご」を「めろん」に更新したら
リストで「りんご」を選択していた部分を「めろん」に自動的に更新できないのでしょうか?

やはり手動で「りんご」を「めろん」に置換する方法しかないのでしょうか?
どうかご教示をお願いいたします。
469名無しさん@そうだ選挙にいこう:2009/07/14(火) 16:18:03
入力規則のリストで、元データとリンクしているのは
あくまでもリスト([▼]押して出てくる奴)であって
入力規則を設定したセルの値ではないから
VBA使わない限り自動更新はできない
470名無しさん@そうだ選挙にいこう:2009/07/14(火) 16:28:54
ありがとうございました。
471名無しさん@そうだ選挙にいこう:2009/07/14(火) 18:20:19
CTRL+Hで置換すればいっぱつだけどね
472名無しさん@そうだ選挙にいこう:2009/07/14(火) 18:41:47
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 オートフィルタ 単位 印刷

Selection.AutoFilter Field:=1, Criteria1:="1000000"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Selection.AutoFilter Field:=1, Criteria1:="1011010"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Selection.AutoFilter Field:=1, Criteria1:="2010203"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Selection.AutoFilter Field:=1, Criteria1:="4100502"
・・・以降延々と続く

自分がいつも行っている作業のマクロを記録してみたら
上記のようになりました。
A列(コードが入力されている)でフィルタをかけ、
フィルタの結果単位で全てを印刷をしています。
Criteria1:=" "というのが抽出条件となる文字列だとわかったのですが
実際にはA列に「1000000」〜「9999999」の文字がランダムにあり、
途方にくれています。
どのように抽出条件を設定すればよろしいでしょうか、
ご教示よろしくお願い致します。
なお、コードは必ず7桁で、取り合えず印刷さえできれば良いです。
(改ページなど細かい印刷設定は不要)
473名無しさん@そうだ選挙にいこう:2009/07/14(火) 18:50:27
関係ないんだけど・・・
Excel VBA質問スレ Part11
http://pc12.2ch.net/test/read.cgi/tech/1241885130/
の次スレは誰も立てないのか?
474名無しさん@そうだ選挙にいこう:2009/07/14(火) 18:53:27
多分>>473が立てる
475名無しさん@そうだ選挙にいこう:2009/07/14(火) 19:00:28
>>472 改ページが不要なら、A列でコード順に並びかえて印刷すればいいんじゃないの
476名無しさん@そうだ選挙にいこう:2009/07/14(火) 19:21:43
>472

>475さんに補足。
1 A列のコード毎にページ替えが必要と思われるので、この機能が必要ならばVBAコードを
  考えますよ。(下記2〜4のことも考慮して)
2 並べ替えと印刷を行った後にデータの並びを元に戻すための列が必要。
3 並べ替え(ソート)キーがA列だけだと、ひょっとするとオートフィルタを使ったときと
  コードが同じ場合に並びが変わるかもしれないので、上記2で設ける列をソートキーに
  加えることで並びが変わるおそれはなくなる。
4 印刷後のデータを元の並びに戻すのとあわせて、改ページの解除も忘れずに。

477472:2009/07/14(火) 19:59:12
>>475さん
コード単位で印刷する必要があり、その為にフィルタを使って印刷していました。
改ページ設定が不要というのは1コード内で設定が不要という意味です、
すみません。

>>476さん
ありがとうございます。
考えて頂けると助かります。(毎日100コード位印刷することになりそうなので・・・)
補足させてもらうと、コード自体はランダムですが、既に1コードごとにまとまっています。
(例:A2〜A100が「1000000」、A101〜A150が「2010101」・・・)
なので、フィルタ単位で印刷というより、A列のコードが変わる度に
改ページ設定をするVBAコードを考えて頂いた方が良い気がしてきました。

もちろん、476さんが提案して下さったものでも構いません。
よろしくお願いします。

478名無しさん@そうだ選挙にいこう:2009/07/14(火) 20:06:16
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】いいえ
【4 VBAでの回答の可否】 否

こんばんわ、質問です。
今顧客番号で重複があるかどうかを調べるにはどうしたらよいでしょうか?

B列の番号を使い、A列に重複するものは省いてB列のみ存在する番号を探したいです。

よろしくおねがいします。excel初心者ですすいません
479名無しさん@そうだ選挙にいこう:2009/07/14(火) 20:14:59
VLOOKUPでフラグたてる
480名無しさん@そうだ選挙にいこう:2009/07/14(火) 20:15:41
これこそVBAでやるべき
481名無しさん@そうだ選挙にいこう:2009/07/14(火) 20:27:45
>>478
C1=MATCH(B1,A:A,0)
C2以降下までオートフィル
んでC列でオートフィルタかけて#N/Aだけ抽出すればBのみの数字を絞り込める
482476:2009/07/14(火) 20:40:55
>472,477
印刷対象のブックは毎回、新たに発生するんですか?
自動化したい処理というのは「A列のコードが変化するたびに改ページ指定を行う」
ただそれだけ? 印刷後の改ページのクリアもいらない?
それでいいのであれば、このマクロを専用のブック("プログラムブック.xls")に入れておいて、
処理対象のブックとプログラムブックを同時に開き、処理対象ブックをアクティブにした状態で
マクロを実行する、という手順でいけそうですね。しばらく待ってもらえますか。
483名無しさん@そうだ選挙にいこう:2009/07/14(火) 20:42:12
>>481
おぉ・・・できたかんじです。
データが会社にしかないので実際見てみないとわからないですが
明日やってみます。両方4000件くらいあるのですが、#N/Aだけをどっかの列に
抜き出しとかはできますか?
484472:2009/07/14(火) 21:08:01
>482
印刷対象のブックは毎回新たに発生します。
印刷後、ブックは破棄してしまうので(完全に印刷用)改ページのクリアもいりません。
実は実際にマクロを実行したことがないので、
後半の記述がちょっと理解できませんでしたが
作って頂けましたら自分で調べて実行したいと思います。
485名無しさん@そうだ選挙にいこう:2009/07/14(火) 21:22:03
>>478
>>223で盛り上がったがgdgdになった。
A列とB列のデータ量で回答もかわる。
ほんの少しならCOUNTIFやMATCHの0検索で十分だ。
486476,482:2009/07/14(火) 21:22:14
>472,484
「後半の記述」について説明します。
一般に、VBAマクロは処理対象のブックに書き込んで動かしますが、処理対象ブック(データ)と
VBAマクロを記録しているブックは別々でもできます。

このスレに書き込まれたマクロを実際にExcelに記録して動かすまでの手順の説明は長くなりそう
なので、できれば職場で詳しい人に聞いてもらうとありがたいです。もしくは、そこらへんの手順を
画面入りで解説したサイトをご存じの方、よろしく。
487名無しさん@そうだ選挙にいこう:2009/07/14(火) 21:34:35
>>483
抜き出し、がよくわからない。消すってことでいいのかな
C列全体選択してコピー、値で保存
置換で#N/Aを空白に置き換えればいいかもしれない
後者だけでもいけるかもしれない
488名無しさん@そうだ選挙にいこう:2009/07/14(火) 21:36:50
>>483読んでなかった。
4000件ならMATCHの0検索で十分だな。
抜き出しも>>481が書いてるじゃん。
まさか関数でやろうってんじゃないだろうな?
489名無しさん@そうだ選挙にいこう:2009/07/14(火) 22:46:00
>>488
すいませんでした。
件数が大量にあったので#N/AとBだけにある数字をどこかに並べられたらな
と思ったのですが。

オートフィルタの使い方がちょっとわからなかったので
何打これで上の質問をしてしまいましたごめんなさい
490名無しさん@そうだ選挙にいこう:2009/07/14(火) 23:22:51
>>463
試したけど、新規ブックでは使えたのに、既存のブックだと
なぜかエラー続出で使えませんですた。
新規ブックでも、使い勝手はイマイチ・・・
491名無しさん@そうだ選挙にいこう:2009/07/14(火) 23:38:30
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000、2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否

シートが20〜30枚くらいあるファイルで、各シートの同じ位置の数値の合計を求めるとき、
VBAを使わずに簡単に集計するにはどうすればいいですか?

集計するシートを仮にSheet0にし、A1セルに=Sheet1!F100、A2セルに=Sheet2!F100と書き、
オートフィルしても連続しなかったので、他に方法があれば教えてください。
492名無しさん@そうだ選挙にいこう:2009/07/14(火) 23:41:14
・シートをグループ化してSUM
・串刺し演算
・統合
493491:2009/07/15(水) 00:03:33
>>492
お、できた!
ありがとうございます。
エクセルを使って5年くらい経ちましたが、串刺し演算なんて初めて知りましたw
494名無しさん@そうだ選挙にいこう:2009/07/15(水) 04:52:04
>>493
串刺し演算とセルの結合は覚えないほうがよい機能です。
495名無しさん@そうだ選挙にいこう:2009/07/15(水) 07:32:02
10年使ってるが初めて聞いたw
串刺しってなんだ?
496名無しさん@そうだ選挙にいこう:2009/07/15(水) 07:38:31
△串刺し演算とセルの結合は覚えないほうがよい機能です。
○串刺し演算とセルの結合は半端に覚えないほうがよい機能です。
◎串刺し演算とセルの結合はきちんと覚えたほうがよい機能です。

これらは半端に覚えると、余計な問題の種になる。
正しく使いこなせてれば大丈夫だけどね。
497名無しさん@そうだ選挙にいこう:2009/07/15(水) 07:48:34
でもDQNは結合セルをよく使うよなぁ。
結合セルの問題を自分で解決出来ないやつは使うべきではないと思うな。
質問しても嫌がられるだけだ。
498名無しさん@そうだ選挙にいこう:2009/07/15(水) 08:07:35
同様にsumifとcountifも使うべきではない。
問題を自分で解決できないやつが多いからな。
499名無しさん@そうだ選挙にいこう:2009/07/15(水) 08:17:31
出たなピボット厨w
どっちかつーとお前の意見には賛成だけどな。
500名無しさん@そうだ選挙にいこう:2009/07/15(水) 08:17:32
>>497
職場で、コピペできないんだけどとか質問してくるやつは結合してるに決まっているから、最初から相手にしないようにしている。
画面を見るまでもない。
501名無しさん@そうだ選挙にいこう:2009/07/15(水) 08:25:48
>>498
式が1個なら使ってもいいんだよ。
複数になると無駄だけどな。
それからお前ピボットとVLOOKUPさえ覚えればいいとかいうDQNじゃねーだろな?
502名無しさん@そうだ選挙にいこう:2009/07/15(水) 08:26:09
> 結合セルの問題を自分で解決出来ないやつ
ってのが半端にしか使えない奴ってことだろ
結合のメリットデメリットや特性を理解していれば
問題は解決できるはずだから
503名無しさん@そうだ選挙にいこう:2009/07/15(水) 08:30:15
コピペできないのは結合のせいなんで結合をやめろというと、できない理由を説明し始めるが意味不明なんで聞かないことにしている。
最後はなぜか逆恨みまでされて、もういいよなんて捨て台詞はかれて。
最初から相手にしないに限るな。
504名無しさん@そうだ選挙にいこう:2009/07/15(水) 08:33:15
>>501
ピボットとVLOOKUPだけでなんでもできるよ。
君はExcelで何がやりたいの?
そのために必要な機能は何?
505名無しさん@そうだ選挙にいこう:2009/07/15(水) 08:35:43
>>501
複数だと無駄になるとか意味がわからない。
問題が解決できれば無駄ではない。
506名無しさん@そうだ選挙にいこう:2009/07/15(水) 08:44:40
>>505
たとえばA列に沢山の品目があって各品目のB列の合計を出すのに重複しない品目を求めてSUMIFなんて無駄だってわかる?
分らなければ見込みがないなぁ。
507名無しさん@そうだ選挙にいこう:2009/07/15(水) 09:00:26
>498

ついでにSUMPRODUCTも混ぜておいてくれ。
後のことも考えて作業列使っとけ。
508名無しさん@そうだ選挙にいこう:2009/07/15(水) 09:03:10
>>504
「VBAで」なら解るが、ピボットとVLOOKUPじゃたいしたことは出来ない
クロス集計とリスト検索くらいしかやらないならピボットとVLOOKUPだけでいいかもしれないが
Excelはクロス集計ソフトではなく、汎用的な表ソフトであり計算ソフトであるわけだからな
つーかクロス集計しかやらないなら、もちっと柔軟でマシなソフト使うわw
509名無しさん@そうだ選挙にいこう:2009/07/15(水) 09:11:49
>>507
SUMPRODUCT好きには6ナノはいないと思うが、ピボットなら作業列は要らないこと多いじゃん。
なんせ数式なんて使わないんだから。
510名無しさん@そうだ選挙にいこう:2009/07/15(水) 09:14:44
おバカな俺にピボットテーブルとVLOOKUPの便利な使い方教えてくれない?
VLOOKUPをどういうとき使うか思いつかん。
511名無しさん@そうだ選挙にいこう:2009/07/15(水) 09:24:02
SUMPRODUCTも式が1個なら全然問題ない。
フィルコピーする奴はバカだけどな。
配列数式も同じ。
512名無しさん@そうだ選挙にいこう:2009/07/15(水) 09:45:40
>>510
ttp://allabout.co.jp/computer/msexcel/closeup/CU20060805A/
ttp://www.officepro.jp/exceltips/pivot/
ぐぐればいっぱい出てくるよ

match+indexとどう違うの?って質問が来る前に先に答えておく
結果は同じだが少し軽い。内容が初心者には分かりにくい。
違いが分からなければvlookupつかっておけば問題ない
513名無しさん@そうだ選挙にいこう:2009/07/15(水) 10:15:48
>>512

違いが分からなければウイザード使っておけと思う。
今から覚えるなら柔軟なmatch+index使っておけと思う。

lookup?イラネ(゚听)
514名無しさん@そうだ選挙にいこう:2009/07/15(水) 10:23:16
VLOOKUPよりMATCH+INDEXのが指定できるセル範囲が広い
この違いは大きい
515510:2009/07/15(水) 10:40:36
トンクス。
なんだ俺の勘違いか。ピボットテーブルとVLOOKUPを組み合わせるのかと思ったよ。
516名無しさん@そうだ選挙にいこう:2009/07/15(水) 11:24:13
機械語覚えとけばパソコンのソフト上の問題は全部完結するから機械語覚えとけばいいよ
517名無しさん@そうだ選挙にいこう:2009/07/15(水) 11:25:56
>>513
VLOOKUPイラネなら分るが、LOOKUPは使い道は結構あるよ。
たとえば>>478だが、A列のA2:A10000が昇順にソートされてて、B列のデータがA列にあるかないかを判定するにはINDEXとMATCH使うよりLOOKUPがずっと簡単だよ。
下なら軽さはどれもほとんど同じだが、どれが簡単か一目瞭然だ。
=IF(B2<A$2,"無し",IF(B2<>LOOKUP(B2,A$2:A$10000),"無し","有り"))
=IF(B2<A$2,"無し",IF(B2<>VLOOKUP(B2,A$2:A$10000,1,TRUE),"無し","有り"))
=IF(B2<A$2,"無し",IF(B2<>INDEX(A$2:A$10000,MATCH(B2,A$2:A$1000,1)),"無し","有り"))

ちなみに使えない駄目な式
=IF(ISNA(MATCH(B2,A$2:A$10000,0),"無し","有り")
=IF(COUNTIF(A$2:A$10000,B2),"有り","無し")
518名無しさん@そうだ選挙にいこう:2009/07/15(水) 11:40:51
>>517
でた。知識自慢のヲタw
519名無しさん@そうだ選挙にいこう:2009/07/15(水) 11:43:28
>>518
>>517程度は常識だから自慢にはならん・。
俺でも知ってるレベルだ。
520名無しさん@そうだ選挙にいこう:2009/07/15(水) 11:46:54
常識は取り消すかな?
知らないやつが爆発するといけないから。
521名無しさん@そうだ選挙にいこう:2009/07/15(水) 11:53:02
俺も517程度で自慢したいとは思ってねーよ。
アホかまったく。
522名無しさん@そうだ選挙にいこう:2009/07/15(水) 12:03:25
俺も常識レベルの話だとは思うが、わざわざ
LOOKUPに適した例を上げて「どうよ?」ってどうよ?
ご丁寧に駄目な式まで用意する点はヲタだと思うがw

あと、>512よりは>513の意見を支持する。
まぁ最後の1行は余分だけどな。
523名無しさん@そうだ選挙にいこう:2009/07/15(水) 12:07:53
>>522
つい近くで>>478の質問がでてるじゃねーかよ。
彼への回答でもあるんだよ。
524名無しさん@そうだ選挙にいこう:2009/07/15(水) 12:11:13
僻み根性のやつはホット計
525名無しさん@そうだ選挙にいこう:2009/07/15(水) 12:29:33
質問したいことがあったけど
昼間っから2ちゃんねるで遊んでるひきこもりに聞いても無駄なのでやめました
526名無しさん@そうだ選挙にいこう:2009/07/15(水) 12:34:13
俺仕事中のリーマンだよ
仕事無いよ
527名無しさん@そうだ選挙にいこう:2009/07/15(水) 12:35:19
とひきこもりの525が申しておりますw
528名無しさん@そうだ選挙にいこう:2009/07/15(水) 12:47:10
vlookupで済むならvlookup使うなあ
ひとつで済む関数あるのに、わざわざ関数組み合わせるのは読みにくいでなあ
529名無しさん@そうだ選挙にいこう:2009/07/15(水) 12:51:08
重複の判定も、使い捨ての関数使うよりはフィルタオプション使うなあ
比較するリスト出来上がってるみたいだし、即時性が要求される処理でもないのに関数使うのはアホくさいでなあ
好みの問題か
530名無しさん@そうだ選挙にいこう:2009/07/15(水) 12:51:42
何がなんでもvlookup使われても困るんだよなー
531名無しさん@そうだ選挙にいこう:2009/07/15(水) 13:08:38
>>529
同感。実際その場面に自分が立てばどちらが早くて正確かの判断はできるだろう
ブックや仕事の内容によってどちらが有利か変わるんだから似たような機能を論争するのは不毛だと思う
532名無しさん@そうだ選挙にいこう:2009/07/15(水) 13:55:11
      ⌒   __            、__ノヽ___ ノ
  /   ´ |  |     , . .── 、    ヽ い ど そ (
/\ /     |  |  /: : : : : : : : : :f' ゚ヽ。 | い う ん   `7
\  \     |  |, ': : : ,ャ: : :/: : : : :ゝzソ:|ん だ な  |
  \  \   Lj! 」! : : X {: : : ,': : ノ!、: l: : ,'|で っ 細  |
   \ヽ > /"|! Vレ乃ホ、__ .:;z≦)ハノ_./: ノ す て け  |
      \   !! /:/弋ぅ′ ら...刈/7: :`! よ   ぇ  /
       \ |!7: :入   __ `¨x.i.F7': : : |    こ  |
          /: :/  丶 _ー '_rノヽ): : : :ノ    た  |
      С彡 |: :.!   /| /~| /( :/:::!: : : ヽ     ぁ  |
            ハ: {   |::|,⌒K{:ヽ ヽ、| : : : : )      (
         |::|^丶/Y  /:ハ:リじ \: : :⌒⌒
533名無しさん@そうだ選挙にいこう:2009/07/15(水) 15:46:33
Windows Vistaです。
Excel2003です。
マクロなんていじったことないのに、開くたびにマクロを有効にしますかと出ます。
なんでですか!!!!!!!!!!
534名無しさん@そうだ選挙にいこう:2009/07/15(水) 16:24:32
>>533
マクロが入ってるんです
邪魔ならセキュリティ設定を変更しましょう
535名無しさん@そうだ選挙にいこう:2009/07/15(水) 17:56:06
>>529
ん?普通フィルタオプションで関数使うだろ?
536名無しさん@そうだ選挙にいこう:2009/07/15(水) 19:50:38
>>508
Excelでクロス集計できるのに、わざわざ別のソフトを使うのはなんで?
どんなメリットがあるの?
おすすめソフトは何?
537名無しさん@そうだ選挙にいこう:2009/07/15(水) 19:53:36
>>509
誤解だな。
ピボットテーブルと作業列は相性いいよ。
538名無しさん@そうだ選挙にいこう:2009/07/15(水) 20:33:16
クロス集計ソフトってなに?そんなの売ってるの?
539名無しさん@そうだ選挙にいこう:2009/07/15(水) 20:48:12
>>508
プログラム作るんなら他にいくらでも選択肢があるのに、なんでExcelなんかでやってるの?
540名無しさん@そうだ選挙にいこう:2009/07/15(水) 21:06:08
>>534
誰がマクロいれたんですか!
セキュリティ設定高めがいいです。
541名無しさん@そうだ選挙にいこう:2009/07/15(水) 21:56:12
>>540
>>誰がマクロいれたんですか!

知るかw
542名無しさん@そうだ選挙にいこう:2009/07/15(水) 22:29:41
Excel でy=x^2を微分して理論値と比較しろと言われたんですが・・・どうやるんですか??
543名無しさん@そうだ選挙にいこう:2009/07/15(水) 22:36:17
数学の問題はスレ違い
544名無しさん@そうだ選挙にいこう:2009/07/15(水) 23:43:24
>>542
Excelは微分できないよ。
でもx^2くらい自分で微分できるよね。
545名無しさん@そうだ選挙にいこう:2009/07/15(水) 23:49:51
ピボットテーブルは集計するのが目的ではなく、ピボットそのものを使うのが目的な野郎が大杉www
546名無しさん@そうだ選挙にいこう:2009/07/16(木) 00:37:36
>>545
考え杉
集計にはほとんどの場合ピボットが最善だからピボットを使うだけの話
547名無しさん@そうだ選挙にいこう:2009/07/16(木) 01:00:40
で、このスレにいる先生は「ピボットが使えるデータを作れ」という。
ピボットが使えるよう考えられたデータなら、誰も苦労しないっつーのwww
548名無しさん@そうだ選挙にいこう:2009/07/16(木) 05:52:00
>>547
ピボットが使えるようなデータ形式を考えることこそが仕事。
VBAで遊んでいないで仕事してよ。
549名無しさん@そうだ選挙にいこう:2009/07/16(木) 06:10:27
>>547
苦労するのをやめようという発想はないの?
550名無しさん@そうだ選挙にいこう:2009/07/16(木) 07:31:25
>>542
微分の意味を知っていればそんな質問にはならん
エクセルの問題以前だな
551名無しさん@そうだ選挙にいこう:2009/07/16(木) 08:09:48
>>542
xを適当な刻み幅で変化させて(x,y)の座標をプロットしていくと
放物線に近い形の折れ線のグラフになるよね?
それとy=x^2の放物線を比較しろって話だと思うよ。

具体的にはxを適当な刻み幅で変化させた時に
各xでの折れ線の傾きと放物線の接線の傾きの差か比を求めていって
それをさらにグラフにでもしたらいいんじゃないかな
よくわかんねーけど
552名無しさん@そうだ選挙にいこう:2009/07/16(木) 08:27:39
>>551
意味不明。
知らないことを無理に回答しようとしなくていいよ。
553名無しさん@そうだ選挙にいこう:2009/07/16(木) 08:49:48
高卒だと分からんかもしれんが
大学の教養課程の情報処理の授業とかでありがちな課題だよね
昔だとFortranでプログラム組ませられたりしたけど
今ならExcelって事になるのかな
554名無しさん@そうだ選挙にいこう:2009/07/16(木) 10:37:25
概念としてはランダムプロットで円面積を求めるのと同じなんじゃね
555名無しさん@そうだ選挙にいこう:2009/07/16(木) 17:49:43
数学嫌いな俺からしたら微分という言葉を聞いただけで氏ねと思う。
答えたい数学バカはだまって答えだけ書くかスレ違いなんだから他いけと書けよ。
質問が変なら「勉強しろカス」でいい。
556名無しさん@そうだ選挙にいこう:2009/07/16(木) 18:50:57
>>553
大卒のふりはやめろ。
>>554
何言ってるの?
557名無しさん@そうだ選挙にいこう:2009/07/16(木) 19:01:34
質問の内容がはっきりしないのは確かだが
エスパーが答えてくれてるんだからそれでいいじゃねーか
ずっと粘着してる奴は何なの?
反論があるなら少しは質問内容に関する事書けよ馬鹿
558名無しさん@そうだ選挙にいこう:2009/07/16(木) 19:23:06
>554
円周率でわ?
559名無しさん@そうだ選挙にいこう:2009/07/16(木) 20:21:20
なんだかんだいってもぐぐれとは言わないんだな。
560名無しさん@そうだ選挙にいこう:2009/07/16(木) 21:20:22
>>548-549
集計するデータは、おまいらが作ってんの?
下っ端は辛いねw
561名無しさん@そうだ選挙にいこう:2009/07/16(木) 21:30:23
理論値と比較っていうくらいだから、実際に微分しちゃいかんのだろう
ランダムな2点を直線で結び、それを無数回繰り返すとか
562名無しさん@そうだ選挙にいこう:2009/07/16(木) 21:50:39
>>560
君はExcel使う必要ない人なんだから絡んでこないでね。
563名無しさん@そうだ選挙にいこう:2009/07/16(木) 22:13:08
>>562
大変だねw
564質問1/2:2009/07/16(木) 22:27:00
パソコン一般板総合質問スレから誘導されてきました。

【1 OSの種類         .】 WindowsXP SP3
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Excelキー割当て、標準ショートカットキーの無効化

Ctrl+I でエクセルのカーソルをひとつ上のセルに移動させるVBを作ろうとしています。
PERSONAL.XLSは
C:\Documents and Settings\Administrator\Application Data\Microsoft\Excel\XLSTART
にあり、
VBA Project(PERSONAL.XLS) の標準モジュールで

Option Explicit
Public nRow As Long
Public nCol As Long

Sub auto_open()
  Application.OnKey "^I", "toUP"
End Sub
Sub toUP()
  nRow = ActiveCell.Row
  nCol = ActiveCell.Column
  If nRow > 1 Then
    Cells(nRow - 1, nCol).Select
  End If
End Sub
565質問2/2:2009/07/16(木) 22:28:36

と書いているのですが(ttp://www.excel7.com/personal/personal2.htm を見よう見まね)、
Ctrl+Iを押すとデフォルトの書式斜体トグルが実行されてしまいます。
その代わり、何故かShift+Ctrl+Iを押すとカーソル移動になります。
ツールからマクロを選択して実行ボタンを押してもカーソル移動になります。
どこに問題があるのか、ご教授願います。
566名無しさん@そうだ選挙にいこう:2009/07/16(木) 22:31:11
>>560
普通はデータベースから取得するもんだと思うがね。
社長の会社はそういうの構築してないの?
零細なの?
567名無しさん@そうだ選挙にいこう:2009/07/16(木) 22:39:42
>>564
VBA解りませんが"toUP"があやしい。



とチラシの裏に書いてみる。
568名無しさん@そうだ選挙にいこう:2009/07/16(木) 22:45:01
>>566
構築してるよ。
CSVで吐き出されたのを、採算とか販売とかエロエロと。
そのCSVを加工するなら、いきなりピボットじゃなくてVBAで整えたりしないか?
0で始まるデータとか。

VBAで加工するなら、そのままVBAで集計まですればいいだろ?
わざわざデータを整えて、ピボットを使うのが目的な野郎がこのスレには大過ぎる。
569名無しさん@そうだ選挙にいこう:2009/07/16(木) 22:56:09
>>565
俺は怪しいのは使ってるときのCAPSROCKの状態だと思うけど
それ以上に「なぜ矢印キーひとつで済む動作にショートカットの割り当てが必要か」が気になるw
570名無しさん@そうだ選挙にいこう:2009/07/16(木) 23:00:22
>>568
俺のとこも変なソフトが吐き出すデータが正規化されて無いデータだった
俺はそれをVBAで整形してVBAでピボット使って集計してたよ
多分これが一番早いと思うんだけど、どうだろう

今は会社の売り上げも伸びて中小になれたので、1から構築しなおしてアクセス使ってますが
571565:2009/07/16(木) 23:06:57
>>567
"toUP"の名称がよくないってことでしょうか?
>>569
CAPSROCKはオンでもオフでも症状は一緒ですね…
ホームポジションから手を離さずに操作したいから矢印キーは使わないって人は少数派なのかな。
572名無しさん@そうだ選挙にいこう:2009/07/16(木) 23:07:48
お前ら・・
「CAPSlOCK」
573名無しさん@そうだ選挙にいこう:2009/07/16(木) 23:14:50
>>571
キーボード操作苦手だからその需要は気付かなかった。結構需要あるのかもな。
念のため聞くけどExcel終了して立ち上げて(Auto_Openを走らせて)からやっても同じ症状?

>>572
いいじゃん岩でも、ってことないかすまんなー
574名無しさん@そうだ選挙にいこう:2009/07/16(木) 23:18:35
x 大過ぎる
o 大杉る
575565:2009/07/16(木) 23:19:49
しつれーしました。ROCKに何の疑問も抱かなかった。
>>573 同じですね。
576名無しさん@そうだ選挙にいこう:2009/07/16(木) 23:31:13
>>570
なんでわざわざVBAで整えてピボットなんだよw
ピボットを使うのが目的な野郎がこのスレにはタタ過ぎる。
577名無しさん@そうだ選挙にいこう:2009/07/16(木) 23:31:41
>>575
いつも携帯で見てるけど気になるからExcel立ち上げてやってみた。
OnKeyのなかの大文字Iを小文字iに変えてみそ。俺も勉強になった。

ちなみにマクロの中身は一行で書ける程度の中身だろ
if selection.row >1 then selection.offset(-1).select
578565:2009/07/16(木) 23:37:39
>>577
ワンライナー様ありがとうございます。問題は解決しました。
キー割当ての表示は大文字というのが自分の中で普通になってました。"^I"と"+^i"が同じみたいですね。
これでようやくエクセルのカスタマイズに取り組めます。
579ワンライナー:2009/07/16(木) 23:53:22
自分がテストに使ったコード書いちゃったけどエラーを減らすなら
selectionはactivecellに置き変えた方がいいな
まあ解決したならよかった
580名無しさん@そうだ選挙にいこう:2009/07/16(木) 23:56:31
>>576
マクロの記録したらそれだけで完了するからなぁ。やれば分かるけどすげー楽だよ。
VBAに強力な集計機能欲しいところだけど、もしかして既にあるの?俺は知らないんだけど
581476,482:2009/07/17(金) 00:02:22
>472 おそくなってしまいましたが、改頁処理だけ行うVBAマクロできました。
Option Explicit
Dim cur_sheet As Excel.Worksheet, start_row As Long, sv_code As Variant
Dim cur_row As Long
Sub 改頁設定()
 Set cur_sheet = ActiveSheet
 If cur_sheet.Name = "Sheet0" Then
  MsgBox ("改頁処理を行うシートをアクティブにしてください")
  Exit Sub
 End If
 If MsgBox("改頁処理を始めますか?", vbOKCancel) = vbCancel Then
  Exit Sub
 End If
 start_row = 2 ' データの開始行位置
 sv_code = cur_sheet.Cells(start_row, 1).Value
 cur_row = start_row + 1
 Do While (cur_sheet.Cells(cur_row, 1).Value <> "")
  If cur_sheet.Cells(cur_row, 1).Value <> sv_code Then
   cur_sheet.Rows(cur_row & ":" & cur_row).Select
   ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell
   sv_code = cur_sheet.Cells(cur_row, 1).Value
  End If
  cur_row = cur_row + 1
 Loop
 cur_sheet.Cells(start_row, 1).Select
 MsgBox ("改頁終了")
End Sub
582476,482:2009/07/17(金) 00:05:17
>581の続きです

このプログラムをマクロブックの標準モジュールに書いてください。
マクロブックにはシートをひとつだけにして、シート名を"Sheet0"にしてください。
データブックの方はブック名は自由、シート名は"Sheet0"以外OKです。
>482にも書いたように、マクロを実行するときはまずプログラムブックを開き、次に処理対象の
ブックを開いてデータのある方のシートをアクティブにしてから[Alt]を押しながら[F8]で
マクロ一覧を開き、プログラムブック名.xls!改頁処理 を選んでから[実行]をクリックします。
583名無しさん@そうだ選挙にいこう:2009/07/17(金) 00:05:40
>>576
正直いってピボット使うのが目的だ。
VBAでピボット作るのは無駄。
VBAを使うことが目的になってしまう。
584名無しさん@そうだ選挙にいこう:2009/07/17(金) 00:09:57
>>568
社長自らVBAで販売の集計?
トウチャンカアチャン工場かな?
零細は大変だな。
585名無しさん@そうだ選挙にいこう:2009/07/17(金) 00:20:50
>>568
0で始まるデータで困ったことなんかねーよ。
外部データ取り込む時に文字列選んでないだけじゃないの?
VBAの出番が一つ消えたな。
586名無しさん@そうだ選挙にいこう:2009/07/17(金) 00:35:10
メーカーコードが01234とか、注文番号が09031201とかで、CSVを一旦テキスト化して
開かないとお節介機能で0が消されて困るときがあるけどな。
587名無しさん@そうだ選挙にいこう:2009/07/17(金) 00:36:50
>正直いってピボット使うのが目的だ

もうね(ry
588名無しさん@そうだ選挙にいこう:2009/07/17(金) 01:00:40
データをマクロで整えて、ピボットで集計?
定型フォーマットなら、マクロ組んで使い回しができるじゃん?

それとも、毎回集計方法が違うなら、仕事のやり方を
変えた方がいいと思うがな
589名無しさん@そうだ選挙にいこう:2009/07/17(金) 06:35:55
>>588
定型フォーマットはデータベースから直接出力したらいいのに。
なんでわざわざVBA?
590名無しさん@そうだ選挙にいこう:2009/07/17(金) 06:38:27
>>586
そんなの全然困ったことないが。
使い方おかしくないか?
591名無しさん@そうだ選挙にいこう:2009/07/17(金) 06:45:03
>>588
定型集計業務を個人作成のVBAに頼るような仕事のやり方は変えたほうがいいと思うよ。
592名無しさん@そうだ選挙にいこう:2009/07/17(金) 08:16:11
いくつか前のスレッドで、国別の輸出入収益を求める質問があったけど、VBA回答が大変みっともないことになってたの覚えてる?
輸出データがなくて輸入データがある場合の処理がもれてたりしてさんざんだったね。
ピボットテーブルなら作成者本人も、レポートを受けとった人も両方安心できる。
どんな集計したのか見ただけでわかるからね。
593名無しさん@そうだ選挙にいこう:2009/07/17(金) 09:09:39
>>584
零細はマジで大変だよ。しかも相当変なことをしているという実感はもってらっしゃらない。
>>368なんか見ればどれだけひどいか分かると思う
594名無しさん@そうだ選挙にいこう:2009/07/17(金) 09:30:40
エクセルを購入しようと思いますが、どのバージョンがいいんでしょうか?
windowsでお願いします
595名無しさん@そうだ選挙にいこう:2009/07/17(金) 09:42:36
>>594
一番使われているのは2003ですが、今でも購入できるのは2007だけです
それ以外のバージョンは中古を探さなくてはなりません。
たとえば仕事を持ち帰りたいなら職場と同じバージョンにしないと困ることになります。
そうでなければ最新の2007で問題ないでしょう。
596名無しさん@そうだ選挙にいこう:2009/07/17(金) 09:43:09
>>594
使いすいのは2003だけど2007の方が機能は上
2007のメニューバーを変更できるソフト(無料)を使えば似たよう感じになるらしい・・けどどこにあるかは知らない
もしくはopenofficeってソフトなら無料。OOoで検索かければ出てくる
597名無しさん@そうだ選挙にいこう:2009/07/17(金) 10:34:15
2007に2003風のメニューバーを追加してくれるフリーウェア
ttp://www12.plala.or.jp/nombo/soft15.html
598名無しさん@そうだ選挙にいこう:2009/07/17(金) 10:40:18
2003が使いやすいってただのジジイかミニノート限定だろw
ジジイどもは慣れてるから2003がいいだろうけど
これから始める奴に勧めんなよ
まだ自分中心にしか考えられないのかジジイのくせに
599名無しさん@そうだ選挙にいこう:2009/07/17(金) 10:41:29
だからさ
誰がどういう目的で何を使うかなんて自由じゃん
俺はピボットなんて面倒だから触りたくないけど、だからってピボット使う人に敵愾心持つなんて無意味だし

そもそもじゃあなんでエクセルやらVBAやら使うかって話になるんだけど、顔真っ赤にしてる人は機械語でマシン操作でもしてるのか?
600名無しさん@そうだ選挙にいこう:2009/07/17(金) 10:45:57
またピボットの話ですか・・・_| ̄|○
601名無しさん@そうだ選挙にいこう:2009/07/17(金) 10:52:17
この話題って100%ループするよね
宗教みたいなもんじゃないかな?神はいる!とかいない!とか
VBA使いからすればVBAの方が早いんだろうし
602名無しさん@そうだ選挙にいこう:2009/07/17(金) 11:00:00
自分はExcel上級者と勘違いしてる奴は新しいこと知ろうとしないからな
ピボット使わないでクロス集計してるVBA使い(笑)は、目的地に行くのに車に乗らないで
車作ってから乗り込むようなもんだからな。しかもボロボロの穴だらけの車。はために明らかにアホなんだよ
603名無しさん@そうだ選挙にいこう:2009/07/17(金) 11:17:53
>>602
クロス集計のみをVBAでやる奴は居ない、想像の中だけ所謂仮想敵
他の事やったついでに集計なりシート関数でも出来るような事するんだろ
604名無しさん@そうだ選挙にいこう:2009/07/17(金) 11:29:42
ピボット厨は何でVBA毛嫌いするんだろうね。
世の中Excel2007持ってる人ばかりじゃないんだが。
605名無しさん@そうだ選挙にいこう:2009/07/17(金) 11:35:47
do while FLAG = 0
SELECT case FLAG
case 1
msgbox ”ピボット”
FLAG = 2
case 2
msgbox ”VBA”
FLAG = 1
case else
FLAG = 0
end SELECT
RES = RES + 1
IF RES = 1001 then exit do
loop
606名無しさん@そうだ選挙にいこう:2009/07/17(金) 11:45:44
ピボット使う奴はVBA嫌いなわけじゃない。もちろんVBAも使うさ
VBAでピボット相当つうか未満の処理を書く奴がバカにしか見えないだけ
ピボットテーブルを開始するVBAなら納得だけどな
607名無しさん@そうだ選挙にいこう:2009/07/17(金) 11:48:42
つかなんで2007持ってるとか関係あんだ?
少なくとも2002位からはピボット普通に使えるぞ?
お前もオートフィルタ使わないで、抽出条件に該当しないレコード行を
一行一行非表示にしてくアホ見たら、そいつアホだと思うだろ
同じこと
608名無しさん@そうだ選挙にいこう:2009/07/17(金) 11:49:40
2007じゃなければピボットが使えないケースってたまにあるんだが。
おれなんか2000使ってた頃ピボット使うやつは零細企業レベルなんだろうなと思ってた。
609名無しさん@そうだ選挙にいこう:2009/07/17(金) 12:06:39
ピボットテーブルの一番典型的な使い方の品目ごとの合計はVBAで1分、品目ごとの月別の合計なんて3分もあれば書けるしなぁ。
穴なんか開くわけないし。
610名無しさん@そうだ選挙にいこう:2009/07/17(金) 12:09:58
2007はマクロの記録に欠陥があるからなあ。
2003までは普通にできてたことが記録されなくて、
Googleで調べて修正しないと使えるマクロにならない。
611名無しさん@そうだ選挙にいこう:2009/07/17(金) 12:21:17
>>609
時間かかりすぎ。ピボットなら品目ごとの合計は10秒、月別にしても15秒もかからん。
データ範囲選択したらメニューからピボット選んで完了クリックしてアイテムをポンポンとドラッグ。
最後にフィールドの設定を「合計」に変えるだけ。
612名無しさん@そうだ選挙にいこう:2009/07/17(金) 12:23:55
大企業がエクセルのピボットやVBAで集計作業とかするもんなの?
やるとしても2ちゃんに頻繁に書き込みしてるような連中に
それらを任せてるような企業は
社員教育を先にどうにかした方がいいよ
613名無しさん@そうだ選挙にいこう:2009/07/17(金) 12:32:14
>>612
一番納得したけど問題なのは論点が違うことだな
614名無しさん@そうだ選挙にいこう:2009/07/17(金) 12:37:20
>>611
だからピボットが使えないケースがあるんだよ。
お前97でもピボット使ってたんじゃねーの?
615名無しさん@そうだ選挙にいこう:2009/07/17(金) 12:39:46
>>605

FLAGと称してBoolen型でない値を使うやつは
間違いなく素人。
616名無しさん@そうだ選挙にいこう:2009/07/17(金) 12:48:28
>>614
ピボットが使えないデータはVBAで使えるデータに整形する。
それが正しいVBAの使い方だよ。
両方使えるならどっちがラクで早くて正確かなんてわかりきった話だ。
もしかしてピボット使えないわけ?
617名無しさん@そうだ選挙にいこう:2009/07/17(金) 12:51:33
大企業の方がデータの蓄積あるから現場レベルではピボット使いまくりなのが普通なんだけど?
また自称基幹系システムエンジニアの妄想かwwww
618名無しさん@そうだ選挙にいこう:2009/07/17(金) 12:53:49
基幹系さんはデータの蓄積と分析がごっちゃになってる
まあ仕方ないか。脳内基幹系だから
619名無しさん@そうだ選挙にいこう:2009/07/17(金) 12:53:50
>>616
なんか分ってないなぁ。
じゃぁさたとえばExcel2003のピボットで50000行で35000種類の重複しないレコードを網羅してみろよ。
620名無しさん@そうだ選挙にいこう:2009/07/17(金) 12:55:21
>617
>大企業の方が

ワロスwww
621名無しさん@そうだ選挙にいこう:2009/07/17(金) 12:56:19
********************
EXCELヲタ徘徊注意報
********************

マニアの自己満足レスが
頻発しております。
相談者の方は警報が解除
されすまで今しばらくお待
ちいただくようお願いします。

********************
EXCELヲタ徘徊注意報
********************

622名無しさん@そうだ選挙にいこう:2009/07/17(金) 12:58:06
自分でケツ拭けないからまたそれかw
まーこんなもんだなここは
623名無しさん@そうだ選挙にいこう:2009/07/17(金) 12:59:44
自分の考えに合わないものはすべてヲタで済ませるやつは幸せだ
長生きするぜw
624名無しさん@そうだ選挙にいこう:2009/07/17(金) 13:02:42
自己紹介はいいから仕事しろよ
あと半日で3連休だからそこで好きなだけぼくの好きなぶいびーえーでも書けよ
625名無しさん@そうだ選挙にいこう:2009/07/17(金) 13:36:35
>>612
銀行に勤めてるけど、事務なら一切使わない。システムに全て組み込まれてる。
営業の場合は予算、予定を立てる時なんかは自分の顧客データをデータベースから引っ張ってきて、後で行削除したりする程度だね
もしかしたらピボットを使える人がいるかもしれないけど、使ってる人は見たこと無いな

IT関連の企業や、システム部は知らないけど使わないんじゃないかな。使うのかな?
機会があったら聞いてみるよ。
626名無しさん@そうだ選挙にいこう:2009/07/17(金) 13:39:28
初歩的な質問ですみません。
excel2007でセル内に文字を入力すると、勝手にセルが広がってしまうんですが、
この機能を止めることってできますか? セル幅を固定して使いたいのです。
627名無しさん@そうだ選挙にいこう:2009/07/17(金) 14:32:44
>>626
新規ブックは必ず自動で広がるモードになっている。
固定するにはシートの保護機能を応用して「列の書式設定」を禁止するか、
一度でも幅を手作業で再設定した列は自動で広がらなくなる。
628名無しさん@そうだ選挙にいこう:2009/07/17(金) 14:56:17
ありがとう。
でも保護機能を使うと入力できなくならない。
で、解除して入力すると広がる。
629名無しさん@そうだ選挙にいこう:2009/07/17(金) 15:15:23
Ctrl+aで全体を選択したまま、A列の幅を変えれば全部の列が変更されるからそうしてみては?
ただ>>627のことは知らないので適用されるかは分からないけど
630名無しさん@そうだ選挙にいこう:2009/07/17(金) 16:21:44
excel2007です。
シートのコピーをしても、図形がコピーされません。
図形もコピーできるようにするにはどうしたらよいのでしょうか?
631名無しさん@そうだ選挙にいこう:2009/07/17(金) 16:31:15
>>629
おお、できた。ありがとう。
なんでこんな機能にしたんだろ。

今月から会社のエクセルが2007に変わって、
イライラしまくりです。
632名無しさん@そうだ選挙にいこう:2009/07/17(金) 16:42:18
>>631
2003の機能を単純に強化したものをだしてほしかったのはよく聞きます。まぁ開発者がアホなんでしょう
その他仕様についても慣れるしかないですね
633名無しさん@そうだ選挙にいこう:2009/07/17(金) 18:26:17
三枚目のおうち木に囲まれてのどかだけど絶対虫だらけだよなぁ
634名無しさん@そうだ選挙にいこう:2009/07/17(金) 18:37:34
誤爆ですすいません
635名無しさん@そうだ選挙にいこう:2009/07/17(金) 18:49:51
前にこのスレでVBAで集計する人に「どんな集計してるんだ」って聞いたら
・2行で1レコード
・セルの色別集計
とかいう答えだった。気の毒でかける言葉がなかった。
636名無しさん@そうだ選挙にいこう:2009/07/17(金) 18:51:13
しつけーんだよ!クソが!!!!!!!!!!!!!!!!!
637名無しさん@そうだ選挙にいこう:2009/07/17(金) 19:12:15
まあVBAで集計するハメになる場合は、そもそものデータがクソ仕様の場合が多いからな。
データの作成から自分とこでやってりゃ問題ないが、そうでないことも多々あるし。
638名無しさん@そうだ選挙にいこう:2009/07/17(金) 20:11:14
理想はマスターデータと印刷用フォームを分けることだが、これが兼用になってる中小、零細企業が多い。
だからVBAを使わないと集計ができない。
そもそもそんな知恵があれば最初からExcelなんか使わずにAccessを使ってる。
つまり「Excelを使う」と「データ構造がどうしようもない」は密接に関係があるわけだ。
639名無しさん@そうだ選挙にいこう:2009/07/17(金) 20:37:30
>>612
>>625
君たちは電卓も使わないの?
そもそもExcelを使う必要ない職業の人は、この話題に参加しないでいいんじゃないの?
話が発散してややこしくなる。
640名無しさん@そうだ選挙にいこう:2009/07/17(金) 20:44:06
そろそろ雑談・議論専用スレに写りませんか?
【質問不可】Excel総合相談所スレの雑談・議論スレ2
http://pc11.2ch.net/test/read.cgi/bsoft/1151651536/l50
641名無しさん@そうだ選挙にいこう:2009/07/17(金) 20:57:24
>>638
データ構造がめちゃくちゃでも集計出来るのが
利点なんだろ
642名無しさん@そうだ選挙にいこう:2009/07/17(金) 21:21:19
例え話をしよう。
ここに鶴亀算が得意な小学生がいる。
「この問題チョー得意。鶴を一羽ずつ増やしていって、ちょうどいいところが答えだよ。俺計算速いからクラスで一番早く解けるよ。5分もかからないよ。」

こいつがVBA厨だ。わかった?
643名無しさん@そうだ選挙にいこう:2009/07/17(金) 21:50:06
VBA厨云々と馬鹿にしてるやつ思考能力はどのくらいある?
たとえばExcel2003で60000行のデータでA列の品目が40000種類あるとき各品目毎のB列の合計出せる?
もちろんピボットテーブルは使えない。
ピボット厨でもこれがVBAや一般機能で出来れば認めてやるよ。
644名無しさん@そうだ選挙にいこう:2009/07/17(金) 21:53:18
VBAは簡単杉か。
dictionaryは無しだ。
645名無しさん@そうだ選挙にいこう:2009/07/17(金) 22:08:23
>>643
そんな単純な集計VBAつかうまでもないな。関数で十分
646名無しさん@そうだ選挙にいこう:2009/07/17(金) 22:16:23
>>637
>データの作成から自分とこでやってりゃ問題ない

下っ端は大変ですねwww
647名無しさん@そうだ選挙にいこう:2009/07/17(金) 22:24:52
>>646
零細社長は自分で一から構築できるんだから、めぐまれてるね。
データはクソじゃないほうがいいだろう?
648名無しさん@そうだ選挙にいこう:2009/07/17(金) 22:28:30
>>643
関数でつくってみたら再計算にたっぷり5分以上かかった
VBAだとどれくらいなの?
俺ならAccessでやるけど
649名無しさん@そうだ選挙にいこう:2009/07/17(金) 22:31:25
>>643
おつむの足りない人がやりそうな方法だが、フィルタオプションで重複するレコードは無視するでリスト作ってSUMIFで約3分で計算出来た。
以前はよく固まったけど最近のパソコンは固まらないな。
パソコンが高性能になると馬鹿が増えるのは仕方がないな。
配列数式等の低レベル放射能をばらまくやつが現れるわけだw
650名無しさん@そうだ選挙にいこう:2009/07/17(金) 22:32:24
Accessはスレ違い お帰り下さい(´・ω・`)
651名無しさん@そうだ選挙にいこう:2009/07/17(金) 22:34:06
>>648
自分もSQL書くなあ。
VBA?滑稽だね。
ピボットテーブルのアイテム数は35000という制限があるけど、VBA厨は制限がなくなったらピボット使うのか?
652名無しさん@そうだ選挙にいこう:2009/07/17(金) 22:41:04
>>647
643じゃないがVBAでもほとんど時間はかからんよ。
アルゴリズムの問題だと思うが、ソートして同じデータが続く間加算していくだけだからね。
Excelの一般機能でも出来るのでほとんど時間はかからない。
653名無しさん@そうだ選挙にいこう:2009/07/17(金) 22:42:23
アンカーミスった。
上は>>648向け
654名無しさん@そうだ選挙にいこう:2009/07/17(金) 22:49:28
>>648はまさか重複しないリストも関数で作ったんじゃないよな?
配列数式でやる斜め上を逝く人を知ってるが6万行では彼も無理だろうなぁ。
655名無しさん@そうだ選挙にいこう:2009/07/17(金) 22:51:29
しっかし、おまいらホントに低俗なんだなwww
集計するのがそんなに楽しいか?

所詮、2流大学卒じゃ幹部職にはなれん罠www
656名無しさん@そうだ選挙にいこう:2009/07/17(金) 22:53:07
厨卒ですが何か?
657名無しさん@そうだ選挙にいこう:2009/07/17(金) 23:18:08
>>651
SQLでもお馬鹿なアルゴリズムを使った書き方とかある?
重複しないレコード作って各データの合計をExcelのSUMIFみたいに何度も内部で総当たり計算して合計するとか。
それともちょっと利口に>>652みたいにソートしてブレークするまで加算するんだろうか?
658名無しさん@そうだ選挙にいこう:2009/07/17(金) 23:23:07
>>657
SQLは手続きを記述するんじゃないよ。
取得したいデータの定義を書くんだ。
659名無しさん@そうだ選挙にいこう:2009/07/17(金) 23:23:59
厨卒にそんなこといってもわからんて
660名無しさん@そうだ選挙にいこう:2009/07/17(金) 23:26:36
>>658
トンクス
取得したいデータの定義の内部アルゴリズムはどうなってるんだろうか?
>>643がどのくらい時間がかかるかで推測出来そうだが。
661名無しさん@そうだ選挙にいこう:2009/07/17(金) 23:27:30
>>657
そしてピボットテーブルも手続き的ではないという点でSQLと似ている。
集計方法の定義をウィザードで作成するんだよ。
662名無しさん@そうだ選挙にいこう:2009/07/17(金) 23:30:05
>>660
「定義のアルゴリズム」というのはない。
私の言っていることを理解していないようだな。

定義されたものを求めるアルゴリズムはもちろん存在する。
一度SQL使ってみろ。VBA厨の書くゴミ集計プログラムなんぞバカバカしくなるぞ。
663名無しさん@そうだ選挙にいこう:2009/07/17(金) 23:39:58
>>662
トン
休みに入ったら勉強してみるわ。
ところで>>643はどのくらいの時間かかるの?
664名無しさん@そうだ選挙にいこう:2009/07/17(金) 23:57:08
>>663
662氏ではないが、Accessで話で進めるとウィザードだけでできてしまうレベル。
作成から結果表示まで、ゆっくり作っても1分かかるかどうか。
結果表示だけなら、数秒ってところじゃないか。
665名無しさん@そうだ選挙にいこう:2009/07/18(土) 00:08:07
>>664
トンクス。
試しにA列を全部ユニークにして、3万行と6万行の結果表示の時間を教えてくれない?
まさか6万行が3万行の4倍とかの時間じゃないですよね。
666名無しさん@そうだ選挙にいこう:2009/07/18(土) 00:10:00
>>665
A列が全部ユニークなら集計する必要なかろう?
あほなのか?
667名無しさん@そうだ選挙にいこう:2009/07/18(土) 00:13:27
>>666
あくまでも試しにやるんだよ。
6万行が3万行の2倍の時間ならまともな内部アルゴリズム、もし4倍ならあまりよろしくない内部アルゴリズムとか分るしね。
668名無しさん@そうだ選挙にいこう:2009/07/18(土) 00:18:57
XPで2003なのですが、シート1とシート2を
一枚の紙にプリントアウトしたいのですが
どの様にすれば良いのでしょうか?
669名無しさん@そうだ選挙にいこう:2009/07/18(土) 00:23:59
プリンタドライバの設定で2up
670名無しさん@そうだ選挙にいこう:2009/07/18(土) 00:30:23
>>638
正論だなぁ
エクセルにもテンプレートがあればいいのにね
そうすればもうちょっとは世の中全体がましだっただろうに
アクセスは金がかかるので導入は結構難しいんだよね
officeHOMEに標準装備ならまた違っただろうに
>>641
どんなめちゃくちゃなファイルでもある程度規則はあるんだけど、
規則自体がコロコロ変わったらかなり厳しい
>>646
子会社からデータ受け取る場合とかあるでしょ
IT系でも正規化知らないような連中はごまんといる
671名無しさん@そうだ選挙にいこう:2009/07/18(土) 00:34:43
>>667
言いたいこと分る。
Excelの統合で試しに3000行と6000行と12000行で全部ユニークにして試すと
3000行 約3秒
6000行 約12秒
12000行 約48秒

統合はだいたいデータ量の2乗に比例するみたいね。
ピボットはきちんと比例するしずっと速い。
672名無しさん@そうだ選挙にいこう:2009/07/18(土) 00:34:53
>>667
お前の希望通りのデータではないが、100種類の商品がある100万件のデータを商品別に集計させてみた。
一瞬で終わった。1秒もかからない。
673名無しさん@そうだ選挙にいこう:2009/07/18(土) 00:42:56
>>672
まったく分ってないね。
たった100種類じゃ駄目なんだよ。
全部ユニークにした3万種類と6万種類でやってみてくれ。
674名無しさん@そうだ選挙にいこう:2009/07/18(土) 00:47:39
>>671
予想はしてたけどやっぱりそうなるのか
アクセスでやれと言わんばかりの結果だな
675名無しさん@そうだ選挙にいこう:2009/07/18(土) 00:52:21
>>674
いや統合がクソすぎるだけじゃね?
アクセス使えない人にはExcel2007でピボットって手もあるし。
676名無しさん@そうだ選挙にいこう:2009/07/18(土) 00:56:38
>>667
30,000と60,000じゃよく解らなかったから300,000と600,000で試してみた。
300,000……約3秒
600,000……約6秒

ストップウォッチがなかったから、正確な時間はわからん。
クエリの展開時間って、どう計測すればいいんだ。
677名無しさん@そうだ選挙にいこう:2009/07/18(土) 00:58:58
>>676
わしもやりかけてて,6万件が人間には測定不可能な速度だから
データ増やすのめんどくせえなと思って困ってたところだ。
ありがとう。
678名無しさん@そうだ選挙にいこう:2009/07/18(土) 01:01:27
なんなんだろうね
SQLより自作VBAの方が性能がいいとでもいうつもりか
679472 :2009/07/18(土) 01:03:53
>>581さん
こちらもお礼が遅くなりすみません。
会社にて早速試した所、希望通りの印刷を行うことができました。
マクロの実行手順まで丁寧に教えて下さり本当にありがとうございました。
助かりました。
これを期に、自分もマクロについて勉強したいなと思いました。
680667:2009/07/18(土) 01:09:53
>>671
トン
そうなりますか。統合は使えませんね。

>>676
やっぱりまともなアルゴリズムみたいですね。
681名無しさん@そうだ選挙にいこう:2009/07/18(土) 01:11:32
>>678
そんな気はないよ。
性能ならおそらく2007のピボットには勝てないし。
682名無しさん@そうだ選挙にいこう:2009/07/18(土) 01:13:13
>>673
かといってありえない状況設定のベンチマークとっても仕方ないだろう。
グループ別の集計するのに全部ユニークとは。
ま、とにかくVBAで集計なんぞシコシコ書いてる場合じゃないよ。
683名無しさん@そうだ選挙にいこう:2009/07/18(土) 01:16:31
ユニーク、ユニークって、何が面白いのかサパーリわからん・・・ orz
684名無しさん@そうだ選挙にいこう:2009/07/18(土) 01:20:59
>>681
2000のピボットに勝てるVBAだって世の中にどれほどあるか疑わしい。
685名無しさん@そうだ選挙にいこう:2009/07/18(土) 01:28:57
>>684
2000のピボットははっきり言ってクソだよ。
10000アイテムも使えないだろ?
686名無しさん@そうだ選挙にいこう:2009/07/18(土) 01:29:51
>>683
釣りなのかマジなのか…

大雑把に説明すると
日本語では「ユニーク」は個性的って意味だけど、本来は「他に同じ物がない」って意味。
「ユニークなデータ」ってのは「すべて内容が違うバラバラのデータ」ってこと。
それを集計するのにどれだけ時間がかかるかって話をしてる。
687名無しさん@そうだ選挙にいこう:2009/07/18(土) 01:37:53
全部ユニークだとわかっている項目での集計を最適化してくれるシステムだったら、
データが1件でも1兆件でも処理時間0になっちゃうもんなあ。
688名無しさん@そうだ選挙にいこう:2009/07/18(土) 01:39:29
>>685
そのクソにさえ劣っているという意見だよ。
689名無しさん@そうだ選挙にいこう:2009/07/18(土) 01:42:28
>>638
どんなクソVBAでも65535アイテムまでは使える。
2000のピボットには勝てるよ。
690名無しさん@そうだ選挙にいこう:2009/07/18(土) 01:47:37
>>689
どちらも件数に制限があるという点ではいっしょだよね。
65535アイテムなら十分な性能なの?

国別貿易収支を求める場合、アイテムは国の数程度が扱えればいい。
VBAの回答では実際に集計にもれがあったぞ。
691名無しさん@そうだ選挙にいこう:2009/07/18(土) 01:49:36
>>689
君の反論は裏を返せば、2003や2007の使用を前提にすればVBAに価値はないということだね。
692名無しさん@そうだ選挙にいこう:2009/07/18(土) 01:58:00
何言ってるか分らん
ゴルフ見るわ。
693名無しさん@そうだ選挙にいこう:2009/07/18(土) 02:52:39
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 集計・抽出・レポート・ピボット

次のようなデータがあります。
       テストX   テストY   テストZ
製品A    10       5       2
製品B     -       -       8
製品C     -       4       -
製品D     5       -       -

例えば、テストX、Zで抽出した場合、値のないCを抜いてBD間を詰めて別シートに
レポートしてくれるようにするにはどうすればいいですか?
<表示例>
      テストX  テストZ
A      10      2
B      3       8
D      5       -

694693:2009/07/18(土) 02:59:41
続きです。更に、
上記データをテストX〜テストZで個別レポートを作成します。


       テストX   テストY   テストZ
製品A    10       5       2

       テストZ
製品B    8

       テストY
製品C     4

       テストX
製品D     5   


製品Bに関してテストX、テストYを、製品Cに関してテストX、テストZを・・・・・
しなかったことをばれないようにレポート表示させたいんです。
695名無しさん@そうだ選挙にいこう:2009/07/18(土) 03:46:33
>>693
>しなかったことをばれないようにレポート表示させたいんです。

なぜおまいの手抜き作業の片棒を担がなければならないのかと小一時間(ry
696名無しさん@そうだ選挙にいこう:2009/07/18(土) 04:39:33
エクセル2002を使っています。ノートパソコンでOSはXPです。

「読取革命VER13」というソフトでPDF形式でまとめられてる表をエクセルへと
転写する作業を試みているんですが、一つのセルの中で改行されたものが上手く
転写されません。
セルの中に
1
2
と読取革命上では改行されていてそのように転送されるはずのものが
12
と改行されないまま一つのセルの中に転送されてしまいます。数字以外の文字や記号が
入っていたりするときちんと改行されて転送されるのですが、数字のときだけ
改行をしないまま転送しています。
読取革命上ではきちんとPDFからの画像データーは改行されているので、エクセルへと
転写する際に数字の場合に改行されなくなってしまうということが
起こるようです。

このことについて解決策をご存知の方はいらっしゃるでしょうか?
わかりにくい文章で申し訳ありません。
697名無しさん@そうだ選挙にいこう:2009/07/18(土) 07:22:09
>>691
VBAで集計しかしないと思っちゃってるのがクソ
698名無しさん@そうだ選挙にいこう:2009/07/18(土) 08:45:58
>>694
手抜きしたいんならVBAがいい。
もれのある処理は得意だよ。
ピボットテーブルは間違った処理が苦手なんだ。ごめんね。
699名無しさん@そうだ選挙にいこう:2009/07/18(土) 08:48:46
ピボットテーブルは間違った処理が苦手なのではない
間違ったというか不適切な構造のデータを柔軟に処理するのが苦手なのだ
VBAはやり方次第で不適切な構造のデータを柔軟に漏れなく処理できるけどね

末永く使うならデータ構造見直した方がいいが、その場限りならVBAで切り抜ける方が低コストだったりする
700名無しさん@そうだ選挙にいこう:2009/07/18(土) 09:09:21
>696
OCRソフト(読取革命)で改行を認識しているらしいのであれば、エクセルの方で
「セル内で改行する」を設定したら希望通りに表示してくれるのでは?
1 シート全体または必要な範囲を指定
2 [Ctrl]+[1]でセルの書式設定ダイアログを表示
3 「配置」タブの「折り返して全体を表示」にチェック
の操作をしてみてください。
701名無しさん@そうだ選挙にいこう:2009/07/18(土) 09:54:01
>>694
複数テストするときはXのテストは必ず実行してる?してたら↓で可能。してないなら使わない方がいい
10のデータがB2にあるとして、
E2=IF(COUNTA(B2:D2)=1,SUM(B2:D2),MAX(B2:D2))
後はE列をB列に値でコピー貼り付け
702名無しさん@そうだ選挙にいこう:2009/07/18(土) 09:59:44
>>699
それにしてもVBAが有効な範囲がどんどん狭くなってきているね。
じりじり撤退しているようだ。
703名無しさん@そうだ選挙にいこう:2009/07/18(土) 10:25:02
>>702
君、VBA使えないでしょ
使えるようになってから比べた方がいいと思うよ
704名無しさん@そうだ選挙にいこう:2009/07/18(土) 10:34:24
単純な繰り返しと分岐で配列操作するだけのオモチャ発表しては、
「エクセル使うならVBA使えるようになっとけ!マジで。」の捨て台詞。
VBA厨はうざい。プログラム組めばできるのは分かってるんで、そんな回答はつまんないんだよ。
705名無しさん@そうだ選挙にいこう:2009/07/18(土) 11:10:18
-----------------------------------------------------------------------

ここまでテンプレ
706693:2009/07/18(土) 11:47:44
うーん、ソフト探してみます
707名無しさん@そうだ選挙にいこう:2009/07/18(土) 11:57:22
>>703
私は比べてないよ。
>>699に言えば?
708名無しさん@そうだ選挙にいこう:2009/07/18(土) 12:32:16
VBAだろうが他言語だろうがExcelの一般機能だろうがアルゴリズムは不滅。
みんなにアルゴリズムの本格的な勉強しろとは言わないが、ほんの少しは考えたほうがいい。
709名無しさん@そうだ選挙にいこう:2009/07/18(土) 12:45:35
で、板取りのアルゴリズムは考えたのか?
710名無しさん@そうだ選挙にいこう:2009/07/18(土) 12:49:59
>>708
考えた結果、自作するのではなく、ピボットテーブルやSQLを使うことにした。
で、板取りのアルゴリズムはいつ完成するの?
711名無しさん@そうだ選挙にいこう:2009/07/18(土) 13:14:23
板取りって何のこと?
イタドリの塩モミなら食ったことあるぜ。
712名無しさん@そうだ選挙にいこう:2009/07/18(土) 13:24:40
>>704
誰なんだそのVBA厨って
上司か?
713名無しさん@そうだ選挙にいこう:2009/07/18(土) 13:43:08
だからここまで俺の自演だって何回言わせんだksg
714名無しさん@そうだ選挙にいこう:2009/07/18(土) 14:01:03
>>708
アルゴリズム体操
ttp://www.youtube.com/watch?v=YuNIgXfErpY

コレ見たら大まかな概念が理解できますた。
715名無しさん@そうだ選挙にいこう:2009/07/18(土) 14:47:15
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

3行目をタイトル行でオートフィルタをつけて、ある条件で抽出したとき、
B列とF列の"空白でないデータの件数"をカウントするには
どうすればいいですか?
716名無しさん@そうだ選挙にいこう:2009/07/18(土) 15:00:21
SUBTOTAL
717名無しさん@そうだ選挙にいこう:2009/07/18(土) 15:25:03
>>716
ありがd!!

ついでに、
「関数の挿入」をクリックしたら一覧にSUBTOTALがありませんでした。
何か設定が必要でしょうか?
718名無しさん@そうだ選挙にいこう:2009/07/18(土) 16:29:58
>>700

ありがとうございます。文字を折り返すをチェックしても、そのセルだけが
折り返されないです。

どうやらこのPDF上で単位や記号と混じっていないセルが
その問題の部分だけなので、読取革命のOCRからエクセルへデーターを移行するときに
改行された数字の羅列ではなく、数値データーと認識されてしまうようです。

ただ、メモ帳などのファイルで改行された数字の羅列をセルにコピペするとそのまま
改行されてはいるんですが。
719名無しさん@そうだ選挙にいこう:2009/07/18(土) 16:32:09
>>718
それはソフトの問題
そのソフトのスレか作った会社に聞くと良い
720名無しさん@そうだ選挙にいこう:2009/07/18(土) 18:28:07
>>719
役人のたらい回し的レスだな。

ひとつの案として別シートに対象のシートをリンク表示させることで改行や折り返し
をリンクさせたシートで行うことで解決する場合もありますよ。
721名無しさん@そうだ選挙にいこう:2009/07/18(土) 18:37:39
>>720
それ解決になってないからw
722名無しさん@そうだ選挙にいこう:2009/07/18(土) 18:56:35
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 書式設定

10
20(青字)
30(青字)
20(赤字)
40(青字)
のように数字が変化する時、
前のセルに比べ、
増加した時は青字、
減少した時は赤字に
色づけするにはどうすればいいでしょうか?
よろしくお願いします。
723名無しさん@そうだ選挙にいこう:2009/07/18(土) 19:04:39
>722
条件付書式で可能ですよ。
724名無しさん@そうだ選挙にいこう:2009/07/18(土) 19:23:11
>>723
すみません。どのようにやれば良いのでしょうか?
試してみたのですができませんでした。
725723:2009/07/18(土) 19:48:46
>724
A1セルが先頭データで、条件付書式をA2セル以降に設定するものとします。

A2セルの 条件付書式の設定 のダイアログで、
1 条件1(1) の「セルの値が」を「数式が」に変更
2 数式を入力する欄に =A2>A1 と入力
3 [書式]ボタンをクリック →セルの書式設定 ダイアログが表示される
4 「フォント」タブの 色(C): で青色に設定して[OK]ボタンをクリック
5 [追加(A)>>]ボタンをクリック →条件2の欄が増える
6 条件2(2) の「セルの値が」を「数式が」に変更
7 数式を入力する欄に =A2<A1 と入力
8 [書式]ボタンをクリック →セルの書式設定 ダイアログが表示される
9 「フォント」タブの 色(C): で赤色に設定して[OK]ボタンをクリック
10 [OK]ボタンをクリック →A2セルの数字の色が(例題のとおりならば)青に変わったはず
11 書式のコピー・ペーストの要領でA3セル以下に「書式」をコピー
これでできるはずです。

726名無しさん@そうだ選挙にいこう:2009/07/18(土) 20:13:40
>>723
ありがとうございます。できました。
727名無しさん@そうだ選挙にいこう:2009/07/19(日) 01:16:00
認証してくださいとかで編集できないんですが、
認証しないで使うにはどうすればいいですか
728名無しさん@そうだ選挙にいこう:2009/07/19(日) 01:19:14
>>727
無理。
認証するしかない。
729名無しさん@そうだ選挙にいこう:2009/07/19(日) 03:26:23
>>719

OCRソフト上ではエクセルへ転写させる直前の状態では改行されてるんですよね。
だからエクセルの方かとも思ったのですが、会社に効いてみることにします。

>>720
そういう方法もありますね。考えてみます。
730名無しさん@そうだ選挙にいこう:2009/07/19(日) 08:01:08
【1 OSの種類         .】 Windows 2000 Pro
【2 Excelのバージョン   】 Excel 2000
【3 VBAが使えるか    .】 勉強し始めたばかりです
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 excel マクロ 関数でエラーが発生した場合 / エラー処理

住所録で、A列に住所が入力されています。いわゆる第一住所と第二住所が、
スペース区切りで同じセルに入力されている状態です。
これをSplit関数でB列とC列に分けてコピーするようにfor nextなマクロを書いたのですが、
スペースのない(分割されていない)住所の行でエラー(ダイアログ表示:インデックスが有効範囲にありません。)に
なってしまいます。スペースが無くてエラーになった行は、A列の内容をそのままB列にコピーして(C列は空でOK)、
次の行の処理を行って欲しいのですが、どのような処理を加えたら良いのでしょうか?

For i = 2 To 10
str = Range("A" & i)
strArray = Split(str, " ", 2)
Range("B" & i).Value = strArray(0)
Range("C" & i).Value = strArray(1)
Next

#今は、あらかじめA列の内容の末尾にスペースを加えて「必ずスペースがある」状態にしてから処理することで、
 エラーにならないようにして処理→B列とC列のスペースを削除してます。
731名無しさん@そうだ選挙にいこう:2009/07/19(日) 08:11:03
Range("C" & i).Value = strArray(1)

If UBound(strArray) = 1 Then Cells(i, 3).Value = strArray(1)
732名無しさん@そうだ選挙にいこう:2009/07/19(日) 09:56:45
>>730
関数だと
B1=LEFT(A1,FIND(" ",A1)-1)
C1=RIGHT(A1,LEN(A1)-FIND(" ",A1))

VBAだと
↓でいいんじゃないかなぁ。
エラー処理はエラーハンドラーでぐぐるといいけど、
これぐらいのコードではエラーが出ないようにコード書くほうがいいと思うよ

Sub a()
For i = 2 To 10
If InStr(1, Cells(i, 1), " ") <> 0 Then
Range("B" & i).Value = Left(Cells(i, 1), InStr(1, Cells(i, 1), " "))
Range("C" & i).Value = Right(Cells(i, 1), Len(Cells(i, 1)) - InStr(1, Cells(i, 1), " "))
Else
Range("B" & i).Value = Range("a" & i).Value
End If
Next
End Sub
733名無しさん@そうだ選挙にいこう:2009/07/19(日) 13:40:59
同じセルの値を何度も取得せずに変数を使いましょう
同じ条件で関数を何度も使わずに変数を使いましょう
734名無しさん@そうだ選挙にいこう:2009/07/19(日) 14:01:09
変数を使ってみた

Sub a()
  For i = 2 To 10
    c = Cells(i, 1)
    p = InStr(c, " ")
    If p = 0 Then p = InStr(c, " ")
    If p Then
      Range("B" & i) = Left(c, p - 1)
      Range("C" & i) = Mid(c, p + 1)
    Else
      Range("B" & i) = c
    End If
  Next
End Sub
735名無しさん@そうだ選挙にいこう:2009/07/19(日) 14:05:21
>>733
まぁ俺も思ったけどさ〜
10行のコードで最適化してもしゃーないでしょ
736名無しさん@そうだ選挙にいこう:2009/07/19(日) 15:36:41
俺は入力が面倒だから短い方を選ぶ。別に最適化しようとは思ってない。遅くてもいいから短くする。
とりあえずRange("B" & i)はCells(i, 2)にしたい。
737名無しさん@そうだ選挙にいこう:2009/07/19(日) 17:00:44
何度も長ったらしく書くより変数に入れた方が楽だわな。
可読性も上がるし。
まぁ中には不細工な方が見やすいという奴もいるけどな。
738名無しさん@そうだ選挙にいこう:2009/07/19(日) 18:31:04
>>730
不細工だけどExcelらしく書くならこんなのも嫌いじゃない


sub ビール飲みながら暇つぶし()
 with range("b2:b10")
  .formular1c1="=if(iserror(find("" "",rc[-1])),rc[-1],left(rc[-1],find("" "",rc[-1])-1))"
  .offset(,1).formular1c1="=trim(substitute(rc[-2],rc[-1],""""))"
  .resize(,2)=.resize(,2).value
 end with
end sub
739名無しさん@そうだ選挙にいこう:2009/07/19(日) 18:46:36
しかし住所のなかにスペースがないことが保証されていて、
スペースが必ず区切りであるようにデータ作っているのかね、、、
740名無しさん@そうだ選挙にいこう:2009/07/19(日) 18:55:31
自分ならこれくらい関数でやる
741名無しさん@そうだ選挙にいこう:2009/07/19(日) 19:13:26
738だけどあのあとビール買い足しに行きながら「俺ならこんなときどうしてるかな?」と考えると
区切り位置ウィザードで一発で片付けてるな730さんも試してみれ
俺んとこもいろんなフォーマットのデータ混在してるから
いろんな機能使い倒してるよー


>>739
このスレはそういうExcelを渡されて何とか無難に加工しようと四苦八苦してる人間の集いだと思ってたが違うの?
742名無しさん@そうだ選挙にいこう:2009/07/19(日) 19:25:07
ぜんぜん関係ない場所にあるスペースを考えるとなると、どうにもならんょね
県や市町村で区切ってあるなら住所データ組み込んで判定できるけども、番地とか枝番ついてるだろうし
743名無しさん@そうだ選挙にいこう:2009/07/19(日) 19:42:35
>>742
むしろ必ず番地が付いてることを利用して区切るコード書けるだろ
力技にはなるけれど

だけど、いくら元データが頼りないからってそんな力技使わないといけないくらいなら
さすがに元データをなんとかしようとするだろ
744名無しさん@そうだ選挙にいこう:2009/07/19(日) 22:15:07
変数が多くなってしまって、変数の使い回しをしてますが、何か問題がありますか?
今は難なく動いてます。

For i = 3 to 12
 hogehoge
next i

For i = 1 to 6
 hogehoge
next i

For i = 1 to 12
 hogehoge
next i

j、k、l、mなども多様してて、糞マクロなのは十分承知の上なんですが・・・
745名無しさん@そうだ選挙にいこう:2009/07/19(日) 22:21:36
>>744
> 今は難なく動いてます。

問題ないんじゃないの?
問題になるのは他の人がメンテしたときに理解できるかどうかと
カウンタの初期化が必要なループで初期化を忘れてないか
くらいの気がするからどっちも可能性なければいいんでは?
746名無しさん@そうだ選挙にいこう:2009/07/19(日) 22:39:43
>>744
普通は問題ない。
ただ、i、j、kっていうのは慣例的にループカウンター(とくにFor文の)とされているから
ループカウンター以外で使いまわすのは、やめておいたほうがいい。
というよりも、意味合いが違うのならば、別の変数を用意してあげた方がいいね。
あとは型宣言をしておけば大丈夫だろう。
747744:2009/07/19(日) 22:56:50
>>745-746
レスありがとうございます。
型宣言について調べてみましたが、
Dim i As Integerとかでいいのでしょうか?
どこかのサイトで、
Dim i, j, k でいいと書かれてたので省略してました。
748名無しさん@そうだ選挙にいこう:2009/07/19(日) 23:04:02
>>747
まぁ、そういうこと。
Dim i, j, kや型宣言を省略すると、たしかVariant型になったはず。
面倒くさいかもしれないが、それぞれにあった型を使った方がメモリ使用量を抑えられるし、
ヒューマンエラーを抑えられる。
variant型は便利なのだが、それだけに諸刃の剣。慣れるまでは極力使わない方がいいと思う。
749名無しさん@そうだ選挙にいこう:2009/07/19(日) 23:11:17
>>747
> Dim i, j, k でいいと書かれてたので省略してました。

よくわからないうちはそれで充分
何も宣言しないよりはよほどエラーが少なくて済む

わかってきたら徐々に「as long」とか加えればいい。
750744:2009/07/19(日) 23:11:50
>>748
レスありがとうございます。
万年初心者なので、精進します。
751744:2009/07/19(日) 23:20:22
>>749
レスありがとうございます。
IntegerとLongの違いを調べてました。
私の使い方だとLongは必要なさそうです。
752名無しさん@そうだ選挙にいこう:2009/07/19(日) 23:53:35
数字データ扱う場合俺はLongで宣言するなあ
念のためってだけだが、いざオーバーフローしたらめんどい

>>743
1丁目2番地3号市営第15アパート9999号室って描き方もあれば
1−2−3−9999(アパート名省略)ってのもあるし

↑のは空白一個で第1第2分けるだけだからそうでもないが
753名無しさん@そうだ選挙にいこう:2009/07/20(月) 00:00:11
>>752
あっアパート名省略ってのがあるとさすがに・・・
まあ取り越し苦労だろ
データになるまでに何とかなってるって
てか何とかさせてないとまずい


すでにこのスレの話題ではなくなってるが
754名無しさん@そうだ選挙にいこう:2009/07/20(月) 00:01:09
数字データは普通longで扱うわな
755名無しさん@そうだ選挙にいこう:2009/07/20(月) 00:04:57
>>754
16bit機が主流だった頃にはintを使うメリットはあったのだろうが、
32bit機だとさすがに使う意味はすくないわな。
756名無しさん@そうだ選挙にいこう:2009/07/20(月) 00:39:30
意図せぬデータであえてエラーを出す意味ではintegerもアリだと思うけどね
(もちろん本来は別のエラー処理してるべきだけどたかがExcelマクロだし気軽に書きたい)

まあ今回の質問者さんに関してならデータ型は適当でいいからとりあえず宣言してればいいんでない?
757730:2009/07/20(月) 00:53:28
今回は、自分的に理解しやすくて、現状に組み込みやすい>>731さんの方法で組みました。
スペースの有無にばかり注目してて、すでに配列があることには気づきませんでした。

>>732
そうですね。「エラー処理で回避は、想定される処理後の、最後の最後」と昔、教わりました。

>>736
すみません。マクロ記録のままで使ってます。
ループ処理するときは、Cellsに書き換えたほうが良いんでしたっけ?

>>739
申し訳ないです。今回の質問のために問題点を絞込みんで質問してしまいました。
指摘されているようなことは当然発生していますが、問題にならないように事前に加工しています。
区切りスペースも全角だったり半角だったり…そんなワケなので>>730の最後で書いたような力技も…w

>>752
住所はいろいろ悩みますね。部門名まで入ってないと届かない場合とか。>>753言われるように
スレ違いですし。最後になりましたが、いろいろありがとうございました。これからも精進します。
758名無しさん@そうだ選挙にいこう:2009/07/20(月) 02:02:29
>>751
逆だろ?
君の使い方ならInteger型は必要ない
759名無しさん@そうだ選挙にいこう:2009/07/20(月) 02:16:30
For i = 1 to 12 なら、Integerで、いぃんでねーの?
760名無しさん@そうだ選挙にいこう:2009/07/20(月) 02:25:32
longの方がcpuが扱える自然な数だから、演算が速いというのは聞いたことがある。
なので仕様等で明示されていない限りは、intは必要ないと思うが。
第一intだとExcelの行全部が扱えないのが痛い。
761名無しさん@そうだ選挙にいこう:2009/07/20(月) 02:45:55
今回程度の処理なら整数型でも長整数型でも倍精度浮動小数点型でもバリアント型でも
計測できるほどの時間の差はなかんべよ
762名無しさん@そうだ選挙にいこう:2009/07/20(月) 08:06:12
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 使ったことない
【4 VBAでの回答の可否】 否

Sheet1

   A  B  C  D
1  あ  月  火  水 
2  い  木  金  土
3  う  日  月  火
4  え  水  木  金  
5  お  土  日  月 

これを空欄のSheet2に


   A  B  C  D
1  う
2  あ
3  い
4   お
5   え

と入力したら、その行が自動的に並びかれるようにしたいんですけどどうしたらいいでしょうか?
763名無しさん@そうだ選挙にいこう:2009/07/20(月) 08:43:19
>>762
VLOOKUP

使い方はヘルプにて
764名無しさん@そうだ選挙にいこう:2009/07/20(月) 08:58:03
>>762
B1 =VLOOKUP($A1,Sheet1!$A$1:$D$5,2)
C1 =VLOOKUP($A1,Sheet1!$A$1:$D$5,3)
D1 =VLOOKUP($A1,Sheet1!$A$1:$D$5,4)
後A1〜D1コピー、A2:D5選択し貼り付け
765横から:2009/07/20(月) 09:03:22
>764
コピー範囲はB〜D列部分だけですよ。
766764:2009/07/20(月) 09:06:36
あ、そだったね。orz
767762:2009/07/20(月) 09:13:32
ありがとうございます、早いですね。

列が30ぐらいあって、
>>764のB1〜D1を入れてから、
E1以降のはドラッグでコピーすればいいのかなって思ったんですけど、

ドラッグすると
E1 =VLOOKUP($A1,Sheet1!$A$1:$D$5,2)
F1 =VLOOKUP($A1,Sheet1!$A$1:$D$5,3)
G1 =VLOOKUP($A1,Sheet1!$A$1:$D$5,4)

H1 =VLOOKUP($A1,Sheet1!$A$1:$D$5,2)
I1 =VLOOKUP($A1,Sheet1!$A$1:$D$5,3)
J1 =VLOOKUP($A1,Sheet1!$A$1:$D$5,4)

と右端が連番ではなく繰り返しになってしまいます。
これはどうしたらいいんでしょう?
768764:2009/07/20(月) 09:18:07
VLOOKUPの括弧内の最後の数字を加算して下さい。
E1=VLOOKUP($A1,Sheet1!$A$1:$D$5,5)
となります。
769764:2009/07/20(月) 09:33:19
30列全部変えるのが面倒でしたらシート2の頭1行増やしてその行に数字符って
(B1=2,C1=3、・・・)
B2 =VLOOKUP($A1,Sheet1!$A$1:$D$5,B$1)
として縦横にコピペすれば楽ですが。
770764:2009/07/20(月) 09:35:33
また間違えた。
B2 =VLOOKUP($A2,Sheet1!$A$1:$D$5,B$1)
です。orz
771762:2009/07/20(月) 09:37:39
地道に全部変えました・・・

で、またまた問題発生。
ぬりつぶしの色って反映されないんですね。
772762:2009/07/20(月) 09:46:25
調べたらマクロってのを使うのがわかったんだけど、
マクロは昨日時間かけて結局わからないまま終わってしまった。

関数使わないで、
ひたすら切り取って&挿入が早いのかな、めんどいけど。
773名無しさん@そうだ選挙にいこう:2009/07/20(月) 10:13:12
>762
試してないからアレだけど、列に応じて増えていく部分、column()でいけそうな気がする。
(B1=2,C1=3、・・・)って眺めていて浮かんだ。
774名無しさん@そうだ選挙にいこう:2009/07/20(月) 10:16:10
>771
ぬりつぶしは「書式」なので計算式では変更できません。
「条件付書式」ならば状況に応じて変更できますが、具体的にどういうことをしたいですか?
例えば1行おきに色分けするとか?
775762:2009/07/20(月) 10:25:34
しばらく、自分でやってみます。
776762:2009/07/20(月) 10:52:01
ぬりつぶしはなくても大丈夫そうだから、解決!

>>773はできなかった、やり方あってるかわからないけど。

教えてくれたみんなありがとうございました。
777名無しさん@そうだ選挙にいこう:2009/07/20(月) 11:02:13
B1 =VLOOKUP($A1,Sheet1!$A$1:$D$5,COLUMN())
そのままコピー&ペーストいけるね。
778名無しさん@そうだ選挙にいこう:2009/07/20(月) 11:15:55
B1 =VLOOKUP($A1,Sheet1!$A$1:$AE$5,COLUMN())
779名無しさん@そうだ選挙にいこう:2009/07/20(月) 13:36:50
ピボット厨が減ったら、今度はVLOOKUP厨ですか・・・www
780名無しさん@そうだ選挙にいこう:2009/07/20(月) 13:49:44
厨厨うるせーな。
そういうくくりでしか(くくることでしか)物事考えられないのか?
もっと自由度の高い発想でエクセル使おうよ。
781名無しさん@そうだ選挙にいこう:2009/07/20(月) 14:22:23
確かにINDEX+MATCHはVLOOKUPより柔軟に検索できる。
でも検索を柔軟にしようという発想はそもそもデータが汚いから出てくるんだ。
データを正規化してしまえばVLOOKUPしか使わない。
782名無しさん@そうだ選挙にいこう:2009/07/20(月) 14:23:46
VLOOKUPよりLOOKUPだという主張も最近見たけど、
どんなメリットを主張しているのかいまいちわからなかった。
勝手にしたら?と思った。
783名無しさん@そうだ選挙にいこう:2009/07/20(月) 14:38:26
LOOKUPは検査範囲が昇順に並んでないと使えない ここは残念
784名無しさん@そうだ選挙にいこう:2009/07/20(月) 14:40:50
エクセルは楽しいね
ソリティアは10分で飽きるけど、エクセルなら1日中あそべる
785名無しさん@そうだ選挙にいこう:2009/07/20(月) 14:44:30
遊べるからって仕事してる人の邪魔しちゃいけませんよ
パズルやオナニーは一人で楽しんでね
786名無しさん@そうだ選挙にいこう:2009/07/20(月) 15:09:18
おまいら遊んでないで早く大文字小文字混在たまに不要スペースありの検索キーで
縦にデータ(重複あり)横にフィールド名*時系列はみ出たら次シートのデータから
値をとってきて報告書にまとめる作業に戻るんだ
787名無しさん@そうだ選挙にいこう:2009/07/20(月) 15:17:55
そういうのはVBAヲタの使えない部下にやらせる 残業代ぬきで
788名無しさん@そうだ選挙にいこう:2009/07/20(月) 15:19:25
むしろピボット厨にやらすべきでは?w
789名無しさん@そうだ選挙にいこう:2009/07/20(月) 15:24:04
バカデータばっかり作って部下に尻拭いさせてると
結果が自分に返ってくるぞ。
790名無しさん@そうだ選挙にいこう:2009/07/20(月) 15:26:07
そのスレ時々上司キャラ出てくるけど、お前ら本当にそんな立場なの?
VBA厨は本当は中学生なんじゃないの?
791名無しさん@そうだ選挙にいこう:2009/07/20(月) 15:29:27


             ___
           /_ノ ヽ、.\
          ./(●) (●) \ あ〜ピボット厨の相手すんのだりーなぁ   
         /  (__人__)   \    
          |    ノ ノ      |    
         ヽ、 _`⌒'´  .._ /
    ____/⌒``ヽ ,,ー‐,,   "⌒ヽ____
   |____し'⌒/ .    .   /"⌒し′__|::|
   |____(        /_______|::|
    |____/⌒ ヽ、     /______|::|
    |____しイ"i  ゛`   ,,/._______|::|
l二二二二二二 l |二二二二二二二二l__:|
 | |::|   | |::|  し′        | |::|  | |::|
 |_|;;|   |_|;;|            |_|;;|  |_|;;|


792名無しさん@そうだ選挙にいこう:2009/07/20(月) 15:38:01
中学生じゃないピポ
793名無しさん@そうだ選挙にいこう:2009/07/20(月) 16:29:07
>>791
VBA厨の相手するのはだるくない。
とても楽しいぞ。
794名無しさん@そうだ選挙にいこう:2009/07/20(月) 16:37:52
そもそもここはオナニースレだろ
795名無しさん@そうだ選挙にいこう:2009/07/20(月) 18:08:57
>>787
十分使えてるように読めるな
796名無しさん@そうだ選挙にいこう:2009/07/20(月) 18:20:15
VBAしかつかえないんだよ
要領悪いし仕事はできないしコミュニケーション力は皆無だが
ひとが嫌がるめんどい集計だけはいっしょうけんめいやる
あだなはエクセルくん
797名無しさん@そうだ選挙にいこう:2009/07/20(月) 18:24:16
またピポ厨か
お前もVBA使えるようになればいいピポよ
798名無しさん@そうだ選挙にいこう:2009/07/20(月) 18:27:39
このスレに出てくるようなVBAならおれでも書ける
ピボットかけるときVBAで整形すると便利だよ
799名無しさん@そうだ選挙にいこう:2009/07/20(月) 19:15:16
で、ピボットって何が出来てどういう時に使うんだ?
どっちが上とかいいから
800名無しさん@そうだ選挙にいこう:2009/07/20(月) 19:18:40
このスレに書くために決まってんだろ!
100年ROMってろ!ヴぉけ!!!
801名無しさん@そうだ選挙にいこう:2009/07/20(月) 19:23:12
799 :名無しさん@そうだ選挙にいこう :sage :2109/07/20(土) 19:15:16
ピボットについて質問したら「100年ROMってろ」と言われ今日で100年
お久しぶりです

ピボットってなn
802名無しさん@そうだ選挙にいこう:2009/07/20(月) 19:33:44
じゃーさ
ピポットより使い方が限定されてて、しかしながら
そのことをするには最速でできるツールをVBで作ってそれ崇拝しようぜ!
803名無しさん@そうだ選挙にいこう:2009/07/20(月) 19:41:39
質問です
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003SP3
215.15 80
230.93 85
246.66 90
262.85 95
279.25 100

と言うデータから散布図でグラフを作り、多項式近似次数4で近似曲線を追加し、グラフに数式を表示すると
y = 2E-07x^4 - 0.0002x^3 + 0.0576x^2 - 9.1672x + 594.14
という式が得られました

試しにxに元データの215.15を代入して計算してみてもyは80にならず-275とか全然違う数字になってしまうのですが
何が悪いのか解りませんでしょうか?
804名無しさん@そうだ選挙にいこう:2009/07/20(月) 20:05:56
>>798
俺も同じ使い方してるぜ
どっちも便利なんだから両方の長所生かせばいいのにねぇ
805名無しさん@そうだ選挙にいこう:2009/07/20(月) 20:08:30
VBAもピポもワークシート関数もできない奴のオナニー荒らしじゃね
806名無しさん@そうだ選挙にいこう:2009/07/20(月) 20:18:02
>>803
提示されたデータから同じように数式を表示してみたら私の場合、
y=0.3122x+12.887
と表示しましたが。
807名無しさん@そうだ選挙にいこう:2009/07/20(月) 20:18:14
>>802
こういうのを見てるとライブラリとか知らないんだなぁ、とは思うな
もう少しCとか勉強してみては?
ただその知識で十分通用する世界なんだろう
ある意味羨ましくもある
808名無しさん@そうだ選挙にいこう:2009/07/20(月) 20:19:36
俺の職場だと、ピボットは初心者向けだから使えても自慢にならないけど
VBAは自動記録くらいしかできない人が多いので俺は優越感に浸りながら使ってるよ。
809名無しさん@そうだ選挙にいこう:2009/07/20(月) 20:24:12
>>808
別に自慢する必要なんかないって。
お前はピボット使うやつより生産性高いのか?
810名無しさん@そうだ選挙にいこう:2009/07/20(月) 20:25:10
オオオ、オラはVBA厨なんかじゃないブビ
811名無しさん@そうだ選挙にいこう:2009/07/20(月) 20:25:15
俺の職場だと、ソートは初心者向けだから使えても自慢にならないけど
VBAは自動記録くらいしかできない人が多いので俺は優越感に浸りながら使ってるよ。
812名無しさん@そうだ選挙にいこう:2009/07/20(月) 20:32:28
俺の職場だと、ExcelのVBAは初心者向けだから使えても自慢にならないけど
Accessはブラウズくらいしかできない人が多いので俺は優越感に浸りながら使ってるよ。
813名無しさん@そうだ選挙にいこう:2009/07/20(月) 20:38:24
>>806
4次の多項式近似を選ぶと>>803のようになる。おれも試してみた。
ほぼリニアだから1次式でよかったんだな
814名無しさん@そうだ選挙にいこう:2009/07/20(月) 20:40:45
俺の職場だと、Accessは初心者向けだから使えても自慢にならないけど
inaxは便器洗浄くらいしかできない人が多いので俺は優越感に浸りながら使ってるよ。
815名無しさん@そうだ選挙にいこう:2009/07/20(月) 20:44:15
TOTO厨の工作が激しいスレですね
816名無しさん@そうだ選挙にいこう:2009/07/20(月) 21:09:24
inaxは見た目がいいけどTOTOの方が使いやすいよね
817名無しさん@そうだ選挙にいこう:2009/07/20(月) 21:27:35
>>809
計器から出力されたデータを解析するのにエクセルを使ってるから
ピボットの集計じゃだめなんだよね。
わざとエラーを出して、「ぷろぐらむおくみなおすのに3時間くらいかかります」とか言えば、
何の疑いもなく残業できるしwww
818名無しさん@そうだ選挙にいこう:2009/07/20(月) 21:36:09
それはお前が無駄残業するやつってだけで誰も貶せてないピボ
819803:2009/07/20(月) 21:36:10
>>806
線形近似だとその式であってるはずです。
問題は多項式近似の方です。

>>813
このデータ自体は一次式で良いのですけど、なんで多項式にすると計算が合わないのかなぁと・・・
どなたか解りませんかね?
820名無しさん@そうだ選挙にいこう:2009/07/20(月) 21:39:13
エクセル2003使用です。
行内に文字を入力する際
2行分を使って文字をおおきくしたいのですが
行より大きく表示した場合、文字が隠れてしまいます。
これは仕様ですか?
821名無しさん@そうだ選挙にいこう:2009/07/20(月) 21:42:21
セルを結合するピボ
822名無しさん@そうだ選挙にいこう:2009/07/20(月) 21:47:26
>>820
・行全体大きくする→セルの高さを広げる
・一部の列だけ大きくする→セル結合
・表の中の一部分→セルに入れるよりテキストボックスのほうか何かと便利かも
823名無しさん@そうだ選挙にいこう:2009/07/20(月) 23:07:24
>>821,822

これで前に進めます。ありがとうございました。
824名無しさん@そうだ選挙にいこう:2009/07/20(月) 23:14:00
ごめん。VBAは自動記録しか出来ないわ
825名無しさん@そうだ選挙にいこう:2009/07/20(月) 23:41:44
ブイバ って何?
826名無しさん@そうだ選挙にいこう:2009/07/20(月) 23:52:01
ブイバ でググるピボ
827XP, 2002使い:2009/07/20(月) 23:55:36
「このブックにはほかのデータリンクが設定されています」
というメッセージが出たとき、どこのセルが対象となってるか調べるには
どうすればいいですか?

828名無しさん@そうだ選挙にいこう:2009/07/21(火) 00:23:31
なんで語尾にいろいろつけるんだよw
829名無しさん@そうだ選挙にいこう:2009/07/21(火) 00:28:39
夏休みだからドグル
厨がわいたドグルよ
830名無しさん@そうだ選挙にいこう:2009/07/21(火) 01:50:56
半日見てなかったらひでーなここは
やたら低ラベルな発言が多いが基地外が一人で荒らしてるのか?
831名無しさん@そうだ選挙にいこう:2009/07/21(火) 03:39:07
すいません連休でヒマだったのでずっと自演してましたもう寝ます
832名無しさん@そうだ選挙にいこう:2009/07/21(火) 08:31:15
>827
"["で検索してみてください。
833名無しさん@そうだ選挙にいこう:2009/07/21(火) 12:19:13
>>817
少なくとも社会人ではあるようだが、どうみても下っぱの行動だな。
834名無しさん@そうだ選挙にいこう:2009/07/21(火) 16:44:35
俺も無駄残業やるわwwwwww
「ぴぼっとににゅうりょくするのに3時間くらいかかります」とか言えば、
何の疑いもなく残業できるしwww
835名無しさん@そうだ選挙にいこう:2009/07/21(火) 16:53:29
確かに下っぱっぽいな
836名無しさん@そうだ選挙にいこう:2009/07/21(火) 17:25:56
ここはお前達のようなしたっぱが来ていいところではない……失せろ!!



この俺が食い止めている今のうちに……っ!
837名無しさん@そうだ選挙にいこう:2009/07/21(火) 17:32:23
お前らがピボピボゆうから質問者がこねーじゃねーか
838名無しさん@そうだ選挙にいこう:2009/07/21(火) 17:40:12
Excelテーマにした漫画誰か描いてくれねーかな
主人公がExcelを活用して敵と戦う
「ピボット皇子が倒された?惜しい奴を失ったのう・・・」
「いえ、奴は我らExcel四天王の中では一番の未熟者。次はこのVBA王子が」
みたいな
839名無しさん@そうだ選挙にいこう:2009/07/21(火) 17:41:44
夏休み入ってからgdgdだなw
840名無しさん@そうだ選挙にいこう:2009/07/21(火) 17:45:37
夏休みって何?おいしいの?
841名無しさん@そうだ選挙にいこう:2009/07/21(火) 17:45:41
「くそ・・こうなったら・・必殺!クロス集計!!」
エクセル先生の次回作にご期待ください
842名無しさん@そうだ選挙にいこう:2009/07/21(火) 18:01:01
このスレ終わったな
ピボットスレに行くか
843名無しさん@そうだ選挙にいこう:2009/07/21(火) 18:17:36
マイコン刑事という漫画をふと思い出した
844名無しさん@そうだ選挙にいこう:2009/07/21(火) 18:35:01
ピボット好きなんだけど引き算が難しい。
苦肉の策で予算額を正、執行額を負の数にして残額だしたりしてる
集計フィールドや集計アイテムで数式を設定すればいいんだろうけど、
表が大きすぎるせいかエラーになるし。
845名無しさん@そうだ選挙にいこう:2009/07/21(火) 18:56:14
裏六道の描くエクセルと聞いて
846名無しさん@そうだ選挙にいこう:2009/07/21(火) 19:12:02
すみません 初歩的な質問なのですがお願いします。
関数なのですが 例えば

=if(p10=0,"a","b")

だとp10がもし 0 ならば a になるって式なんですが
     もし 0 ならば p20 を a にする って式は出来ない
のでしょうか?

=if(p10=0, p20"a" ,"b")
      ↑     
    この部分はどのように記入すればいいのでしょうか?
計算結果を任意の場所に出力する事は出来ないのでしょうか?

よろしくお願いします。


847名無しさん@そうだ選挙にいこう:2009/07/21(火) 19:25:45
>>864
p20に「=if(p10=0,"a","b") 」を入れる
848名無しさん@そうだ選挙にいこう:2009/07/21(火) 19:26:10
p20に=if(p10=0,"a","b")を入力する
849名無しさん@そうだ選挙にいこう:2009/07/21(火) 19:30:20
回答ありがとうございます。
やはり別の任意の場所には反映する事は出来ないみたいですね。
850名無しさん@そうだ選挙にいこう:2009/07/21(火) 19:35:02
>>849
それがしたければVBAでWorksheet_Changeを使う
851名無しさん@そうだ選挙にいこう:2009/07/21(火) 19:41:54
なるほど ありがとうございます。
早速調べてみます。
852名無しさん@そうだ選挙にいこう:2009/07/21(火) 19:50:18
>>844
苦肉の策というか、正攻法、定石、常識の類いだろう。
そのアプローチで何の問題もない。
853名無しさん@そうだ選挙にいこう:2009/07/21(火) 19:57:04
>>852
自分だけの資料ならまだしも 他人に見せるとなると見た目が悪い。
しょうがないので値だけコピーでふつうの表にして符号を反転してるけど。
854名無しさん@そうだ選挙にいこう:2009/07/21(火) 20:20:41
>>853
計算用の作業列作って見せる時は非表示にしておけばいいのに。
855名無しさん@そうだ選挙にいこう:2009/07/21(火) 20:32:34
ピボットに作業列なんてものはない
表示したものはすべて合計されてしまう

元の表は予算と執行が別の行だから作業列に残額は出せないし
856名無しさん@そうだ選挙にいこう:2009/07/21(火) 20:49:13
>>855
ああ、レポートの方の話ね。
元データかと思った。
857名無しさん@そうだ選挙にいこう:2009/07/21(火) 21:16:02
>>849
なぜ>>847-848では駄目なのか具体的に書かないとどんどんあさっての方向に旅立ちそうな気がしてならぬ
858名無しさん@そうだ選挙にいこう:2009/07/21(火) 21:23:58
>>857にレスをして遥かなる旅路へと羽ばたこう!
859名無しさん@そうだ選挙にいこう:2009/07/21(火) 21:25:03
Excel2007で

A列に 常に5桁で
00001
00002
00003


99999

と連続して入力したいのですがどうすればよいでしょうか(´・ω・`)
860名無しさん@そうだ選挙にいこう:2009/07/21(火) 21:33:59
sub aaa()
for a = 100001 to 160000
b = mid(cstr(a),2,5)
cells(a,1)=b
next
end sub

うまくいくかわからん
とりあえず99999まではいかないから60000まで
861名無しさん@そうだ選挙にいこう:2009/07/21(火) 21:36:25
固まった(´・ω・`)
862名無しさん@そうだ選挙にいこう:2009/07/21(火) 21:39:10
すまんこ escキーで止めてくれ
こっちで

Sub aaa()
Dim b As String
For a = 100001 To 160000
b = Mid(CStr(a), 2, 5)
Cells.NumberFormatLocal = "@"
Cells(a - 100000, 1) = b
Next
End Sub
863名無しさん@そうだ選挙にいこう:2009/07/21(火) 21:40:37
>>862
ありがとう(´・ω・`)

864名無しさん@そうだ選挙にいこう:2009/07/21(火) 21:45:26
たびたびすまん
これで

Sub aaa()
Dim b As String
For a = 100001 To 160000
b = Mid(CStr(a), 2, 5)
Cells(a - 100000, 1).NumberFormatLocal = "@"
Cells(a - 100000, 1) = b
Next
End Sub
865名無しさん@そうだ選挙にいこう:2009/07/21(火) 21:49:01
>>864
画面の更新止めないならせめて
配列に溜めて1回で書き出そうぜ
866名無しさん@そうだ選挙にいこう:2009/07/21(火) 21:59:12
バリ型10000以上の配列ってヤバくね
867名無しさん@そうだ選挙にいこう:2009/07/21(火) 22:00:53
>>859
見た目が5桁でよければ
A1に1を入力
ホームタブ→編集→フィル→連続データ作成→範囲「列」→停止値「99999」
A列のセル書式に表示形式→ユーザー定義→00000
の方が早いかもな
868名無しさん@そうだ選挙にいこう:2009/07/21(火) 22:07:22
こうじゃね?

Sub aaa()
Dim b As String
Columns("A:A").NumberFormatLocal = "@"
For a = 100001 To 160000
b = Mid(CStr(a), 2, 5)
Cells(a - 100000, 1) = b
Next
End Sub
869名無しさん@そうだ選挙にいこう:2009/07/21(火) 22:11:50
>>859-864
こんなものにわざわざVBA使うのかよ。
>>867でもいいし、似たような方法ならA列の表示形式を文字列(@)にして、A1以下ならA1:A99999を選択して
1(なんでもいい)を打ってCtrl + Enterで全体に1を入力。
A2に00001と入力してからA2の右下隅にカーソルを持って行って+のフィルハンドルが現れたらダブルクリック。
表示形式が標準のままなら上の手順で00001の入力を'00001と頭にアポストロフィをつけるだけ。
VBAのお勉強ならVBAを否定しないけどな。
870名無しさん@そうだ選挙にいこう:2009/07/21(火) 22:12:33
教えてほしいのだけど、どうして10001からループしているの?
Formatだと遅いから? でもそれならRight使った方がMidよりは速そうだけど。
871名無しさん@そうだ選挙にいこう:2009/07/21(火) 22:17:34
>866
2元ならやばくない
ぶっちゃけありえなくもなくない
シートに配列で流し込む動作は「マジでっ!?」ってくらい早い
872名無しさん@そうだ選挙にいこう:2009/07/21(火) 22:17:48
こんなんピボットテーブルであーしてこーすれば一発だな
873名無しさん@そうだ選挙にいこう:2009/07/21(火) 22:18:10
しかしまぁVBAの勉強でもなんだかね。
普通Format関数を使いそうなものだが。
0000の文字列と1〜99999をくっつけて右5文字でもいいけどな。
874名無しさん@そうだ選挙にいこう:2009/07/21(火) 22:19:23
ありゃま、>>870がすでに書いてたよ。
875864:2009/07/21(火) 22:20:21
配列って知らなかった・・
876名無しさん@そうだ選挙にいこう:2009/07/21(火) 22:46:58
こんなこと俺ならvba使わんけど
もしやっつけ作業で必要ならこうするかな?
sub test()
with range("A1:A99999")
.formula="=text(row(),"00000")"
.numberformat="@"
.value=.value
end with
end sub

ってかvbaスレじゃなくてこっちで話すならこんな感じの方が好み
877名無しさん@そうだ選挙にいこう:2009/07/21(火) 23:07:14
COUNTIFを使って1000以上の値の数を数えるとき、検索条件で
">=1000"
ではなく
A1に1000を入れて
">=A1"
とすると動かないのですが
どのようにすればいいのでしょうか
878名無しさん@そうだ選挙にいこう:2009/07/21(火) 23:10:42
>877

つ ">="&A1
879名無しさん@そうだ選挙にいこう:2009/07/21(火) 23:30:25
>>878
ありがとうございます
880名無しさん@そうだ選挙にいこう:2009/07/22(水) 04:00:28
ここでいいのかな 教えて下さい。
XPだとExcel2007は使えませんか?2003がいいの?
どっちもベクターにないみたいなんだけど
881名無しさん@そうだ選挙にいこう:2009/07/22(水) 05:55:47
>>880
どっちも積めるはず
2003は中古市場しか手に入らないけどな
積極的に2003にしたい理由がなければ普通に買える2007でいいんじゃね?
882名無しさん@そうだ選挙にいこう:2009/07/22(水) 06:46:33
>>881
サンクス

お金 取るの? お金 ない
883名無しさん@そうだ選挙にいこう:2009/07/22(水) 06:56:04
>>882
マジかネタか知らんがExcelは有料ソフト。
金ないならあっちいけ
OpenOffice.org 総合相談所 6
http://pc11.2ch.net/test/read.cgi/bsoft/1239637122/
884名無しさん@そうだ選挙にいこう:2009/07/22(水) 07:19:54
>>883
ホントに? いくらくらいすんの?
じゃあ家で仕事したりモス?練習のためにみんな買ってるの?!
885名無しさん@そうだ選挙にいこう:2009/07/22(水) 07:30:35
>>884
tp://www.sofmap.com/search_result/exec/?keyword=OFFICE&styp=p_wsr
DSPのオフィスは33000円。
エクセル単品は見つからないが10000円は超えるだろう

俺は中古ノートについてきた奴使ってる。本体5000円でエクセルも付いてきた
中古はいいよ
金が無いなら>>883。一時期俺も使ってたけど使い勝手はほとんど変わらない
886名無しさん@そうだ選挙にいこう:2009/07/22(水) 07:42:34
>>885
高っ!
いや実は就職のためにパソコン使えるようになろうと思って。
その中古の話もちっと教えて下さい。
あ〜でも出かけるのでレスは遅くなります
887名無しさん@そうだ選挙にいこう:2009/07/22(水) 07:49:21
就職したいならそれぐらいの金はケチらないほうがいいよ
どうせ後で返ってくる
中古は中古ショップ行ってエクセル(office)込みで安いの欲しいって言えば買えると思う
それかトラブル多いけどヤフオクならもう少し安いかも
888名無しさん@そうだ選挙にいこう:2009/07/22(水) 09:45:23
俺はパソコン買う時にOffice付きのやつを選んだ。
中古でもいいけどバージョンには気をつけろ。
889名無しさん@そうだ選挙にいこう:2009/07/22(水) 11:35:41
ただいま
バージョンですか?2003が安そうなんでそれにします。
ニコニコ動画でエクセルを調べているんですが、
なんか私の思ってたエクセルとは違うのかなあ
890名無しさん@そうだ選挙にいこう:2009/07/22(水) 12:14:10
ニコのエクセルは本来の使い道からそれた曲芸みたいなものと思ってok
本来はめちゃくちゃ地味だよ

バージョンは2003と2007を選ぶことになると思うけど、
使い勝手は結構違う
2007の見た目を2003風にするものはあるから2007ならとりあえず大丈夫
891名無しさん@そうだ選挙にいこう:2009/07/22(水) 12:31:22
エクセルすげえ!らきすたとかアイマスできるんだな。
これは私でも覚えが早いかもしれない
ところで無料のOpenOfficeも調べてみたんだけど、
互換性あるみたいだけどやっぱり劣りますか?
892名無しさん@そうだ選挙にいこう:2009/07/22(水) 12:49:54
いや、それはVBAというエクセルの機能なんだが、少し勝手が違う物を覚える必要があってだな・・
893名無しさん@そうだ選挙にいこう:2009/07/22(水) 13:14:48
セルドットによる疑似動画処理はエクセル本来の使い方じゃないしな
DBMSを構築して制御するにはDBソフトのほうが優れてるし
894名無しさん@そうだ選挙にいこう:2009/07/22(水) 13:56:47
>>891
ニコ動にあるムービーはExcelの間違った使い方。
動画を展開して静止画を取り出す方法とか
プログラミングの知識がかなり必要。
Excelだけをどれだけ勉強しても無理。
895名無しさん@そうだ選挙にいこう:2009/07/22(水) 16:39:54
買ったにょ〜ん。
Office Personal Edition 2003 店員さんが奥から出してくれたw 超ラッキーww
Word2003、Excel2003、Outlook2003、Office Home Style+が入ってる
すっげCDキラキラしてるww なんかロビーの絵かなw カックイイ!
あと できるExcel2003

とりあえず並べ替えて速くするをやってからインストールするよ
Outlookはサンダーバードあるからいらないからカスタムインストールで
Word2003、Excel2003だけ入れます。
896名無しさん@そうだ選挙にいこう:2009/07/22(水) 16:45:49
よかったね、おめでとう
これで君は任天堂の役員だ
897名無しさん@そうだ選挙にいこう:2009/07/22(水) 17:29:19
SQL入れてぐーぐる、ACC入れてMSを目指すんず!

で、ニコニコのエクセルってどれよ
898名無しさん@そうだ選挙にいこう:2009/07/22(水) 17:44:24
sm6247551
sm586011
899名無しさん@そうだ選挙にいこう:2009/07/22(水) 17:59:11
900名無しさん@そうだ選挙にいこう:2009/07/22(水) 18:05:44
オートシェイプとかゲーム開発エクセルの手法じゃねえか
入門には参考にならんだろ

興味を持つきっかけにはなるかもだけど
901名無しさん@そうだ選挙にいこう:2009/07/22(水) 20:47:01
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000

以前、このスレで紹介されていたものを参考に書いたマクロでの質問です。

Sheet1のN列にあるデータがSheet2のA列にあるデータと合致したら、
Sheet1のW列に"K"を書くようにしています。

N = .Cells(i, 14).Text
Set KP = Worksheets("Sheet2").UsedRange.Columns(1).Find(What:=N, _
LookIn:=xlValues, LookAt:=xlPart)
 If Not KP Is Nothing Then
  .Cells(i, 23) = "K"
 End If
Set KP = Nothing

これだと、完全に合致しないとダメぽなので、Sheet2のデータから始まるものを
分岐したいのですが、どう書けばいいでしょうか?

N列のデータ
A100   ←おk
A1100   ←おk
A100   ←おk
B1000   ←ダメぽ
B2100  ←ダメぽ
C200   ←おk

Sheet2のA列
A1
A11
B200
C20
902名無しさん@そうだ選挙にいこう:2009/07/22(水) 20:49:58
なぜVBAスレにいかない?
ここにも紙は降臨するけど、最近は確率低いぞ(`・ω・´)
903名無しさん@そうだ選挙にいこう:2009/07/22(水) 21:04:25
>>901
N = .Cells(i, 14).Text & "*"
904名無しさん@そうだ選挙にいこう:2009/07/22(水) 21:28:32
日本語がわかんない
905名無しさん@そうだ選挙にいこう:2009/07/22(水) 22:04:52
えー、質問する人は、ピボットで集計できそうなのを考えてくださいね
906名無しさん@そうだ選挙にいこう:2009/07/22(水) 23:12:17
>>901
関数でも簡単じゃねーの?
まずSheet2のA列を昇順にソートして見出しを除いた範囲に"範囲"と名前定義
以上の前準備を済ませてからO2の式を
=IF(ISNUMBER(FIND(LOOKUP(N2,範囲),N2)),"おK","ダメぽ")
で出来そうな感じだが。
これで正しければ同じ考え方でVBAでもできるけどな。

フィルタオプションの前方一致でも出来るけど見つからない場合前から総当たりだから遅い。
907名無しさん@そうだ選挙にいこう:2009/07/22(水) 23:12:59
>>901
N列のデータ
for k = 1 to 最終行
A100  //(cells(k,13))に関して
for i = 1 to len("A100")
if "A"と完全一致 then cell~K
if "A1"と完全一致 then cell~K
〜leftでlen("A100")になるまで繰り返し
next
next
大体のコードは思いつくけど飲みすぎて吐きそう
また今度・・
908名無しさん@そうだ選挙にいこう:2009/07/23(木) 01:44:01
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003

エクセルをfc2ブログに載せるにはどうしたらいいでしょうか?

webページで保存してアップロードをしたんですけど、
そのURLをクリックすると
「ご指定のファイルが見つかりませんでした」
になってしまいます。
909ぱり:2009/07/23(木) 03:24:53
今週の金曜日までに提出なんです
授業全く出てなくて全くわかりません
心優しい方がいKらっしゃいましたらお願いしします

U   Excelを用いて重回帰 (説明変数が2個以上)分析を行い、結果についてコメントしなさい。
注意
@ データは15組以上
A 分析の目的、結果についてのコメント(係数の値の評価等)を書くこと
B t検定で説明変数を外し、結果として単回帰となった場合はその旨を明示すること。

910名無しさん@そうだ選挙にいこう:2009/07/23(木) 03:36:12
>>909
【審議中】
    ∧,,∧  ∧,,∧
 ∧ (´・ω・) (・ω・`) ∧∧
( ´・ω) U) ( つと ノ(ω・` )
| U (  ´・) (・`  ) と ノ
 u-u (l    ) (   ノu-u
     `u-u'. `u-u'







【お断りします】
     ハ,,ハ  .ハ,,ハ
  ハ,,ハ( ゚ω゚ )( ゚ω゚ ) ハ,,ハ
 ( ゚ω゚ ).ハ,,ハ) (.ハ,,ハ)( ゚ω゚ ) 
 | U ( ゚ω゚ )( ゚ω゚ ) .と ノ
  u-u (l    ) (   ノu-u
      `u-u' `u-u'
911名無しさん@そうだ選挙にいこう:2009/07/23(木) 03:37:56
>>909
      ハ,,ハ ハ,,ハ
     ( ゚ω゚ )゚ω゚ )
    /    \  \    教育上お断りします
  ((⊂  )   ノ\つノ\つ))
     (_⌒ヽ ⌒ヽ
      ヽ ヘ } ヘ }
  ε≡Ξ ノノ `Jノ `J
912ぱり:2009/07/23(木) 03:57:47
お願いしますょー
私別に情報系じゃないんでとかいって明治の情コミですけど笑EXCELとか今期だけなんでホントおねがいします
913名無しさん@そうだ選挙にいこう:2009/07/23(木) 07:07:56
>>912
てめーなんか単位落とせばいいんだよ、カスが。
914906:2009/07/23(木) 10:39:51
>>901のN列のデータが前方アルファベットで後方数字なら>>906の式で問題ないが
N列が"A13A11"とかの文字列だと"おk"になってしまう。
このようなケースが考えられるのであれば下になる。
=IF(ISNUMBER(FIND(LOOKUP(N2,範囲),N2)),IF(FIND(LOOKUP(N2,範囲),N2)=1,"おk","ダメぽ"),"ダメぽ")
同じ計算を二度やってて無駄なので作業列使った方がいいけどな。
915名無しさん@そうだ選挙にいこう:2009/07/23(木) 11:19:48
エラーを判断するとき、
セルC1=IF(ISNA(MATCH(省略),0,MATCH(省略))

セルD1=MATCH(省略)
セルC1=IF(ISNA(D1),0,D1)
とではどっちを用いるのが良いでしょうか?
或いは他に良い方法があれば教えて下さい。
916名無しさん@そうだ選挙にいこう:2009/07/23(木) 11:25:57
>>915
同じ計算を二度やらない後者がいいのは常識。
データが多いとき有るか無いかをMATCHの0検索でやるやつはあまり利口ではない。
COUNTIF使うやつよりは少しはマシかも知らんけどな。
データが多いときは範囲をソートしてLOOKUPが普通。
917名無しさん@そうだ選挙にいこう:2009/07/23(木) 12:06:51
>>916
ありがとうございます
918名無しさん@そうだ選挙にいこう:2009/07/23(木) 12:08:57
きのうExcel2003の勉強を始めたものです。
B2 B3 B4 B5に1〜4を入れてその+-*/をD2 D3 D4 D5に計算させることに成功しました。
これがあれば例えばB3の数字を変えるとDの値も自動で変化する、ってのがExcelなんですね

ここのレベルって高いなあ なんか稚拙で申し訳ない。
いろいろ聞きたいことがあるんだが教えてください

@自分で作れることは必須になるんだろうけど実際にはよいテンプレートを拾ってくるもの?
A>7の質問レベルってどのくらい?
B>7って力だめしっぽいんだけど仕事ってこういうことするの?
C就職面接でExcelできますっ、って言えるのはどのくらいやればいい?

片手間でいいんでお願いします。
919名無しさん@そうだ選挙にいこう:2009/07/23(木) 12:26:44
>>918
>>7の質問の内容だけど、正直言ってExcelの機能や制限をきちんと理解してるとは思えない。
そういう意味では>>7自身のレベルはそれほど高くないとも言えるが、
やろうと思えば不可能ではないのと、そのとおりちゃんと作るには
ちょっとしたテクニックが必要になるので、知識として知っているだけなら、
これができてしまう人のレベルはそこそこ高いとも言える。
(実際にやるかどうかは別として)

仕事で必要かどうかは、上司がExcelのこをちゃんと理解していないと
こういう無茶なことをやらされる可能性はある。
そこで「そんなことやるべきではありません」と反抗できるやつは、
なかなかいないと思うんで、できないよりはできる方がいい。
920名無しさん@そうだ選挙にいこう:2009/07/23(木) 12:59:32
>>918
テンプレートは請求書やFAXの送付状は拾ってきたけど
ほとんどは自分で作ったな
>>7は変な仕事だから気にしなくてokだけど変な会社だとこういう作業が必要になる場合もある
4のエクセルできる、は難しいな。とりあえず値と数式の違いが分かっていないと厳しい
921915:2009/07/23(木) 14:49:36
>>916
もう1つ教えて下さい。
参照項目が複数ある場合、MATCHで行を求めておき、OFFSETまたはINDEX
で複数列を編集する場合でも、複数列の編集に各々LOOKUPを使用する
方が良いですか?
922名無しさん@そうだ選挙にいこう:2009/07/23(木) 14:59:41
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ

どなたか教えてください。
ひとつのブックに、シートが50ほどあります。
それを全部印刷しなくてはなりません。
シートに通し番号はついていますが、飛び飛びになってます。
印刷もれのないようにしたいのですが
シート名の一覧を印刷したりできませんか?
画面を見つつ、出力したものと照らし合わせつつ…という方法しか
ないのでしょうか?
それぞれのシートの内容はばらばらで、印刷設定もその都度変えなければ
いけない状況です。
よろしくお願いします。
923名無しさん@そうだ選挙にいこう:2009/07/23(木) 15:12:30
>922
VBAを使わずに一番簡単なのは ファイル-プロパティ で「ファイルの構成」タブの画面をコピー
してエクセルのシートに貼り付けて・・・を繰り返してから印刷かな。
50シートだと一画面に収まらないので、ドラッグしながら数画面分貼り付けることになる。
画面のコピーは[alt]キーを押しながら[PrtSc]プリントスクリーンで、当該ダイアログだけコピーできる。
VBAを使う方法は誰か別の人が教えてくれるでしょう。
924名無しさん@そうだ選挙にいこう:2009/07/23(木) 15:20:18
>>922
VBAで回答していいのかと思ったらダメなのか。
エラーも何も考えてないけどよければ↓どうぞ
Sub a()
For i = 1 To 100
Cells(i, 1) = Sheets(i).Name
Next
End Sub
925922:2009/07/23(木) 15:20:48
>923
ありがとうございます!
ちょっと急ぎなので、この方法でやってみますね。
助かりました。
926922:2009/07/23(木) 15:22:11
>924
勉強不足ですみません…
でも、ありがとう。
927名無しさん@そうだ選挙にいこう:2009/07/23(木) 15:30:20
シートを全部印刷って、印刷ウィンドウの印刷範囲で「ブック全体」を選べばいいだけとか
そういうレベルの話じゃないの?
個別の印刷設定は、一度でも印刷すればシートごとに違っててもちゃんと保存されたはず。
928名無しさん@そうだ選挙にいこう:2009/07/23(木) 15:58:47
>>927
>シート名の一覧を印刷したりできませんか?
恐らく確認用かと
929名無しさん@そうだ選挙にいこう:2009/07/23(木) 17:36:09
>>921
まずOFFSETは使っちゃいかんだろうよ。
ここはINDIRECTやらOFFSETやら平気で使うDQNが多杉だけどな。
大量データで複数列を参照する場合はLOOKUPじゃなくてMATCHの照合の型1を作行列で使う。
あとはもちろんINDEXと組み合わせるが、作業列はもう1列必要だ。

しかしお前分ってる上で質問してるんじゃないか?
930名無しさん@そうだ選挙にいこう:2009/07/23(木) 18:05:42
分ってると思うけどMACTHの照合の型1だからソートした上で使うんだからな。
931名無しさん@そうだ選挙にいこう:2009/07/23(木) 18:32:33
シートって全選択できなかったっけ
とりあえず左下のシート矢印を一番左にして、右クリックするとシートの一覧がでる
ctr押しながらシートを左クリックで複数選択できる
932名無しさん@そうだ選挙にいこう:2009/07/23(木) 18:33:49
>>924
シートの選択ならばfor eachを使った方が洩れがなくなる
俺は使わないけど
933名無しさん@そうだ選挙にいこう:2009/07/23(木) 19:06:34
ctrl+shift+pagedown
で複数選択していけるぜ
934名無しさん@そうだ選挙にいこう:2009/07/23(木) 19:25:28
>>924って作業用のシート作ってアクティブにして動かさないといけないじゃないか
なんと言う地雷w
935名無しさん@そうだ選挙にいこう:2009/07/23(木) 19:27:35
>>934
標準モジュールに入れろよw
936名無しさん@そうだ選挙にいこう:2009/07/23(木) 19:56:57
>>935
どこに入れたかが問題なんじゃなくいぞ
マクロ動かした時点でアクティブなシートにシート名書いちまうのが問題なんだろうがww
937名無しさん@そうだ選挙にいこう:2009/07/23(木) 19:57:15
for〜 nextならば
for i = 1 to Worksheets.count
  '処理
next
などとするんだろうがfor each〜nextより汚いわな。
938名無しさん@そうだ選挙にいこう:2009/07/23(木) 19:59:10
>>936
スマン、見落としてたぜ
本人も何も考えてないって言ってるし今回は許す
939名無しさん@そうだ選挙にいこう:2009/07/23(木) 20:02:35
>922の質問者は>923の画面コピペでやってみると書いたので、セーフかな。

同じようなことをやろうとしてた人がセーブせずにVBAを試して今頃泣いてるかも。
940名無しさん@そうだ選挙にいこう:2009/07/23(木) 20:17:22
>>921
VBAが少し出来る俺よりレベル高いよ
昨日はじめたとはとても思えない
941名無しさん@そうだ選挙にいこう:2009/07/23(木) 20:19:14
>940

自分の馬鹿さ加減をアピールしなくても良いですよw
942901:2009/07/23(木) 20:32:15
901です。
レスをしてくださった方、ありがdございます。
すみませんが、急きょ出張となってしまったので、検証は帰ってきてからと
させて頂きます。(たぶん、来週です)
943名無しさん@そうだ選挙にいこう:2009/07/23(木) 20:33:12
>>921が昨日始めたってどこに書いてる?
そこいらのVLOOKUPを使いよりかなり出来そうだが。
944名無しさん@そうだ選挙にいこう:2009/07/23(木) 20:33:57
雑談スレ池
945名無しさん@そうだ選挙にいこう:2009/07/23(木) 20:52:13
きたかチョウさん待ってたホイ
946名無しさん@そうだ選挙にいこう:2009/07/23(木) 22:07:37
Excelの勉強を今から始めるつもりの者です。
調べたところ、2003と2007では操作の違いや互換性が問題になると知りました。
ただ、2003を未だに採用しているところも多いと聞きます。
今から始めるには、やはり2007で操作を覚えていくの良いでしょうか。
947名無しさん@そうだ選挙にいこう:2009/07/23(木) 22:22:01
>>918
>>921 を同一人物かと思った スマン
948名無しさん@そうだ選挙にいこう:2009/07/23(木) 23:06:20
>>946
実務レベルではまだ2003が圧倒的。
でもやがてなくなるだろうし個人レベルだと2007率かなり高くなってる気がするし、
超特急で実務知識を!でなければ2007かな?


でもどっちで勉強してもひととおりの操作がわかればどっちでもつかえるはず。
表だった違いはそれぞれのメニューの場所くらいだし。
949名無しさん@そうだ選挙にいこう:2009/07/23(木) 23:17:48
>>948
なるほど。
実務で即戦力を身につけるとすればやはり2003なのですね。
関連書籍も安くなっているようなので、2003で学んでいこうと思います。
ありがとうございます。
950名無しさん@そうだ選挙にいこう:2009/07/23(木) 23:29:12
>>949
関連書籍まで買って勉強するならケチらず2007"にも"対応の奴を買ったほうが
いざ2007を差し出された時の対応力が違うぞ。
951名無しさん@そうだ選挙にいこう:2009/07/23(木) 23:44:13
俺の会社は2000だけどな
2003で十分だと思う
952名無しさん@そうだ選挙にいこう:2009/07/23(木) 23:45:15
Windows95が出た時もMS-DOSで十分っていうひとがたくさんいたよな
953名無しさん@そうだ選挙にいこう:2009/07/23(木) 23:50:22
そうだけどな
それにしても2007は変化し杉。
おじさんはついて逝けない
954名無しさん@そうだ選挙にいこう:2009/07/24(金) 00:08:46
新しいバージョンがどんどんスタンダードになっていくというのに何が悲しくて
旧バージョンを購入しようとしているのだろう。
955名無しさん@そうだ選挙にいこう:2009/07/24(金) 00:11:45
>>953
上の方で紹介されてたフリーウェア入れろや
956名無しさん@そうだ選挙にいこう:2009/07/24(金) 00:12:56
Office2003だと、オフィスバーが無くなったからな・・・
Excel2003もお節介機能がウザい。
2000で十分。
957名無しさん@そうだ選挙にいこう:2009/07/24(金) 00:15:42
一般事務ならoffice95でもまだ現役で使ってるぞ。OSは98だし
スタンダードになろうと必要の無いものは必要ないよ
>>955
OOoは少しクセがあるよ。
就職のために〜と言ってる本当の初心者にはあまり薦めないほうがいいかも
エクセル、ワードは中古で本体ごと買え一番安く付く
958名無しさん@そうだ選挙にいこう:2009/07/24(金) 00:23:58
>一般事務ならoffice95でもまだ現役で使ってるぞ。OSは98だし
自慢できることではないな。
むしろ会社の資金繰りがうまくいってない印象がする。
959名無しさん@そうだ選挙にいこう:2009/07/24(金) 00:31:11
資金繰りというより
PCの更新に興味がないと思う
960名無しさん@そうだ選挙にいこう:2009/07/24(金) 00:36:21
9X系はもうサポート切れてなかった?
961名無しさん@そうだ選挙にいこう:2009/07/24(金) 00:39:27
切れてる
962名無しさん@そうだ選挙にいこう:2009/07/24(金) 00:47:19
>>958
古いバージョン使ってる会社の方が安定した中堅企業のイメージあるけどなー 受け取り方も人それぞれだな。
以前からExcel使ってる会社の場合、バージョンアップのメリットあまりない気がするもの。

上の相談と別として書けば個人的には2003以前(できれば2000以降の方がマクロとかで互換性が)が好きだけど
2007でファイル形式を根本的に変えたところを見るとこの流れに乗れないとゆくゆく困るかも、という気はしてる。
特にvba厨としては今後の流れに要注意かも。(ピボット先生はまだまだ安泰かもね)
963名無しさん@そうだ選挙にいこう:2009/07/24(金) 00:52:00
2000→2003は普通に便利になったから喜んでバージョンアップしたけど、
2007はもう方向性違うからな。。。
964名無しさん@そうだ選挙にいこう:2009/07/24(金) 01:50:27
料理のレシピを何十か書きたくて、同じ様式で後から見やすくしたいんだけど
一つのファイルでシートを複数にするとか
レシピと同じだけの数のファイルを作るかでなく
料理名をドロップダウンから選んでレシピを表示させる、なんてのはできるんでしょうか?
できるなら参考になるURLとか教えて頂けるとありがたいです
965名無しさん@そうだ選挙にいこう:2009/07/24(金) 02:40:54
それはファイルでなくブックでは?
と918の私が言ってみるw

オートフィルって便利だね。
3章の罫線まで一気にやったけど書式のコピーが難しいや
VLOOKUPに早く会いたいな。

>>919 >>920
ありがとうございました。
966名無しさん@そうだ選挙にいこう:2009/07/24(金) 07:46:05
>>964
入力規則のリストって奴
ttp://www.relief.jp/itnote/archives/001190.php

作った方が早いので作った。参考に
ttp://www1.axfc.net/uploader/Sc/so/20378.xls
967名無しさん@そうだ選挙にいこう:2009/07/24(金) 08:03:58
>>964
レシピ集って普通増えていくものでしょ
入力規則つかうとメンテたいへんかも(マクロ使えるなら簡単だけど)
目次のシート作ってハイパーリンク設定しとく方が何かと便利で簡単なような
ブック内だけでなくネットで見つけたレシピとかのリンクも混ぜられるし
968名無しさん@そうだ選挙にいこう:2009/07/24(金) 09:03:45
>>967
リストの範囲(A:A)に名前をつければ追加されても使えるよ
969921:2009/07/24(金) 10:41:28
>>929
>>930
ありがとうございます。

作業列がもう1列必要というのは、Matchで取得した行の検索キーが一致
しているかどうかの判断用という事でしょうか?
この判断のやり方もIF関数以外で良い方法があれば教えて下さい。

OFFSET等は入力規則のリスト(やデータ領域)等の名前の範囲指定に多用
しています(他の良い方法を知らない)。

# VBA等は多少知っていますが、関数は殆ど知らないのでググってます
970名無しさん@そうだ選挙にいこう:2009/07/24(金) 12:00:03
【1 OSの種類】 WindowsXP
【2 Excelのバージョン】 Excel2000
【3 VBAが使えるか】 いいえ
【5 検索キーワード】 複数条件 個数

SheetA
 A B C D
1 1 1 ? ?
2 1 2 ? ?
3 1 3 ? ?
4 2 1 ? ?
5 2 2 ? ?

SheetB
 A B C
1 1 1 a
2 1 2 a
3 1 2 b
4 2 1 a
5 2 1 b

上記のようにSheetAとSheetBがあり、SheetAのA(n)とB(n)に
ある値をSheetBのA列,B列から検索して、その中のaの個数と
bの個数を、それぞれSheetAのC(n)とD(n)に表示させたいの
ですが、その場合のC,Dの関数の書き方を教えてください。
よろしくおねがいします。
971名無しさん@そうだ選挙にいこう:2009/07/24(金) 12:06:25
>>970
C D
1 0
1 1
0 0
1 1
0 0
になればいいってことかいな?
972名無しさん@そうだ選挙にいこう:2009/07/24(金) 12:21:10
>971
例がちょっと悪かったかもしれませんが、結果はそうです。
973名無しさん@そうだ選挙にいこう:2009/07/24(金) 12:34:59
>>972
シートAのC1=COUNTIF(Sheetb!D:D,A1&","&B1&"a")
シートAのD1=COUNTIF(Sheetb!D:D,A1&","&B1&"b")
シートBのD1=A1&","&B1&C1
全て下までオートフィルでいけると思う
974横から:2009/07/24(金) 12:43:17
>971,972
自分はSUMPRODUCTを使ってみました。
シートAのC1セル=SUMPRODUCT((Sheet2!$A$1:$A$5=A1)*(Sheet2!$B$1:$B$5=B1)*(Sheet2!$C$1:$C$5="a")*1)
シートAのD1セル=SUMPRODUCT((Sheet2!$A$1:$A$5=A1)*(Sheet2!$B$1:$B$5=B1)*(Sheet2!$C$1:$C$5="b")*1)
作業列はいらないけど、式がやたら長い。範囲を指定する必要があるみたい。A:Aみたいに列指定したら
NUM!のエラーになった。
975974:2009/07/24(金) 12:48:24
>974に追加
C1とD1セルのコピーにオートフィルはできないみたいです。
それから、最後の"*1"は不要でした。*1がいるのは条件がひとつだけの場合だけだった。
976名無しさん@そうだ選挙にいこう:2009/07/24(金) 12:50:26
>>973,974
ありがとうございます。両方とも希望する動作をしました。
ところで、>>974のSUMPRODUCTの最後の「*1」は、どういった意味があるのでしょうか?
試しに付けた場合と外した場合で、テストしましたが結果が変わりませんでした。
977974:2009/07/24(金) 12:57:41
>976
自分が参考にしている「エクセル関数1000技+α」(アスキーメディアワークス)
に*1って使っているのがあったので入れてみました。
よく読んでみたら「条件が1つだけの場合は*1を追加する」とあり、
今回は条件が3個だったので外してみてもOKだったということです。
978名無しさん@そうだ選挙にいこう:2009/07/24(金) 14:55:20
SUMPRODUCT なんかでは、EXCEL の小さな親切
大きなお世話機能を利用して、論理値 TRUE/FALSE
に算術演算子を混ぜる事で自動キャストさせて
数値 1/0 として扱う為に
1を掛けたり0を足したりなんかします。
979名無しさん@そうだ選挙にいこう:2009/07/24(金) 14:57:37
列幅の自動調整の
ショートカットはありますか
980名無しさん@そうだ選挙にいこう:2009/07/24(金) 15:31:56
>>979
列の端をダブルクリックすれば調節されます
981名無しさん@そうだ選挙にいこう:2009/07/24(金) 16:35:46
>>979
Alt+O、C、A
982名無しさん@そうだ選挙にいこう:2009/07/24(金) 17:35:57
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 セル 入力 マクロ 実行

ユーザーフォームにデータ入力→自動でセルにデータ入力→セルにデータが入ったらあるマクロを実行

が、したいです。セルにデータが入るところまでは出来ました。
誰か優しく教えて
983名無しさん@そうだ選挙にいこう:2009/07/24(金) 17:37:15
>>982
call マクロ名
で別のマクロ呼び出せます
984名無しさん@そうだ選挙にいこう:2009/07/24(金) 17:53:20
>>982
Excelは、セルに何かデータを入れるとWorksheet_Change( )というサブルーチンが
自動的に呼び出されるようになっているので、その中に好きなマクロを書くだけでしゅ。
985名無しさん@そうだ選挙にいこう:2009/07/24(金) 18:21:32
このコード何かおかしいっすか?
Private Sub commandbutton1_Click()
Dim lRow As Long
With Worksheets("実験")
lRow = .Range("A" & Rows.Count).End(xlUp).Row
.Range("A" & lRow + 1).Value = TextBox1.Value
End With
TextBox1.Value = ""
TextBox1.SetFocus

End Sub
986名無しさん@そうだ選挙にいこう:2009/07/24(金) 18:33:22
lRow = Rows.Count.End(xlUp).Row
987985:2009/07/24(金) 18:52:11
>>986の解説をして頂けると嬉しいのですが
988名無しさん@そうだ選挙にいこう:2009/07/24(金) 19:08:11
別におかしくないと思うが
何か編なところあるのか?
989名無しさん@そうだ選挙にいこう:2009/07/24(金) 19:13:38
>>988
編→変
990名無しさん@そうだ選挙にいこう:2009/07/24(金) 19:17:07
へんだぜ(ごーん)
991名無しさん@そうだ選挙にいこう:2009/07/24(金) 19:25:01
>>985
目的は達成できてると思うんでそのままでも別にいいと思うけど、
プログラムにこだわるなら、ほんのちょっと無駄な部分がある。

Private Sub commandbutton1_Click()
  With TextBox1
    Worksheets("実験").Cells(Rows.Count, 1).End(xlUp).Offset(1) = .Value
    .Value = ""
    .SetFocus
  End With
End Sub

あくまでも重要なのは結果だから、こういうちょっとした違いにこだわる
このスレの住人のやってることは本末転倒なんだけどね。
992名無しさん@そうだ選挙にいこう:2009/07/24(金) 19:26:28
>>990
竹本
993名無しさん@そうだ選挙にいこう:2009/07/24(金) 19:28:10
強いて言えば、A列が空っぽでもA1を飛ばしてA2からデータが入ってくのが
気になると言えば気になるかな
994名無しさん@そうだ選挙にいこう:2009/07/24(金) 19:38:55
あーそーだ
モーダルいじるとフォーカス取得しないのは回避出来ないかね
仕様上しょうがないんだとは思うが
995名無しさん@そうだ選挙にいこう:2009/07/24(金) 19:54:10
センセー
TextBox1.Value = ""
TextBox1.Value = vbNullString
厳密にはどっちがいいでつか?
俺は所詮長さ0の文字列を代入は出来ないと思うので後者だと思うんでつが。
996名無しさん@そうだ選挙にいこう:2009/07/24(金) 20:01:37
うめ〜
997名無しさん@そうだ選挙にいこう:2009/07/24(金) 20:02:52
>>969
そういうこと、分ってるじゃないかよ。
分ってるならわざわざ質問しなくていいんだよ。
ここは論理的思考を嫌う人たちが多いんだからへたに正しい論理的な手法を書くと
雑談スレへ逝けとかいうDQNもいたりするからさw

まぁ一致か不一致の判定には最低一つのIF関数は必要だろうな。

OFFSETを使った名前定義は入力規則のリストに使うのはかまわんが
数式で使っちゃ駄目だな。
数式で使う名前定義ならOFFSETじゃなくINDEXを使う。
OFFSET使った名前を式で使うといつも再計算して無駄だからな。
名前定義に限らんが。
998名無しさん@そうだ選挙にいこう:2009/07/24(金) 20:08:52
>>995
型に厳密にこだわるならTextBox1.Text = ""
999名無しさん@そうだ選挙にいこう:2009/07/24(金) 20:12:15
1000なら紙降臨\(^0^)/

      ┏┓┏━━┓┏━━┓┏━━┓
 ``).  ..┃┃┃┏┓┃┃┏┓┃┃┏┓┃   ▼〃ヾ
 ;;`)⌒ ..┃┃┃┗┛┃┃┗┛┃┃┗┛┃    ( *゚ー)
 ;;;⌒`)... ┗┛┗━━┛┗━━┛┗━━┛─□( ヽ┐U キコキコキコ
;;⌒`)⌒`).◎ ◎  ◎ ◎  ◎ ◎  ◎  ◎−ミ┘◎
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。