Excel総合相談所 70

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

▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★1 質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★2 要望は具体例や図を使って明確かつ具体的に。
★3 質問前に>>2-10あたりの注意書きや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総合相談所 69
http://pc11.2ch.net/test/read.cgi/bsoft/1211605143/
2名無しさん@そうだ選挙にいこう:2008/06/09(月) 21:13:56
▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━
・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名無しさん@そうだ選挙にいこう:2008/06/09(月) 21:14:17
★ルールを無視すると…
 >>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名無しさん@そうだ選挙にいこう:2008/06/09(月) 21:14:44
★ 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名無しさん@そうだ選挙にいこう:2008/06/09(月) 21:15:08
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)

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

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

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

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

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

>▼環境・書式
> ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する
補足
2007ではページレイアウトビューの表示時に限り、幅・高さともcm単位で表示され、
指定も同じくcm単位でできる。
ただし大元がインチ系なのでなかなかピタリの値は出ない。1cm→0.98cmのように
近い値に勝手に丸められる。
7名無しさん@そうだ選挙にいこう:2008/06/09(月) 21:16:16
   ________________________________
   ||
   || ━ 質問のしかた ━
   ||
   || ★1 質問するときは、環境や条件をキチンと書くこと。情報後出しはダメ。
   || ★2 要望は具体例や図を使って明確かつ具体的にしる。
   || ★3 質問前に>>2-20あたりの注意書きやQ&Aを必ず読むこと。
   || ★4 質問テンプレ(雛形)は必須ではないが、
   ||    OSやExcelのバージョン、VBAの可否などは必須情報。
   ||
   ||            ∧ ∧   。
   ||          ( ,,゚Д゚)/ ジュウヨウ!!      E[]ヨ
    ̄ ̄ ̄ ̄ ̄ ̄ ̄ノ  つ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                /  ̄ ̄ ̄ ./| ________________
                | ̄ ̄ ̄ ̄| | |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|____|/|
                        ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
      \    は〜〜〜〜い      /
    ∧ ∧    ∧,,∧   ∧ ∧
    ( ,, ∧▲  ミ  ∧ ∧ (  ∧ ∧
  〜(_(  ∧ ∧_( ∧ ∧_ミ・д・∧ ∧
    @(_(,,・∀・)@ (   *)〜ミ_ (   ,,)
      @(___ノ 〜(___ノ    〜(___ノ

エクセルの技術的な質問と関係ない議論・雑談は下記スレッドで。

【質問不可】Excel総合相談所スレの雑談・議論スレ2
http://pc11.2ch.net/test/read.cgi/bsoft/1151651536
8名無しさん@そうだ選挙にいこう:2008/06/09(月) 21:18:26
おつ
9名無しさん@そうだ選挙にいこう:2008/06/09(月) 21:29:08
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 EXCEL 在庫管理

前のスレッドで質問した者です。
引き続きお願いします。

エクセルで在庫管理する方法を教えて下さい。
お客さんの倉庫5ヶ所に欠品を起こさないように商品を納入しないといけません。
対象となる商品点数は13種類です。
管理する期間は過去3ヶ月程度から1週間先の予定くらいまでを考えています。
各倉庫からの出荷情報は顧客のWebサイトから入手することができます。
今後、倉庫数、商品点数ともに変化する可能性があります。

商品ごと、倉庫ごとに基準在庫が決まっており、その数を割ったら商品を補充します。
ただ、人間の判断によって補充のタイミングや量は調整することがあります。
判断の材料として、在庫数量の時系列での変化が見えるようにしたいです。
商品は固定しておいて、各倉庫別に在庫の推移を見たり、倉庫は固定で商品全部の在庫
を見たりしたいです。
日付を固定して商品ごと倉庫ごとの在庫数量一覧も表示させたいです。

何かいい方法ありませんでしょうか。
よろしくお願いします。
10名無しさん@そうだ選挙にいこう:2008/06/09(月) 21:30:04
>>9
エクセルはそーいうのには向いてない。アクセス覚えてそっち使え、まじで。
11名無しさん@そうだ選挙にいこう:2008/06/09(月) 21:46:43
12名無しさん@そうだ選挙にいこう:2008/06/09(月) 21:56:51
>>10
アクセスでできるがエクセルでできないのはなぜ?
アクセス固有のどういう機能を使うつもりなんだ?
13名無しさん@そうだ選挙にいこう:2008/06/09(月) 21:57:39
>>11
その中のどれが回答だ?
14名無しさん@そうだ選挙にいこう:2008/06/09(月) 22:25:14
>11を見てわからんなら諦めた方がいいよ
15名無しさん@そうだ選挙にいこう:2008/06/09(月) 22:31:39
>>14
バカが。
16名無しさん@そうだ選挙にいこう:2008/06/09(月) 22:58:10
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 エクセル 文字列 検索

このスレにはいつも助けられています。
今回もなにとぞよろしくお願いします。

 A列    B列   C列     D列
aba東京   東京  東京都港区…
bcb千葉   千葉  千葉県…
cab奈良   奈良  奈良県…  

B列にA列と同じ文字列があった場合、D列に
「1」と数字を入れたい場合、どのようにすれば
良いのでしょうか。
基礎的な事かもしれないですが…どうぞよろしくお願いします。
17名無しさん@そうだ選挙にいこう:2008/06/09(月) 23:05:03
>>16
findとかsearchであるかないかを判定したらどうなん?
18名無しさん@そうだ選挙にいこう:2008/06/09(月) 23:25:26
>>1
激しく乙
19名無しさん@そうだ選挙にいこう:2008/06/09(月) 23:45:07
【1 OSの種類         .】 Windows Vista
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 時刻 小数点
一秒以下の時間を入力して計算させたいのですが、どうしたらいいのでしょうか?
ヘルプでは一秒までの方法しか見つかりませんでした
20名無しさん@そうだ選挙にいこう:2008/06/09(月) 23:54:36
エクセル2007だと

Ctrl+D で、上のセルをコピーができないのでしょうか。
21名無しさん@そうだ選挙にいこう:2008/06/09(月) 23:58:07
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 エクセル 文字 入力   ^

質問ですが、セルに文字を入力しようとするとすでに ^ が入っているんですが、
どうやったらなくせるのでしょうか。
ある日から突然そうなったんですが直し方がわかりません。
よろしくお願いします。
22名無しさん@そうだ選挙にいこう:2008/06/10(火) 00:00:55
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 名簿 同性 VBA

姓名のリストがあります。ここから苗字のみを抜き出したいのですが。。。

山田 太郎 → 「山田」を抽出

=IF(A1="","",LEFT(A1,FIND($AA$1,A1)-1))   *A1に 「山田 太郎」 AA1に「 」スペース

このように現状は対応しているのですが、同性がいる場合(山田さんが同性 他の人は一人だけ)
山田 太郎 → 山田(太)
山田 次郎 → 山田(次)
米山田 太郎 → 米山田
としたいのです。常に30名程度のリストです。よい解決策をご教授願います。
23名無しさん@そうだ選挙にいこう:2008/06/10(火) 00:01:38
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 yeah
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 exe 捨てたい

前スレからの持ち越しです。
VBAでcsvファイルを読み込み、一部を書き換えて
保存するにはどうすればよのでしょうか。

180,65,N
179,62,N
174,57,A

のようなデータがあるとした場合、二行目の
最後の要素”N”をAに書き変えたいのです。

要はcsvの中の一つの要素だけ書き換えたい
のですが無理なんでしょうか。
なんかバイト数が同じだとどうとかGandamが
どうとかよくわかりません><
24名無しさん@そうだ選挙にいこう:2008/06/10(火) 00:05:42
>16
A列の内容 の一部に B列の内容 を含む場合に D列に1をセットする、という
考えでいいんですか?

 A列   B列   C列     D列
aba東京  東京  東京都港区… 1 
bcb千葉  千葉県 千葉県…   空白 "bcb千葉"には"千葉県"は含まれない
cab奈良  奈良  奈良県…   1

こういうことであれば
Sub test()
For tate = tate_strt To tate_end
If Cells(tate, 1).Value Like "*" & Cells(tate, 2).Value & "*" Then
Cells(tate, 4) = 1
Else
Cells(tate, 4) = ""
End If
Next tate
End Sub
でいいかと思いますが。
tate_strt tate_end はデータの行範囲を指定してね。
Like演算子とB列の内容の前後に*をつけて判定するので、A列がaba東京都、
B列が東京でもD列は1になります。B列が空白の場合があるならばその場合の
処理を加えてみてください。
25名無しさん@そうだ選挙にいこう:2008/06/10(火) 00:14:36
>22
リストをまず「姓名」列でソートしてからでないと無理では?
同一姓の別人がいるかどうかの判定やら、その場合に先に処理した同一姓の人に(名の1文字目)を
付加するとか、かなり複雑になりますね。

それから、30人程度の名簿の中に 「田中 一郎」と「田中 一夫」が存在するような場合は
ないんですか?
2622:2008/06/10(火) 00:22:58
>>25
情報の不足申し訳ありませんでした。
リストは、「姓名」列にてソートした状態になっています。

>それから、30人程度の名簿の中に 「田中 一郎」と「田中 一夫」が存在するような場合は
>ないんですか?

このようなことも考えられます。ただ、確率的には少ないので、複雑な処理になるのであれば、手動で対応しようとも考えております。
27名無しさん@そうだ選挙にいこう:2008/06/10(火) 00:32:13
A列:姓名  B列:姓だけ  C列:名の1文字目だけ  D列:求める内容
として考えてみます。

1回目のループでB列とC列を設定し、
2回目のループではB列で上下のセルに同一の内容(同一姓)の判定を行い、
         同一姓がなければB列の内容を転記、
         同一姓があるならばB列の内容+"("+C列の内容+")"を転記
D列の内容に同一のものがあるときは(見ればわかるので)、手作業で修正

という流れでいいでしょうか? 25で示したような場合 田中(一)がふたつ並ぶので
マクロ実行後に手作業で修正するということです。
2822:2008/06/10(火) 00:41:25
>>27
まさしくその通りです。よろしくお願いします。
29名無しさん@そうだ選挙にいこう:2008/06/10(火) 01:03:06
>>28
不完全だけど、こんなんでいいのか?
=IF(OR(B1=B2,B2=B3),IF(OR(C1=C2,C2=C3),A2,B2&" ("&C2&")"),B2)

ttp://aaabbbccc.s6.x-beat.com/upload/src/up17937.png
30名無しさん@そうだ選挙にいこう:2008/06/10(火) 01:04:43
>>23
書き換える前と後で文字数が同じでなければ、全体を読み込んで全体を保存するしかない
31名無しさん@そうだ選挙にいこう:2008/06/10(火) 01:07:20
>>21
どういう状況なのか、「勝手に入る」の意味がよくわかんないんだけど、
Excelを起動したら、最初からこうなってるってこと?

ttp://aaabbbccc.s6.x-beat.com/upload/src/up17938.png
32名無しさん@そうだ選挙にいこう:2008/06/10(火) 01:09:13
>>20
できる
33名無しさん@そうだ選挙にいこう:2008/06/10(火) 01:15:18
>>19
1時間23分45.6789秒なら1:23:45.6789と入力すればいいだけ。そのまま普通に計算も出来る。
書式をいじらないと0.1秒の単位は表示されないけど。
34名無しさん@そうだ選挙にいこう:2008/06/10(火) 01:18:01
>>12
できないわけじゃなくて、ソフトには向き、不向きというのがあってだな。
無駄な労力はかけたくないんだよ。
ペイントをワープロのかわりに使うのも不可能ではないけどやりたくない、そういう感じ。
35名無しさん@そうだ選挙にいこう:2008/06/10(火) 01:22:24
>>31
返答ありがとうございます。
数式バーに勝手に入力されているという意味です。
36名無しさん@そうだ選挙にいこう:2008/06/10(火) 01:24:14
>29
すごいですね。こちらはVBAでやってみました。
重複する部分がたくさんあるので手続きをまとめるといいんだろうけど、とりあえず。
Sub test()
' 1回目のループは省略します
' 2回目のループ
  For tate = tate_strt To tate_end
    Do
      If tate = tate_strt Then '先頭行
      Else '以外ならばひとつ上のデータと比較
        If Cells(tate, 2).Value = Cells(tate - 1, 2).Value Then
          Cells(tate, 4).Value = Cells(tate, 2).Value & "(" & Cells(tate, 3) & ")"
          Exit Do
        End If
      End If
      If tate = tate_end Then '最終行
        If Cells(tate, 2).Value = Cells(tate - 1, 2).Value Then
          Cells(tate, 4).Value = Cells(tate, 2).Value & "(" & Cells(tate, 3) & ")"
        Else
          Cells(tate, 4).Value = Cells(tate, 2).Value
        End If
      Else '最終行以外ならばひとつ下のデータと比較
        If Cells(tate, 2).Value = Cells(tate + 1, 2).Value Then
          Cells(tate, 4).Value = Cells(tate, 2).Value & "(" & Cells(tate, 3) & ")"
        Else
          Cells(tate, 4).Value = Cells(tate, 2).Value
        End If
      End If
    Loop While (0)
  Next tate
End Sub
37名無しさん@そうだ選挙にいこう:2008/06/10(火) 01:24:42
>>35
まだわからん。もうちょっと因果関係を詳しく書いて。
どういう順番でキーを押すと、どのキーを押した直後に「^」が入る、みたいな。
ただ、聞いたことのない症状だから回答できない可能性が高いけど。
3822:2008/06/10(火) 01:27:45
>>29
ありがとうございます。確認してみました。
D列はまさしく求めている値が出ました。が、名前だけを抜き出すC列がうまく処理できてないみたいで。。。
C列はどのようにしたのでしょうか?姓と名の間には半角スペース一つ開いています。
39名無しさん@そうだ選挙にいこう:2008/06/10(火) 01:28:04
>>34
あまりうまくない例えだな。
アクセスで作るならどう作るつもり?
4021:2008/06/10(火) 01:35:16
>>37
たびたびすみません。
普通に立ち上げて、文字を入力しようとセルを選びます。
そうすると数式バーにすでに ^ が入っている、という感じです。
41名無しさん@そうだ選挙にいこう:2008/06/10(火) 01:36:24
>>30
dです
42名無しさん@そうだ選挙にいこう:2008/06/10(火) 01:36:34
>>39
まず、リストにデータを追加したり削除したりするのがExcelだと面倒。
Accessだと削除すると空いた行を自動的に詰めてくれるし、追加すると自動的にソートしてくれる。
厳密には違うけど、そんなイメージで使える。

Excelだと作業用の列やシートを用意したり関数を書いたり、そういう処理をいちいち書かなきゃならない。
不可能じゃないけど無駄な労力だと思う。
43名無しさん@そうだ選挙にいこう:2008/06/10(火) 01:42:00
>>42
それエクセルの全否定じゃないか。
在庫管理どころかあらゆることにエクセルは向いていないということか。
そこまで言うなら仕方がないが極論だと思うぞ。
44名無しさん@そうだ選挙にいこう:2008/06/10(火) 01:44:00
>40
いくつか質問します。
新規のワークシートでそうなりますか?
特定のセルじゃなく、どのセルを選んでもそうなりますか?
そのまま[Enter]を押したらセルに^が入力されますか?
新規ワークシートではA1セルが選択された状態ですが、数式バーには^が入ってますか?
そしてA1セルには^が表示されてますか?
セルを選択する方法には2種類ありますね。セルをクリックする方法とセル位置が表示されている
場所に直接セルのアドレスを入力する方法です。初期値のA1となっているのをB2にして
それでも数式バーには^が表示されますか?

すでに作成して保存してあるブックの、すでに何かデータ(計算式でも可)が入っている
セルをクリックしても^に置き換わりますか?
45名無しさん@そうだ選挙にいこう:2008/06/10(火) 01:45:58
>>40
セルになんか入力する時、たとえば

どこかセルをクリック→数式バーをクリック→内容をキーボードから入力→Enterで確定

って順番に操作することになると思うけど、
この場合、2番目の数式バーをクリックすると、その直後に数式バーに ^ が入るってこと?
で、それはBackSpaceキーを1回押せば普通に消せる?
46名無しさん@そうだ選挙にいこう:2008/06/10(火) 01:48:20
>>43
ようするに「在庫」ってのはデータベースそのものでしょ。
量が常に変動し続ける場合はデータベースソフトを使った方が向いてるってこと。

行数、列数が固定されてる「表」であればExcelのが手軽。
47名無しさん@そうだ選挙にいこう:2008/06/10(火) 01:51:55
それなら、Accessスレに誘導してあげれば良いじゃん
48名無しさん@そうだ選挙にいこう:2008/06/10(火) 01:52:02
>>46
Excelって使えねーソフトだな。
49名無しさん@そうだ選挙にいこう:2008/06/10(火) 01:53:09
このスレッドには在庫管理できる回答者はいないという結論でいいかな。
50名無しさん@そうだ選挙にいこう:2008/06/10(火) 01:54:48
>>43
Excelはもともと、データをどんどん追加するような使い方は想定されてなかった。
だから行数が65536しかなかったわけだ。
Excelでデータベースを作ったとして、何年も業務を続けてればあっというまにレコードは
6万を超えて破綻するわけだ。

2007で最大行数が増えたのは、そういう想定外の使い方をする人があまりにも多くて
MSが折れたと見るがどうだろう。
51名無しさん@そうだ選挙にいこう:2008/06/10(火) 01:54:57
使う人次第
駄目な奴は何をやっても駄目
会社に泊まり込んで2chやってる俺も駄目人間だけどな

>>49
その結論でOK
在庫管理の件は終了です
5221:2008/06/10(火) 02:00:58
>>45
会社のPCなので細かくは今説明できません、すみません。
(間違ってしまうかもしれないので)
しっかり確認してきます。
53名無しさん@そうだ選挙にいこう:2008/06/10(火) 02:01:37
>>50
個性的な説だなあ。
私はそうは思わない。
54名無しさん@そうだ選挙にいこう:2008/06/10(火) 02:03:00
「俺なら出来る。やらないけどな」っていう、口だけのやつなら何人もいた。
やらないのはできないのと同じだってうちのばあちゃんが言ってた。
55名無しさん@そうだ選挙にいこう:2008/06/10(火) 02:12:01
>>50
行数は65536もある。
65536行で十分な業務に対してはそんないいわけは通用しない。
アクセスにだって制限はあるのだから。

エクセルはそういうことに向いていない。
エクセルはもともとそういうことを想定していない。
なんでそんなこと勝手に決めるの?
56名無しさん@そうだ選挙にいこう:2008/06/10(火) 02:18:08
>>23
暇に任してコード書いたよ
てか、こんなんテキストエディタでやれ

Dim rootFolder As String
Dim fileName As String
Dim fileNumber As Integer
Dim byteBuf() As Byte
Dim strBuf As String
Dim buffer1 As Variant
Dim buffer2 As Variant
Dim i As Long

rootFolder = CreateObject("WScript.Shell").SpecialFolders("DeskTop") & "\"

With Application.FileDialog(msoFileDialogFilePicker)
  .InitialFileName = rootFolder
  .Filters.Add "CSVファイル", "*.csv"

  If .Show = -1 Then
    fileName = .SelectedItems(1)
  Else
    MsgBox "ファイルを取得できませんでした", vbExclamation, "エラー"
    Exit Sub
  End If
End With

つづく
5756:2008/06/10(火) 02:18:28
つづき

fileNumber = FreeFile()
ReDim byteBuf(FileLen(fileName) - 1)

Open fileName For Binary Access Read Write As #fileNumber
Get #fileNumber, , byteBuf

strBuf = StrConv(byteBuf(), vbUnicode)
buffer1 = Split(strBuf, vbCrLf)

For i = LBound(buffer1) To UBound(buffer1)
  If buffer1(i) <> "" Then
    buffer2 = Split(buffer1(i), ",")

    If buffer2(UBound(buffer2)) = "N" Then
      buffer2(UBound(buffer2)) = "A"
      buffer1(i) = Join(buffer2, ",")
    End If
  End If
Next i

Put #fileNumber, 1, Join(buffer1, vbCrLf)
Close #fileNumber
58名無しさん@そうだ選挙にいこう:2008/06/10(火) 02:19:11
マリーアントワネット「AccessがだめならSQLサーバを使えばいいじゃない」

規模に合わせて使い分けろ。
能力もソフトの値段も違うし。
小さい事務所ならExcelで十分。
で、既製品があるのにわざわざ自分で作るのはどうして?
車輪の再発明はソフトの使い分け以前の問題だぞ。
59名無しさん@そうだ選挙にいこう:2008/06/10(火) 02:27:28
>>58
再発明というほどのことではない。
標準的なエクセルの機能だけで数分で完成する。
こんなことで再発明を言い出したらエクセルそのものの存在価値すら疑わないといけない。
6056:2008/06/10(火) 02:33:16
>>23
あっ、すまん、2行目だけか
もう直すの邪魔くさい
>>56-57よりもっと簡単だからあとは応用しる
61名無しさん@そうだ選挙にいこう:2008/06/10(火) 02:35:04
>>58
そもそも規模の問題でできないという話なのか?
そうじゃなくてやり方がわからないんだろ。正直に言え。
62名無しさん@そうだ選挙にいこう:2008/06/10(火) 02:38:15
正直言うとわからない
言い訳してすまなかった

>>61はできるの?できるならやり方を教えて
お願いします
63名無しさん@そうだ選挙にいこう:2008/06/10(火) 02:45:36
>>59
おまえバカだなぁ
エクセルは個人で小さい車輪を最発明して自己満足する道具だぞ
知らなかったのか?
64名無しさん@そうだ選挙にいこう:2008/06/10(火) 02:49:41
>>59
数分てw
どんなに低機能でもそれはないわ。

新規ブックに「データベース.xls」って名前を付けて保存するだけ、みたいな
低レベルな冗談は禁止な。
65名無しさん@そうだ選挙にいこう:2008/06/10(火) 02:50:19
>>62
ある日付における在庫数は
繰越数量+繰越日からある日付までの入庫数-繰越日からある日付までの出庫数
で求められる。

元のデータをこんな形式にしておく
日付  区分 商品 納入先 数量
6/1 繰越 AA 倉庫1 125
6/2 入庫 AA 倉庫1 200
6/2 出庫 AA 倉庫1 25
6/3 出庫 AA 倉庫1 50

ピボットテーブルで繰越、入庫、出庫の累計を計算する。
ピボットテーブルに集計アイテムを追加して
在庫=繰越+入庫-出庫
を求める。
これでできあがり。
66名無しさん@そうだ選挙にいこう:2008/06/10(火) 02:51:09
Excelはね……宇宙なんだよ!

すべての物がそこには詰まっている。
歴史も、夢も、絶望も…!
67名無しさん@そうだ選挙にいこう:2008/06/10(火) 02:53:49
>>65
おまえは>>9の要件満たしてからデカイ口叩け
68名無しさん@そうだ選挙にいこう:2008/06/10(火) 02:54:44
>>67
バカが。
69名無しさん@そうだ選挙にいこう:2008/06/10(火) 03:13:26
データをシートに直入力してピボットテーブルやグラフを手作業で作るだけってw
空のブックをデータベース.xlsで保存したのと変わらないじゃん。
まず子供の小遣い帳と会社の在庫管理の違いを勉強してこい。
70名無しさん@そうだ選挙にいこう:2008/06/10(火) 03:18:53
>>69
やめろ。見苦しいぞ。
会社の在庫管理だって規模が違うだけでこうやってるんだ。
71名無しさん@そうだ選挙にいこう:2008/06/10(火) 03:26:12
自分一人でやる仕事ならそれでもいいと思うよ。
ただ、会社だと不特定多数が閲覧したり入力したりする場合があるから、
それならもうちょっと手間をかけてやらないとなあ。
引き継ぎなんか、Excelを丸ごと教えることになっちゃうし。
(知識としてExcelぐらい知ってた方がいい、等の意見はお門違い)

そのへんどうなんだろうね?>質問者
72名無しさん@そうだ選挙にいこう:2008/06/10(火) 03:26:48
>>65
お見事。
累計でやるのか。頭いいな。
ひがんでるやつらはかっこわるいなあ。ピボットテーブル使えないなんて文盲だよ。もはや。
73名無しさん@そうだ選挙にいこう:2008/06/10(火) 03:31:49
>>70
「規模が違うだけ」っていうけど、規模が違うからこそ考慮しなきゃいけないことはいくらでもある。
そういうのを机上の空論と言うんだ。
74名無しさん@そうだ選挙にいこう:2008/06/10(火) 03:34:41
>>73
バカ?
リアルに同じ方法だよ。
75名無しさん@そうだ選挙にいこう:2008/06/10(火) 03:44:31
だからさぁ
何度も言ってるけど規模の大きいとこはExcelをデータベースがわりになんか使わないんだってば
Excelでこと足りるってことはピボットテーブルで十分ってことなの
76名無しさん@そうだ選挙にいこう:2008/06/10(火) 03:49:35
>>75
このスレの回答者はなかなかそれがわからないみたいだね。
エクセルでやるようなことはピボットテーブルでほとんど何でも解決するし、
ピボットテーブルで解決しないようなことはエクセルでするべき仕事じゃない。
77名無しさん@そうだ選挙にいこう:2008/06/10(火) 04:01:44
仮定の話

1行1レコードとして1シート6万5千件
1年1シートとして1日170件、営業日だけなら1日250件
たとえ1000種類の商材を扱うとしても、すべての品目が毎日出入りするわけはない
こんだけデータが入るんだから、小さな会社の在庫管理はExcelで十分
78名無しさん@そうだ選挙にいこう:2008/06/10(火) 04:04:13
>>76
小さい会社はエクセルをワープロがわりに使います
悲しいけどこれ現実なのよね
79名無しさん@そうだ選挙にいこう:2008/06/10(火) 04:19:22
>>71
不特定多数が閲覧、入力するからこそのピボットテーブルなんだけどな。

日付  区分 商品 納入先 数量
6/1 繰越 AA 倉庫1 125
6/2 入庫 AA 倉庫1 200
6/2 出庫 AA 倉庫1 25
6/3 出庫 AA 倉庫1 50

何の説明がいる?
ピボットテーブルがいいのは、データの形式そのものがビジネスルールを
表現しているところ。VBAではこうはいかない。
80名無しさん@そうだ選挙にいこう:2008/06/10(火) 04:41:19
不特定多数がかかわる仕事は、誤消去とか入力ミスを防ぐ工夫が必要になってくるんよ
うっかりさんはどこにでもいるから
できるだけ生のデータが入ったシートは隠すとか本質的じゃない部分で手間がかかる
81名無しさん@そうだ選挙にいこう:2008/06/10(火) 04:50:49
>>80
それはそうだけど、ピボットテーブルとは別の問題だよ。
82名無しさん@そうだ選挙にいこう:2008/06/10(火) 08:36:21
在庫管理の件については質問者がやる気起こさない限り
誰もまともな解答付けられないと思われ
今までの情報じゃ頭悪い俺には無理。
83名無しさん@そうだ選挙にいこう:2008/06/10(火) 10:36:49
作成方法に正解なんてありません
ピボットテーブルでもVBAでも質問者が決めれば良い

何を言い争っているんだい
84名無しさん@そうだ選挙にいこう:2008/06/10(火) 11:52:37
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 セル 最終 取得

開いていないブックから入力済の最終セル番地を調べたいです。
ググってみたのですが、開いたブックの最終セル取得方しか見つかりませんでした。
開いていないブックから入力済の最終セル番地を取得する方法があればご教示下さい。
85名無しさん@そうだ選挙にいこう:2008/06/10(火) 12:49:56
調べたい対象のブックの最終番地を、そのブックの特定シートの特定セル位置に
書き込んでおけますか?

書き込めるのであれば、「可」です。
現在開いているブックの適当なセルの計算式に 他のブックの参照 を入れれば済みます。
下の例は、DドライブのFolderという名前のフォルダにあるsample.xlsのシート1のA1
セルの値を参照しています。
='D:\Folder\[sample.xls]Sheet1'!$A$1
86名無しさん@そうだ選挙にいこう:2008/06/10(火) 14:08:55
>>55
在庫管理の必要がない所からみればそうかもしれないが、
普通にデータベースとしてみれば、どう考えても少なすぎる
>>50の説はかなりあたってると思う
あとaccsessはPro版(だっけ?高いほう)にしか付いてこないのもネックだよな
メーカーPCだとほとんど付いてこない
87名無しさん@そうだ選挙にいこう:2008/06/10(火) 14:16:47
>>86
やっと起きたか 自演乙
88名無しさん@そうだ選挙にいこう:2008/06/10(火) 14:30:48
普通のデータベースを運用した事があるのかしらねえあの人
89名無しさん@そうだ選挙にいこう:2008/06/10(火) 14:45:08
>>88

ど素人乙

何だ?普通のデータベースって。
「普通の数字」見たいなもんかww
90名無しさん@そうだ選挙にいこう:2008/06/10(火) 16:00:06
「在庫管理」って言葉に萌える (;´Д`)ハァハァ
91名無しさん@そうだ選挙にいこう:2008/06/10(火) 16:14:47
>>89
キミ有効数字知らなかった人でしょ。
92名無しさん@そうだ選挙にいこう:2008/06/10(火) 16:14:54
普通じゃないデータベースって正規化されてなかったりデータベース自体に関数が入ってたり
するもののことじゃね?
たまに年齢が入ってたりするのを見かけるが、あれはいただけない
93名無しさん@そうだ選挙にいこう:2008/06/10(火) 16:15:15
いつからゴミ箱になったんだ
94名無しさん@そうだ選挙にいこう:2008/06/10(火) 16:38:22
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 average if

家計簿の中から月ごとに出費やらの平均を出したいです。
2007にはaverageifって関数があるらしいですが、これを2002で再現するにはどうしたらいいですか?
検索するとsumif/countifってのがよく出てきますが、セルには○月△日(○/△)と入れてるので
countifじゃカウントできないです(countaifってのは無いみたいですし)
countifで出来るように月と日を別のセルにするしかないのでしょうか
95名無しさん@そうだ選挙にいこう:2008/06/10(火) 16:40:09
>>94
MONTH関数で月が取り出せます
96名無しさん@そうだ選挙にいこう:2008/06/10(火) 17:40:19
ありがとうございます
month関数で月の数字を取り出した列を別に作って検索対象にしたら出来ました
別の列を作らずに式だけで処理するのは無理ですかね
97名無しさん@そうだ選挙にいこう:2008/06/10(火) 17:53:10
>>86
何も全社のデータを処理しようというんじゃない。
一担当者の限られた業務をサポートできればいいだろう。Excelなんてそんなもんだよ。
数万件のデータは人間にとって十分に巨大だ。感性で扱える量じゃない。
理論に基づかないいい加減な手法で操作していたらたちまち破綻してしまうよ。
98名無しさん@そうだ選挙にいこう:2008/06/10(火) 18:21:25
>>96
ピボットテーブルを試してみなされ
99名無しさん@そうだ選挙にいこう:2008/06/10(火) 18:26:26
>>94
平均=合計/個数だから
=SUMIF( )/COUNTIF( )
みたいな感じで置き換えればいいんじゃないの?
100名無しさん@そうだ選挙にいこう:2008/06/10(火) 18:52:11
>>82
すでにパーフェクトな解答が出ているのに今さら何を言ってるんだ?
101名無しさん@そうだ選挙にいこう:2008/06/10(火) 19:09:45
>>96
作業列なしでも出来るが、SUMPRODUCT 使う奴はアフォとか池沼とかノータリンとか
言われるので、それを覚悟して使ってくれ。それと空白は1月だからね。

B列:データ、C列:日付、F1:集計する月
=SUMPRODUCT((MONTH(C2:C99)=F1)*B2:B99)/SUMPRODUCT((MONTH(C2:C99)=1)*1)
1029:2008/06/10(火) 20:01:16
在庫管理の質問をしたものです。
おかげさまでピボットテーブルを使う方法で解決いたしました。
今日、実際のデータを使っていろいろ試してみたところ、
必要なものがすべて表現できることがわかりました。
これから実務に使っていこうと思っています。
みなさんたくさんのアドバイスありがとうございました。
103名無しさん@そうだ選挙にいこう:2008/06/10(火) 20:21:55
いいからお前は病院行ってこい
104名無しさん@そうだ選挙にいこう:2008/06/10(火) 21:40:34
おまいら言い争いはやめておけ。

俺が飛んでもないプログラムを公開してやるから、落ち着いて見てくれ。



Dim 2ちゃんねら AS Long

for A% = 1 to 2ちゃんねら

 IF レス=104 then
MSGBOX("天才")
 ELSE
  MSGBOX("バカばかり")
 END IF

NeXT A%


105名無しさん@そうだ選挙にいこう:2008/06/10(火) 21:45:43
WindowsXP
Excel2002
セルに49175.098と入力すると
49175.0979999999に変わるのは
なぜなのか教えてください。
106名無しさん@そうだ選挙にいこう:2008/06/10(火) 21:48:34
107名無しさん@そうだ選挙にいこう:2008/06/10(火) 22:05:53
>>106
難しそうな話ですね。
よく読んでみます。
ありがとうございました。
108名無しさん@そうだ選挙にいこう:2008/06/10(火) 22:10:14
末期的スレ
109名無しさん@そうだ選挙にいこう:2008/06/10(火) 22:12:20
なあに。放っておけば自作自演のQ&Aで病人が地ならししてくれるさ
110名無しさん@そうだ選挙にいこう:2008/06/10(火) 22:18:40
http://sugar310.dip.jp/cgi/upload/source/up12241.xxx
拡張子をxlsxに変えて開いてください。


このファイルをどうしても印刷したいのですが
手元にあるレーザープリンタ、カラープリンタで印刷しようとしてもグラフが印刷されません。
pdf形式に変えてから印刷しようとしても無理でした。
どなたか助けてください。
111名無しさん@そうだ選挙にいこう:2008/06/10(火) 23:03:37
>>110
症状が分からんが、普通に印刷できた。
グラフを選択した状態で印刷してみてもだめか?
112名無しさん@そうだ選挙にいこう:2008/06/10(火) 23:12:29
>>111

印刷プレビューだとなぜかちゃんと表示されているのに印刷出来ないんです・・・
113名無しさん@そうだ選挙にいこう:2008/06/10(火) 23:19:00
>112
2007っぽいからちょっとやり方違うかもだけど、

グラフダブルクリック
→プロパティ
→オブジェクトを印刷する、にチェック入れる。
デフォルトはチェックが入ってる。
114名無しさん@そうだ選挙にいこう:2008/06/10(火) 23:48:05
グラフダブルクリック してもプロパティ という項目は出てこないのですが
115名無しさん@そうだ選挙にいこう:2008/06/10(火) 23:58:35
うちも印刷できんかった。こんなんになる。
ttp://downloads.myphotos.cc:8080/up1/src/FancyFree0537.jpg

で、青い線を右クリック→データ系列の書式設定→線のスタイル→スムージングのチェックを外したら印刷できた。
なんで人によって結果が変わるんだろう?
116名無しさん@そうだ選挙にいこう:2008/06/11(水) 00:06:39
>>104
ループ回らんね
117名無しさん@そうだ選挙にいこう:2008/06/11(水) 00:08:16
だから「飛んでもない」んだろ
118名無しさん@そうだ選挙にいこう:2008/06/11(水) 00:09:59
変数名が数字から始まってる時点でビルドできません…
119名無しさん@そうだ選挙にいこう:2008/06/11(水) 00:26:37
すみません。ググっても出来なくて。教えてください。
OS=XP エクセル2003 VBA:出来ません。
ひとつのファイルに200シートを作成して例えばすべてのシートのA1の部分に
1〜200の数字を入力したいです。
昨年はものの弾みで出来たのですが、完全にやり方を忘れてしまいました。
どうか、よろしくお願いします。
120名無しさん@そうだ選挙にいこう:2008/06/11(水) 00:47:31
Sub VBA使わないと無理っす()
For I = 1 To 200
Worksheets.Add AFTER:=Worksheets(I)
ActiveSheet.Name = I
ActiveSheet.Cells(1, 1) = I
Next I
End Sub
121名無しさん@そうだ選挙にいこう:2008/06/11(水) 00:52:33
>119

シート名にも何らかの区別をしているだろうからそこから引っ張った方がよくね?

基本形はこれ。適当に応用しておくれ。
=MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+1,31)
122名無しさん@そうだ選挙にいこう:2008/06/11(水) 01:08:23
>>120
今イチ美しくないな

Sub VBA使わないと無理っす2()
 For I = 1 To 3
  Worksheets(I).Cells(1, 1) = I
 Next I

 For I = 4 To 200
  Worksheets.Add AFTER:=Worksheets(I - 1)
  ActiveSheet.Name = "Sheet" & I
  ActiveSheet.Cells(1, 1) = I
 Next I
End Sub

>>121
200枚のシートをこれから作るのか、もう作ってあるのかが微妙に不明なんだよね
123名無しさん@そうだ選挙にいこう:2008/06/11(水) 02:24:24
>>122
駄目駄目だなw
124名無しさん@そうだ選挙にいこう:2008/06/11(水) 02:34:21
>>123
あ、先生。
エレガントな回答お願いしますよ。
先生なら3行で十分ですよね。
125名無しさん@そうだ選挙にいこう:2008/06/11(水) 02:41:43
【1 OSの種類】 WindowsXP
【2 Excelのバージョン】 Excel 2003
【3 VBAが使えるか】 多少
【4 VBAでの回答の可否】 可
【5 検索キーワード】 WEBクエリ 最大 桁数 セル 等

webクエリでデータの取り込みですが
2182874298985 のような大きな数字があると取り込んだセルには
2.18287E+12 のようになってしまいます。
回避する方法はありますか?
わかる方居ましたらお願いいたします。m(__)m
126名無しさん@そうだ選挙にいこう:2008/06/11(水) 02:50:12
>>125
取り込む前でも後でもいいからセルの書式を変更する
127名無しさん@そうだ選挙にいこう:2008/06/11(水) 03:19:32
>>126
どうもありがとうございます。
128名無しさん@そうだ選挙にいこう:2008/06/11(水) 04:47:20
せめてFor Each使ってほしいところだな。
しかし未だに「200枚のシートにVBAで数字を記入」などということをやってるやつがいるのか。
まだまだ啓蒙が必要だな。

>>119
本当にやりたいことは何?
在庫の管理?
売上の分析?
回収の管理?
検収の処理?
ゲーム作成?
129名無しさん@そうだ選挙にいこう:2008/06/11(水) 05:32:39
For Eachは最初からシートが200枚ないと無理では。
初期状態(シート3枚)からスタートするならこれでいいと思うのだけれど。

もうちょっと簡単にできそうな気はするんだけど俺の知識じゃ無理だ。
先生、教えてください。
130名無しさん@そうだ選挙にいこう:2008/06/11(水) 05:40:06
>>129
シートを生成してからFor Eachでいいんじゃない。
どうでもいいよ。こんなこと。
バカバカしい。
131名無しさん@そうだ選挙にいこう:2008/06/11(水) 06:26:43
シート生成のループと値セットのループを並べるのか?
1つで済ませた方がよっぽどいいわな。
わからないからって逃げるのはよくないぞ。おまけに捨てゼリフ。最低のザコだな。
132名無しさん@そうだ選挙にいこう:2008/06/11(水) 06:34:13
>>131
ほんとうにどうでもいい。
うんざり。
133名無しさん@そうだ選挙にいこう:2008/06/11(水) 06:40:27
どうでもいいなら黙ってろよカス
134名無しさん@そうだ選挙にいこう:2008/06/11(水) 06:40:36
>>131
>1つで済ませた方がよっぽどいいわな。
爆笑
135名無しさん@そうだ選挙にいこう:2008/06/11(水) 06:43:23
おはようみんな

今日も1日がんばろー
136名無しさん@そうだ選挙にいこう:2008/06/11(水) 06:44:54
>>131
さて。
「ループを1つで済ませた方がよっぽどいい」
のはなぜか。説明してもらおうか。
137名無しさん@そうだ選挙にいこう:2008/06/11(水) 06:47:03
ケチつける奴って逆に自分がケチつけられるのが怖いからコード示したりしないんだよね
138名無しさん@そうだ選挙にいこう:2008/06/11(水) 06:51:18
質問者は目的を達成してすでに見てないのに
いつまでもグダグダ続けるのがこのスレの掟
139名無しさん@そうだ選挙にいこう:2008/06/11(水) 06:52:35
>>137
>シートを生成してからFor Eachでいいんじゃない。
これでほぼコード示している。
だけどこんなやりとりほんとにつまんない。
200枚もシート作ってVBAで処理しないといけないなんて異常。
もっと前の段階で何か間違いが発生しているとしか思えない。
140名無しさん@そうだ選挙にいこう:2008/06/11(水) 06:55:31
>>137
ううん、ちがうよ。
最初からスレを荒らすのが目的でExcelのことなんか何も知らないんだよ。
ここの住人は面白いほど釣れるからね。
おまいらいいかげん荒らしはスルーしろ。
141名無しさん@そうだ選挙にいこう:2008/06/11(水) 06:57:43
なんでわざわざつまんないやりとりに参加してんのさ。頭おかしいんじゃないの?
142名無しさん@そうだ選挙にいこう:2008/06/11(水) 06:59:06
典型的な構ってちゃん
143名無しさん@そうだ選挙にいこう:2008/06/11(水) 06:59:32
>>141
無知、無学な連中を啓蒙したいのさ。
144名無しさん@そうだ選挙にいこう:2008/06/11(水) 07:02:21
啓蒙

あ、私が「けいもう」って言ったらみなさん笑ってくださいね。
145名無しさん@そうだ選挙にいこう:2008/06/11(水) 07:04:50
本当におまいら釣られすぎだぞ
スルー汁
146名無しさん@そうだ選挙にいこう:2008/06/11(水) 07:05:07
ここの回答者の大半が無知だってことは在庫管理の件で証明されたじゃないか
147名無しさん@そうだ選挙にいこう:2008/06/11(水) 07:07:37
ケチつける、ほぼ示す、これ啓蒙なんだって。すごいなー。さすが先生!大物ですね。将来が楽しみだ。
148名無しさん@そうだ選挙にいこう:2008/06/11(水) 07:10:36
相談所の前に「総合」って付いてる意味がようやくわかってきました。
149名無しさん@そうだ選挙にいこう:2008/06/11(水) 07:16:35
ここまでみんな俺の自演
150名無しさん@そうだ選挙にいこう:2008/06/11(水) 07:34:00
質問者には「情報を小出しにするな」と言い
啓蒙の為に回答を小出しにするんですね、ご苦労様です
151名無しさん@そうだ選挙にいこう:2008/06/11(水) 07:35:55
質問者が「200枚のシートを…」とか言い出した時点ですかさずツッコミいれないとなあ。
ここを疑問に思わず得意そうにVBAを披露するやつは回答者に向いてない。
しかも「ループを1つで済ませた方がよっぽどいい」とか意味不明なこと言って。
152名無しさん@そうだ選挙にいこう:2008/06/11(水) 07:43:01
       ____
     /      \
   /  _ノ  ヽ、_  \
  /  o゚⌒   ⌒゚o  \  今日もまた無知、無学な連中を啓蒙する仕事が始まるお
  |     (__人__)    |
  \     ` ⌒´     /
153名無しさん@そうだ選挙にいこう:2008/06/11(水) 07:47:21
劣等感の高いやつは無闇にAAを貼る傾向がある。
154名無しさん@そうだ選挙にいこう:2008/06/11(水) 08:21:54
マクロって元々何の略称ですか
155名無しさん@そうだ選挙にいこう:2008/06/11(水) 09:18:05
質問の内容が分かりにくいと切れる癖に
自分の回答が理解されないと逆切れするんですね。わかります。
156名無しさん@そうだ選挙にいこう:2008/06/11(水) 09:20:00
>>154
ミクロ(micro)とマクロ(macro)のマクロの方だったような気が
ミクロな命令いっぱいまとめてマクロみたいな、そんな感じだったかな?
だから、特に略してないんじゃねーかな
157名無しさん@そうだ選挙にいこう:2008/06/11(水) 09:33:11
>>154
VBA厨やピボット厨のようなバランス感覚がない奴らに向けた言葉。

「マー何てクさい口してるんでしょうね」
158名無しさん@そうだ選挙にいこう:2008/06/11(水) 10:49:39
"OK"なら緑色、"NG"なら赤色としたいのですが、
[書式][表示形式]のユーザ定義にどう書けばいいのでしょうか?
いろいろ試してはいるのですが、うまくいかなくてorz
159名無しさん@そうだ選挙にいこう:2008/06/11(水) 11:39:28
>>158
そこじゃなくて、
書式 → 条件付書式 
を見てください。
160名無しさん@そうだ選挙にいこう:2008/06/11(水) 12:54:17
次の値に等しい、ok
で書式を緑色選択、までかいてやれよ
回答の小出しえうぜぇww
161名無しさん@そうだ選挙にいこう:2008/06/11(水) 13:55:07
Excelのバージョンが書いてあったら詳しい手順を教えるのに…
162名無しさん@そうだ選挙にいこう:2008/06/11(水) 17:06:23
荒れ模様に便乗して…

>>150はテンプレに入れても良い名言
163名無しさん@そうだ選挙にいこう:2008/06/11(水) 18:06:56
>>154
辞書に載ってるよ
ttp://ja.wikipedia.org/wiki/%E3%83%9E%E3%82%AF%E3%83%AD_(%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E7%94%A8%E8%AA%9E)
164名無しさん@そうだ選挙にいこう:2008/06/11(水) 18:07:56
>>158
文字に色を付けたいのか、セル内の背景に色を付けたいのか、どっち?
あとExcelのバージョンも書いて。
165名無しさん@そうだ選挙にいこう:2008/06/11(水) 18:23:18
ありがとうございます。
色を付けるのは背景です。

エクセルのバージョンは
2000/2003/2007のどれも使う可能性があります。
バージョンによる違いを示してくれるとありがたいです…
166名無しさん@そうだ選挙にいこう:2008/06/11(水) 18:27:34
「条件付き書式」ってキーワードが分かれば後は自分でどうにでも調べられるだろ・・・
どんだけ他人任せなんだよ・・・
167名無しさん@そうだ選挙にいこう:2008/06/11(水) 18:33:51
うん。他人任せだよ。それより俺が聞いてる相手は>164だから。
お願いします。
168名無しさん@そうだ選挙にいこう:2008/06/11(水) 18:43:14
回答小出しして偉そうな割に返答がねーな
169158:2008/06/11(水) 19:11:43
自己解決。

解決方法はお前らみたいなゴミには教えない。
ググれカス!
170名無しさん@そうだ選挙にいこう:2008/06/11(水) 19:12:28
よくやった。
171名無しさん@そうだ選挙にいこう:2008/06/11(水) 19:21:39
>>166-170
自演ぽいなw
172名無しさん@そうだ選挙にいこう:2008/06/11(水) 19:27:06
かつて主に回答者だったが、知ったかぶり・勿体付けがあまりにむかつくので>167と>170を自演した
後悔してなくもないことは全く無い
173名無しさん@そうだ選挙にいこう:2008/06/11(水) 22:49:32
おまいらシートを指定するときって、どうやってる?

俺はSheets("うんこ")とかで指定しているが、これだとAddしたシート名に
法則を持たせるために、名前を変更しないといけない。

インデックス番号を指定する場合、Sheets(1)とかでやれることは知っているが、
Addした時に自動的に降られるインデックス番号って法則性やら自分で指定したりできんの?
174名無しさん@そうだ選挙にいこう:2008/06/11(水) 23:07:20
>>173
index番号はシートタブが一番左のものが1
だからindexが2のシートを一番左に持ってきたらそのシートのindexは1になる
175名無しさん@そうだ選挙にいこう:2008/06/11(水) 23:15:28
【1 OSの種類         .】 Windows xp
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Excel シフト表

ゲームセンターの店長をやっていて、バイトの勤務シフトを作成しています。
バイトは10人ほどおりまして、1日に早番と遅番の2交代で勤務してもらって
います。
普段は2人でお店を見てもらっていますが、金曜日と土曜日の遅番は3人体制
にしています。
人によって遅番はできないとか、土日は無理とか、週5日以上絶対入りたいだ
とか希望がありまして、なるべく希望通りになるように組んでいます。
毎回のことなんで大体はパターン化しているのですが、やれ子供の運動会だ、
大学の試験だとかでパターンが崩れてしまうと大変で、シフト組むのが苦痛で
たまりません。こういうのってExcel使って自動的にぱっぱと作成できないもん
なんですかね。
いいやり方を教えてください。
よろしくお願いします。
176名無しさん@そうだ選挙にいこう:2008/06/11(水) 23:23:14
177名無しさん@そうだ選挙にいこう:2008/06/11(水) 23:26:22
>>175
まず、すべての条件を箇条書きにする(コレ一番大事)
ひとつの条件を組み込んで正常に動作したら次の条件を組み込む
すべての条件をクリアしたら完成

当たり前のこと言ってんじゃねえって思うかもしれないけど、ホントにコレだけ
その過程でクリアできない条件が出てきたらここで質問するってのが、
メンテナンスまで考えた場合、最良の方法だと思う
178名無しさん@そうだ選挙にいこう:2008/06/11(水) 23:32:04
塾の先生に教えてもらってきました。

Sub a()
Const M = 200 'シート数

While Worksheets.Count < M
Worksheets.Add after:=Worksheets(Worksheets.Count)
Wend

I = 1
For Each S In Worksheets
S.Cells(1, 1) = I
I = I + 1
If I > M Then Exit For
Next S

End Sub
179名無しさん@そうだ選挙にいこう:2008/06/12(木) 00:52:46
Excelの仕様がよくわからないんだけどWorksheets(Worksheets.Count)が必ず存在するって保証はあるの?
どのバージョンでもシートを削除した時、インデックスには欠番は生じずに前に詰められるの?
180名無しさん@そうだ選挙にいこう:2008/06/12(木) 01:15:17
>>179
>保証はあるの?
ある

>欠番は生じずに前に詰められるの?
うん
181175:2008/06/12(木) 05:11:28
>>176
早速使ってみました。
ただ、条件に合うシフトを自動的に考えてくれるというものではないみたいですね。
これはこれで便利そうなのでもう少し練習してみます。
ありがとうございました。

>>177
今のところ思いつく条件はこれだけです。
もしかしてまだもれている条件があるかもしれません。なにしろ勝手な希望を
どんどん言ってきますので。

1.バイトの人数は10人程度(増減ありますが、9人から11人になるよう
  に採用しています。)
2.早番(10:00-17:00)と遅番(17:00-24:00)がある。
3.早番と遅番を通しで入ることは無い。
4.基本的には2人体制。土日の遅番だけ3人体制。
5.できるだけたくさん入って稼ぎたいバイトや、週3日までに抑えたいバイ
  トがいる。
6.早番ができないバイト、遅番ができないバイトがいる。
7.土日は入れないバイトがいる。逆に土日に入りたいバイトもいる。
8.「この日はぜひ入りたい」「この日はぜひ休みたい」という希望をできる
  だけかなえてあげたい。

条件1と2は表のレイアウトで表現できています。
条件3〜5は入っている人数をExcelに計算させてチェックしています。
条件6と7は記憶に頼っています。こいつは夜しか入れなかったなとか、土日
希望だったなとか思い出しながらシフトを組んでいます。
条件8を考慮するのが大変で、あっちとこっちを入れ替えたりしながら、いつ
もいきあたりばったりで組んでいます。
182175:2008/06/12(木) 05:17:20
ごめんなさい。
条件4が間違っていました。
誤)4.基本的には2人体制。土日の遅番だけ3人体制。
正)4.基本的には2人体制。金土の遅番だけ3人体制。
183名無しさん@そうだ選挙にいこう:2008/06/12(木) 09:10:53
>>173
オブジェクト名(CodeName)を使うのが一番安全じゃない?
184名無しさん@そうだ選挙にいこう:2008/06/12(木) 09:28:26
>>181
NP完全じゃない?あまりコンピュータに向かない計算と聞く
例えば週三回希望の人が8の条件上、どうしても二回になったりで
どれだけ不満感が募るのかなんて>>181にしかわからないからね
更に来月でその分埋め合わせるから今月は我慢してくれとかになるとお手上げ
更に新人は覚えさせるために多めに入れようとかになると・・

それでもマクロでやるなら、人の許容範囲(最低日数)を設定して、
まずそれで埋めるようにする
後はあいたところを「働けるだけ働かせてほしい」という人で埋めるのがいいと思う
185名無しさん@そうだ選挙にいこう:2008/06/12(木) 09:34:06
186名無しさん@そうだ選挙にいこう:2008/06/12(木) 09:36:50
すべての条件が数式で表現可能なら、ソルバーでできそうな気がするんだが。
187名無しさん@そうだ選挙にいこう:2008/06/12(木) 10:15:14
>178
回す回数が分っている時に While を使わない方がいい。
毎回 Sheets.Count するのも無駄だし。
For Each で回しながら、別にインデックス立てるのも
バカっぽい。

塾を代えなさい。
188名無しさん@そうだ選挙にいこう:2008/06/12(木) 10:44:36
1回見れば十分なプロパティをループの中に書いて何度も参照するのは効率悪いよな。
ループもWhileよりForのが少しパフォーマンスがいいから、工夫して置き換え可能ならForで書く。

Sub aaa()
 Const M = 200 'シート数
 For I = Worksheets.Count To M - 1
  Worksheets.Add after:=Worksheets(I)
 Next
 For I = 1 To M
  Worksheets(I).Cells(1, 1) = I
 Next
End Sub
189名無しさん@そうだ選挙にいこう:2008/06/12(木) 11:11:47
Excel2002です。よろしくお願いします。

@印刷プレビューなどで変更してしまった余白の値をデフォルトにもどすには
  どうすればよいですか?

A作表中に手動で行の高さを変えてしまうと、
  文字サイズに合わせて高さを自動変更しなくなりますが、
  自動変更されるように戻すにはどうしたらよいですか?
190名無しさん@そうだ選挙にいこう:2008/06/12(木) 11:31:30
>>189
2は1行目なら左端の1と2の間にカーソルをもっていってダブルクリック
1は知らないな。新規ブック立ち上げて、プレビュー画面にある設定で余白の値を控える
その後作成中の表の余白を値で入力すれば間違いないとは思うけど
191名無しさん@そうだ選挙にいこう:2008/06/12(木) 11:34:11
>>189
2002、2003は余白の数値を自分でメモっておくしかない。2007だと簡単に戻せるんだけど。
幅や高さは境界線をダブルクリックすれば自動変更に戻る。
192名無しさん@そうだ選挙にいこう:2008/06/12(木) 11:35:59
うあ、文章を書いてるうちにまったく同じ内容のレスが…
193名無しさん@そうだ選挙にいこう:2008/06/12(木) 11:41:59
それだけ間違いないレスってことでいいんじゃないかな?
194名無しさん@そうだ選挙にいこう:2008/06/12(木) 12:34:53
>>181
人間の希望ってファジーなものだから各人の希望を全部かなえる
シフトを自動で組むってのはかなり難しいんじゃないかなあ。
シフトの入力自体は人間がやって、それが各自の希望を満たすか
どうかを判定する式を入れておく辺りが妥当な落とし所だと思う。
195名無しさん@そうだ選挙にいこう:2008/06/12(木) 12:44:55
ここの回答者たちは、在庫管理やシフト作成など実社会で必要とされる使い方を質問されると途端に答えにつまるね。
一方、書式設定とかVBAでオモチャを作ることには冗舌だ。

シフト作成だが結論から言うとExcelでやるのはやや無理がある。できることはできるが、1週間分くらいしかできない。
196名無しさん@そうだ選挙にいこう:2008/06/12(木) 12:49:26
「やや無理がある。」で終わってればそれなりの意見だが
「できることはできるが、1週間分くらいしかできない。」が全く不明。
197名無しさん@そうだ選挙にいこう:2008/06/12(木) 12:56:00
ここの回答者たちは、質問者が本当に必要としている回答を求められると途端に答えにつまるね。
一方、無関係な茶々を入れたり煽ったりすることには冗舌だ。

シフト作成だが、1週間分ができてそれ以上ができない理由というのを知りたい。
つーか、できるんなら1週間分でもいいから示してやれよ。
それだけでもけっこう助かるんじゃないの?
今の俺のレベルじゃここまで複雑なのは無理だ。
198名無しさん@そうだ選挙にいこう:2008/06/12(木) 12:56:29
いずれの質問も解答は出尽くしてるだろ、>>195は何見てるんだよ。
199名無しさん@そうだ選挙にいこう:2008/06/12(木) 14:00:06
質問も回答も伝わらなければ意味がないわな
何が見えてるんだか知らないけど素晴らしい目を持ってんだろうな
200195:2008/06/12(木) 14:03:04
週○日って条件があるんだから1週間の範囲でしか表作れないのは当たり前だろ。
1週間以上の表からどうやって日数をカウントするんだよ。
201名無しさん@そうだ選挙にいこう:2008/06/12(木) 14:08:57
>>200
偽者め
202名無しさん@そうだ選挙にいこう:2008/06/12(木) 14:09:46
きもちわる
203名無しさん@そうだ選挙にいこう:2008/06/12(木) 14:15:17
今のところ質問者はまともに質問してるし
回答者も質問の条件の範囲内で最善の回答してるよね。
文句言ってる人は具体的な数式が出てこないんで納得いかないのかなあ。
204名無しさん@そうだ選挙にいこう:2008/06/12(木) 14:24:58
189 >>190-193
ありがとう、複数行選択でもそれぞれの行に効果あるんですね。
205名無しさん@そうだ選挙にいこう:2008/06/12(木) 14:53:06
バイト1人が、ある日早番である状態を表す変数、ある日遅番である状態を表す変数を用意する。
バイトが11人いるなら1日分だけで22変数必要。9日分なら198変数だ。
これが限界だな。まあだいたい1週間だ。
206名無しさん@そうだ選挙にいこう:2008/06/12(木) 15:06:10
>>205
それを5回再帰させれば1ヶ月分できるじゃん
配列使えば198変数だろうが、19800変数だろうが問題ないように思うが
207206:2008/06/12(木) 15:09:45
文句言っててもしょうがないから、VBA厨の面目躍如の為に書いてみるよ
手が遅いから1週間ぐらいかかるかも知れん上、叩き台程度の物しか出来んだろうが
208名無しさん@そうだ選挙にいこう:2008/06/12(木) 15:47:27
>>195
だから無理があるから向いてないって君も言ってるじゃない
何が言いたいの?
209名無しさん@そうだ選挙にいこう:2008/06/12(木) 16:02:30
ここでくまひげ先生の出番ですよ
210名無しさん@そうだ選挙にいこう:2008/06/12(木) 16:26:30
>>208
Excelでは無理があるのには基本的に同意なんだがその理由があまりに情けない。

あまりコンピュータに向かないらしい
今月は我慢してくれとなるとお手上げ
さらに新人を多めになんてとんでもない
人間の希望はファジーだから←質問の条件はファジーじゃないだろ
211名無しさん@そうだ選挙にいこう:2008/06/12(木) 16:34:02
質問の条件はファジーだろ
シフトは16箇所あるが16箇所がぴったり埋まるわけではない
どこかで妥協しなければならない
その点を書いてないんだから無理
212名無しさん@そうだ選挙にいこう:2008/06/12(木) 16:34:22
>>210
質問者はいくつかの例を挙げてるだけで、その条件さえ合えばいいってものでもないだろ。
「こうすれば一応は希望通りだが、これじゃAさんのシフトが少なすぎるな、もうちょっと増やすか・・」
とか色々人間が判断しなきゃ決められない部分が絶対出てくる。全部自動でなんて出来るわけがない。
「実社会で」云々言ってる奴の方が現実を知らないんじゃないのか?
213名無しさん@そうだ選挙にいこう:2008/06/12(木) 16:50:27
VBAをぶん回して条件に合うシフトパターンをいくつか割り出して
その中からユーザーに選ばせるってのがいいないでしょうか。
俺VBA出来ないんで誰か作って下さい。
214名無しさん@そうだ選挙にいこう:2008/06/12(木) 17:00:37
本人がVBA覚えて、
自力解決が一番早そうですね。
215名無しさん@そうだ選挙にいこう:2008/06/12(木) 17:52:09
【1 OSの種類         .】 Windowsxp
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 関数 文字列 エクセル
a1に数(3など)、b1にa1を反映させ、単位つきで表示させたい(3人、など)のですが、
この場合、
=CONCATENATE(a1,b1)、a1&"名"、ユーザー書式で0"名"
とどれにするのが軽くなりますでしょうか?
純粋に重さ(PCへの負担の少なさ)だけで知りたいです。
他にも方法があればお願いします。
216名無しさん@そうだ選挙にいこう:2008/06/12(木) 17:53:18
Excelで無理があると言っても結局Excelでやる他ないからな。
フリーソフトでこの手のは色々あるけど
本人の希望通りの物はないだろうから自作した方が早い。
217名無しさん@そうだ選挙にいこう:2008/06/12(木) 18:24:10
>>215
どちらが重いかはすぐには答えられないが、関数や演算子で文字列に変換してしまうと、
その数字が別の計算に使えなくなってしまう。
よって書式で0名にするのをおすすめする。
218名無しさん@そうだ選挙にいこう:2008/06/12(木) 18:51:09
再計算1億回の所要時間を測ってみた。

書式のユーザー定義 7549 ms
演算子&で結合 7383 ms
関数で結合 7493 ms

大差ないから書式でやっとけ。
つーか、この程度自分で調べろよ
219名無しさん@そうだ選挙にいこう:2008/06/12(木) 19:00:06
>>218
220名無しさん@そうだ選挙にいこう:2008/06/12(木) 19:23:15
>毎回のことなんで大体はパターン化しているのですが、やれ子供の運動会だ、
 大学の試験だとかでパターンが崩れてしまうと大変で、シフト組むのが苦痛で
 たまりません。

→パターン通り組んでしまって、イレギュラーなのは後からチェンジする。

このパターンと10人全ての属性(早番遅番休日の可不可、日数の希望など)
が分れば少しはエクセルで考えてみてもいいけど、質問のような雲を掴む様な
話では、店長さんの仕事を代わりにやってあげようという気にならない。
>195のいう、答えに詰まっている訳ではない。
221名無しさん@そうだ選挙にいこう:2008/06/12(木) 19:31:00
やったらやったで調子に乗って追加要求が止まらないに一票。
222名無しさん@そうだ選挙にいこう:2008/06/12(木) 19:39:15
>>211
なんで解が無いと決めつけてるんだよ。間抜け。
解は有る場合と無い場合があるだろ。
解が無い場合は条件を緩めてやるしかない。どの条件を緩めるかなんてのはこの問題を考える上でまったく関係ない。
解が有るなら有る。無いなら無いんだよ。全然ファジーじゃないよ。
223名無しさん@そうだ選挙にいこう:2008/06/12(木) 19:47:36
>>210
Aさんのシフトが少なすぎるなら、条件が不足していたんだ。
条件を追加すればいい。単純な話じゃないか。
本当に考えたのか?
224名無しさん@そうだ選挙にいこう:2008/06/12(木) 19:54:52
>>213
原始的だが問題の本質を捕らえたいい答えだ。
みんなもこんな風に考えられる人になりなさい。
VBAなどいくらできてもバカに真珠というものだ。
225名無しさん@そうだ選挙にいこう:2008/06/12(木) 20:05:54
お、新しいことわざ。
226名無しさん@そうだ選挙にいこう:2008/06/12(木) 20:08:52
n-p問題ってさ、人間が直感でやった方が早かったりするんだよね。
完璧ではないかもしれないけど無難な回答がすぐに出てくることが多い。
227名無しさん@そうだ選挙にいこう:2008/06/12(木) 20:41:51
要望が多すぎて、条件に当てはめるのが難しい時は
出勤可能な全ての組合せを実行して、それぞれのケースで、
各人ごとの評価を行い(希望日より1日多いと-1点、少ない
と-2点とか)得点が一番高い組合せを選ぶという力技が
良いと思う。
逆に、いつ出勤しても良いという人が多いときは
組合せがPCでも手に負えない程膨大なものになるから、
店長のいつものパターンでやった方が良い。
228名無しさん@そうだ選挙にいこう:2008/06/12(木) 20:58:47
まず10人を7日間に割り当てる組み合わせは(10*9*8*7)^5*(10*9*8*7*6)^2通り。
再帰ループでシフトを埋めてって、条件に合わない物をどんどん刈り取っていく。
手詰まりになったらトラックバック。
このぐらいなら、今のマシンなら力業でもなんとかなりそうなレベルだ。

条件判断は要求のきつい物から順に並べると早い段階で刈り取りが進む。
ただ、ロジックをプログラムに組み込むと計算は速くなるけど汎用性が無くなるから、
作った本人にしかメンテができなくなる。

汎用性を持たせようとするとデータ構造を考えるのとコーディングがめちゃくちゃめんどくさくなる。
結論としては、ヒントだけ出して本人に作ってもらうのが一番。
229名無しさん@そうだ選挙にいこう:2008/06/12(木) 21:04:10
>>228
やっとまともなやつが出てきたか。
このスレはバカしかいないのかと思った。
230名無しさん@そうだ選挙にいこう:2008/06/12(木) 21:08:38
重複は除かないと。
(10*9*8*7)/(24/4)^5*(10*9*8*7*6)/(120/12)^2
231名無しさん@そうだ選挙にいこう:2008/06/12(木) 21:18:47
累乗のカッコが無いね、ゴメン

(10*9*8*7/24*4)^5*(10*9*8*7*6/120*12)^2
232名無しさん@そうだ選挙にいこう:2008/06/12(木) 21:36:46
>>230-231
同じ人が毎日入る可能性もあるんだから、そんなに単純には重複は除けないと思うんだけど。
233名無しさん@そうだ選挙にいこう:2008/06/12(木) 21:45:00
何この専門バカだらけの烏合の衆w
大事な事が何も見えちゃいない。
234231:2008/06/12(木) 21:52:09
>232
10人の内4人が出る組合せは、順序を区別すると 10*9*8*7
区別しないと 10*9*8*7/(4*3*2)
早番と遅番は区別するから 10*9*8*7/((4*3*2)/2*2)

>233
3年ROMってね。
235名無しさん@そうだ選挙にいこう:2008/06/12(木) 21:52:28
煽るだけのバカよりましだな
236名無しさん@そうだ選挙にいこう:2008/06/12(木) 21:56:28
>>228
いや、そもそも1週間単位でシフトを組むって話では無かったと思う。
237名無しさん@そうだ選挙にいこう:2008/06/12(木) 21:59:44
割り当てのロジックを自分で作るんなら、まずは1週間分やってみて
そこから拡張していくのが無難ではないか。
238名無しさん@そうだ選挙にいこう:2008/06/12(木) 22:00:06
>>234
7日を早番・遅番と分けるのでなくもっと単純に
1週間の中に14の枠があると考えればいいだけなんじゃ・・・
239名無しさん@そうだ選挙にいこう:2008/06/12(木) 22:02:06
質問者の事なんてもはやどうでもよくなってるなw
240名無しさん@そうだ選挙にいこう:2008/06/12(木) 22:04:12
賢い人がスパっと解決してくれるらしいので静観することにしました
241名無しさん@そうだ選挙にいこう:2008/06/12(木) 22:07:11
>>239
わがままな要求を満たすシフトを考えるのは、人にとってもコンピューターにとっても面倒なんだよ。
質問者はコンピューターなら簡単かもしれないと考えたが、実際はそうではなかった。
たぶんこの調子じゃこのスレが埋まるまでには完成しない。
242名無しさん@そうだ選挙にいこう:2008/06/12(木) 22:08:40
>>238
一人が2回入って、丸一日働くことが可能ならそれでもいいけど
243名無しさん@そうだ選挙にいこう:2008/06/12(木) 22:10:15
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

わかりにくくて申し訳ありません。
下の表のようなものは、エクセルの作業フォームだと思ってください
ABCDE...と縦の123は、セル番地です。
教えていただきたいのですが、A〜Iに値を入力して、JにはABCの平均値が
KにはDEFの平均値が、LにはGHIの平均値が表示されるように、Jに関数式
=AVERAGE(A1:C1) 、 Kに、=AVERAGE(D1:F1) 、Lに、=AVERAGE(G1:I1)を
それぞれ入力したのですが、KとLは正常に表示されるのですが、ABCから順に
Iまで値を入力していくとJの部分の関数式のC1の部分が値を入力していくセル番地を
追ってしまい、最終的にI1となってしまいます。KとLは動かないのに
なぜ、Jだけ動いてしまうのでしょうか?
このような書き方では非常にわかりづらいかもしれませんが、もしわかる
人いたらよろしくお願いいたします。

*下の表のようなものはエクセル作業フォームです。

  A B C D E F G H I J K  L
1  2 1 3 2 3 2 1 3 1 2 2.5 2
2
3
244名無しさん@そうだ選挙にいこう:2008/06/12(木) 22:12:03
>>242
続けて勤務する場合があるかどうか質問者は書いてないので不明。
不明な物は「可能性としては有り得る」と考えておいた方がいい。
245名無しさん@そうだ選挙にいこう:2008/06/12(木) 22:15:29
続けて勤務することはないって書いてあるじゃん
246名無しさん@そうだ選挙にいこう:2008/06/12(木) 22:19:21
>>245
あ、ごめん、書いてあった。最初のレスしか見て無かったわ。
でもどっちにしろこういうのは「週3回以上」とかと同等の「条件」として別のルーチンで処理した方がいいと思うんだけどね。
その方が本体のプログラムがシンプルになるし、汎用性も高くなる。
247名無しさん@そうだ選挙にいこう:2008/06/12(木) 22:29:47
みんな在庫管理がよほどトラウマになったのか真剣に物事を考えるようになってきたな。
いい傾向だ。
248名無しさん@そうだ選挙にいこう:2008/06/12(木) 22:30:23
>>243

なりません。
お前の式が何かおかしいんだろ。

てかバイトのシフトの話してんだ。空気嫁!
249名無しさん@そうだ選挙にいこう:2008/06/12(木) 22:30:31
totoXていうサッカーくじのソフトがある
仕組みとしては同じものをつくればいいはず
250名無しさん@そうだ選挙にいこう:2008/06/12(木) 22:34:10
14×11 (コマ数×人数) の配列を作ってフラグを立ててきゃいいんだな。
それとは別に、各コマに何人入ったか保持する整数型の配列と
各人が何コマ入ったかを保持する配列。
あとは二重ループでぐるぐる回して、サブルーチンで入れるかどうか判定。
251名無しさん@そうだ選挙にいこう:2008/06/12(木) 22:35:08
また馬鹿が沸いたw>>249
252名無しさん@そうだ選挙にいこう:2008/06/12(木) 22:37:01
それならVBAでやるより、14*11の表を作ってソルバーで解いた方がよくない?
Excelスレなんだからさあ。

ttp://www.atmarkit.co.jp/fwin2k/win2ktips/399solver/solver.html
253名無しさん@そうだ選挙にいこう:2008/06/12(木) 22:39:11
>>243
何度やっても、正常に式が完成してしまう・・・
不思議だ

もう一度最初から書き直してみれば?(新規シートとかにテストで)
254名無しさん@そうだ選挙にいこう:2008/06/12(木) 22:43:26
>>252
ソルバーだと1個解が見つかったらそこで終わっちゃうじゃん
255名無しさん@そうだ選挙にいこう:2008/06/12(木) 22:46:26
>>254
何か問題でも?
256243:2008/06/12(木) 22:46:27
>>253
そうですか・・・おかしいですね・・
わかりました、もう一度やってみます。
でも・・できたら違う式で同じ様な結果を出すものか何かあったら
教えていただきたいのですが。ぜいたく言ってすいません・・・
無ければいいです。よろしくおねがいします。
257名無しさん@そうだ選挙にいこう:2008/06/12(木) 22:46:57
1個で十分じゃん
本末転倒してるぞ
258253:2008/06/12(木) 22:51:42
>>256
単純に、
J1=(A1+B1+C1)/3
K1=(D1+E1+F1)/3
L1=(G1+H1+I1)/3
これでも平均はでるよ(関数じゃないけど)
259名無しさん@そうだ選挙にいこう:2008/06/12(木) 22:52:59
なんだ 条件を満たすすべての組み合わせを出すんじゃないのか
じゃ簡単じゃん ちょっとつくってくるわ 舞ってな
260名無しさん@そうだ選挙にいこう:2008/06/12(木) 22:54:28
>>256

足し算して割るとかいくらでもあるだろうよ。
それに元の式もお前が間違ってるだけだ。

さっさと引っ込めやゴルァ!
261名無しさん@そうだ選挙にいこう:2008/06/12(木) 22:56:16
>259

既にだれも必要としていない気がするが・・・


     ♪  Å
   ♪   / \   ランタ タン
      ヽ(´Д`;)ノ   ランタ タン
         (  へ)    ランタ ランタ
          く       タン
262名無しさん@そうだ選挙にいこう:2008/06/12(木) 23:02:37
シフト表の件も何人かは正解に到達したようだな。
Excelでやるならソルバーを使うのが妥当だろう。
本業のかたわら自作でこれ以上のものを作れるやつはなかなかいないよ。

ソルバーは変数が200個以下しか扱えないという制限がある。
だからせいぜい1週間くらいしか計算できないわけなんだが、GLPKなどの線形
計画法のプログラムを使えば数ヶ月にわたるシフト作成も可能だろう。
試してみてはいかが。>>175

問題がファジーだとか言っていたやつは反省しなさい。
263名無しさん@そうだ選挙にいこう:2008/06/12(木) 23:04:13
ほい、ソルバー用の表だ。あとは制約条件を好きなだけ入れればいい。
ttp://www11.axfc.net/uploader/He/so/109160.xls&key=shift
264名無しさん@そうだ選挙にいこう:2008/06/12(木) 23:05:01
>>262
>ソルバーは変数が200個以下しか扱えないという制限がある。
>だからせいぜい1週間くらいしか計算できないわけなんだが

分かってるようで分かって無いんだなあw
こういう自分は頭がいいと思ってる(けど違う)奴が一番たちが悪い
265243:2008/06/12(木) 23:17:35
>>258
ありがとうございます。
そうですね、そういうやり方もありましたね。
とりあえずいろいろ試してみます。ありがとうございました。
266名無しさん@そうだ選挙にいこう:2008/06/12(木) 23:28:39
WinXP Excel2003
質問です。

なんで>>262のアホは能書き言ってるだけのクセにこんなに上から目線でエラそうなの?
解決法があったら教えて下さい。
267名無しさん@そうだ選挙にいこう:2008/06/12(木) 23:46:35
>>266
残念ながら匿名掲示板では言った者勝ちなので、スルーしかないのが現状です。
268名無しさん@そうだ選挙にいこう:2008/06/12(木) 23:49:51
つくってみたが、解がないってでる。どこがおかしいのか教えてくれ

http://www11.axfc.net/uploader/He/so/109180.xls&key=solver
269名無しさん@そうだ選挙にいこう:2008/06/12(木) 23:51:00
ソルバーは確かにひとつの方法だが
質問者への答えとして本当に適切かどうかは微妙だな。
頭はいいんだろうけど頭でっかちというか何というか。
270名無しさん@そうだ選挙にいこう:2008/06/12(木) 23:58:31
>>268
そもそも今回の問題は最適解が必ずあるとは限らないので、
その場合は店長判断で条件をゆるめて答えが出るまで繰り返すしかない。
271名無しさん@そうだ選挙にいこう:2008/06/13(金) 01:42:06
エクセルのキーボードショートカットについて質問です。

現在選択されているセルは、そのままで画面表示上、画面の一番上にもっていきたいのですが、可能でしょうか?


たとえば、C3を選択している状態で、C3が画面表示上一番上にもってくるという意味です。
272名無しさん@そうだ選挙にいこう:2008/06/13(金) 02:01:13
>>271
デフォルトのショートカットではできないけどScrollLockを押してからカーソルキーの↓を押してみ
どうしても一発でやりたかったらマクロを作って自分でショートカットに登録
273名無しさん@そうだ選挙にいこう:2008/06/13(金) 02:07:02
>>271
こういうマクロを登録

Sub カーソル行を画面最上部へ()
 ActiveWindow.ScrollRow = Selection.Row
End Sub
274名無しさん@そうだ選挙にいこう:2008/06/13(金) 02:37:28
>>266>>267>>269
在庫管理もできないアホどもが。
悔しかったら>>268に回答してやれよ。

>>270
お前何言ってるの?
当たり前だろ。バカじゃないの?
275名無しさん@そうだ選挙にいこう:2008/06/13(金) 02:47:04
>>274
あ、先生。夜勤ごくろうさまです。深夜の警備は大変ですよね。
276名無しさん@そうだ選挙にいこう:2008/06/13(金) 03:19:32
>>274
お前は日の当たらない倉庫で在庫管理だけしとけよ
お前程度の能力では棚卸しが大変だろうけど
277名無しさん@そうだ選挙にいこう:2008/06/13(金) 08:08:18
あれが大変ですね、これも大変ですね、と他人の心配してる場合じゃないよ。お前ら。
このスレ今さっき最初から読んでみたけど、まるで先生に反抗してる中学生だ。
278名無しさん@そうだ選挙にいこう:2008/06/13(金) 10:22:58
知り合いから受けている相談なのですが、現在原因がつかめていないので
質問させてください。

・Excel2000で、セルに計算式を埋め込んでいるブックを
 開くと、たまに(毎回ではない)計算式の一部がズレる。

 例えば
  =A1+SUM(B1:E1)
 
 となっているものが、何かのタイミングで
  =C1+SUM(D1:G1)

 になっていることがある。

こういう現象は聞いたことが無いし、毎回ならともかく「たまに」ということなので
何らかの不注意や操作ミス(挿入したとか)かと思うのですが、
経理かなにかで値を入力する以外の操作をしないブックだと言っており、
原因が思いつきません。

どなたか何か「これじゃないか?」って思い当たることがあればお教え下さい。
よろしくお願いします。
279名無しさん@そうだ選挙にいこう:2008/06/13(金) 11:11:40
・挿入してる
・コピーしている
・知らない間にマクロを実行させている
・似た見た目の違うブックを開いていた
・気のせい、目の錯覚

のどれかだと思います

280名無しさん@そうだ選挙にいこう:2008/06/13(金) 12:38:57
>>278
"ブックを開くと"っていうのが怪しい
お知り合いの方は、本当にそれだけの作業しかしていないんですかね

キャプチャソフトを立上げながら作業していれば、原因がつかめるかm(ry
281名無しさん@そうだ選挙にいこう:2008/06/13(金) 13:56:09
>>278
「知り合いから」ってのがややこしいな。
毎回ずれてるのに気付いてない可能性もある。
ずれてたらどうするのか、対処方法も確認した方がいい。

まずは変なマクロが動いてないか、登録されてないか確認だな。
Ctrl+Shift+Zあたりが怪しい。
行や列の挿入をワンタッチでできるようにしてる人は多いからね。
Alt+F8で登録されてるマクロを確認してみ。
282278:2008/06/13(金) 14:04:13
ありがとうございます。
知り合いからの電話での相談ですが、経験上「本人が誤操作で変更してしまっていて気付かず保存」が
一番有力な説だと思うんですが、本人がそんなことは絶対してない!みたいに言うので
不具合的な要素でないか、まずは調べてみています。

まあ、多分マウスで色々触っているうちに気付かずだと思うんですけどねえ。

キャプチャは無理ですね。違う会社の経理のPCにそんなの仕掛けるわけにはいきませんしw

引き続き調べてみます。
283名無しさん@そうだ選挙にいこう:2008/06/13(金) 14:24:39
>>282
パソコン関係の相談では、必ず「自分は何もやってない」と言うので、信用しないのが
暗黙のルールになっています。

原因がわかってからも「わざとじゃない」「そんな機能知らなかった」と必ず言うので、
心の準備をしておいてください。
284名無しさん@そうだ選挙にいこう:2008/06/13(金) 14:27:29
シートを監視するマクロを仕掛ければ?
列がずれたら警告を出すか、どこかに日時を記録するような。
簡単に作れるよ。
285名無しさん@そうだ選挙にいこう:2008/06/13(金) 14:33:10
【1 OSの種類         .】 WindowsXP,Vista
【2 Excelのバージョン   】 Excel2000,2002,2003,2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】visual-basic vba excel 型

お世話になります。

ExcelのVBAの整数計算について教えてください。
vbaというのは、visual-basicなのですよね?
visual-basicは、整数型として、
Short:16bit
Integer:32bit
Long:64bit
の型があることが、MSDNだとか、各所の解説サイトに示されていますが、
ExcelのVBAでは
Integerは16bit、Longは32bitのようです。

8バイト整数や、4バイト符号無し整数を取り扱いたいのですが、不可能なのでしょうか。
よろしく御願いします。

4バイト符号無し整数に関しては、有効桁数が小さいので、doubleを用いて計算しているのですが、
8バイト整数を扱えずに困っています。
(doubleの有効桁数が、十数桁(10前半)しかなかった気がします。)

Excelの本体のシートの方でも、10進数15桁程度で有効数字が切れるようで、
これがExcelの限界なのかとも思ったのですが…。
286名無しさん@そうだ選挙にいこう:2008/06/13(金) 15:07:31
バイト型 (Byte) 1 バイト 0 〜 255
ブール型 (Boolean) 2 バイト 真 (True) または偽 (False)
整数型 (Integer) 2 バイト -32,768 〜 32,767
長整数型 (Long) 4 バイト -2,147,483,648 〜 2,147,483,647
単精度浮動小数点数型 (Single) 4 バイト -3.402823E38 〜 -1.401298E-45 (負の値)。
1.401298E-45 〜 3.402823E38 (正の値)。
倍精度浮動小数点数型 (Double) 8 バイト -1.79769313486231E308 〜 -4.94065645841247E-324 (負の値)。
4.94065645841247E-324 〜 1.79769313486232E308 (正の値)。
通貨型 (Currency) 8 バイト -922,337,203,685,477.5808 〜 922,337,203,685,477.5807
10 進型 (Decimal) 14 バイト 小数部分を持たない数値の場合、
-79,228,162,514,264,337,593,543,950,335 〜 79,228,162,514,264,337,593,543,950,335 の範囲の値をとります。
小数点以下 28 桁の数値の場合、
-7.9228162514264337593543950335 〜 7.9228162514264337593543950335 の範囲の値をとります。
絶対値の最小値は 0 を除いた場合、
0.0000000000000000000000000001 です。
日付型 (Date) 8 バイト 西暦 100 年 1 月 1 日〜西暦 9999 年 12 月 31 日
オブジェクト型 (Object) 4 バイト オブジェクトを参照するデータ型
文字列型 (String) (可変長) 10 バイト + 文字列の長さ 0 〜 2GB
文字列型 (固定長) 文字列の長さ 1 〜 2GB
バリアント型 (Variant) (数値) 16 バイト 倍精度浮動小数点数型の範囲と同じ。
バリアント型 (Variant) (文字列) 22 バイト + 文字列の長さ 可変長の文字列型の範囲と同じ。
ユーザー定義型

通貨型か10進型かな?好きなほう選ぶといい
ちなみにこれF1のヘルプで見れる
287名無しさん@そうだ選挙にいこう:2008/06/13(金) 15:14:19
>>285
Visual BasicはVBです。VBAはVisual Basic for Applicationの略です。
たった1文字の違いですが、プログラミング言語としてはまったく別の物なので、
ちゃんと区別しないと話がややこしくなります。
MSDNなどの資料を見る時も、VBのところを見たのでは参考にならないことが多いです。
注意してくださいね。
288名無しさん@そうだ選挙にいこう:2008/06/13(金) 15:15:30
doubleで駄目なら駄目だろうなあ
つか、VBだといけるのかいなその計算
289278:2008/06/13(金) 15:47:24
>>284
関係のない会社の事務で使っているものにそんなもの仕掛けることできません。
一応開発技術はあるので自作は可能ですが、そういう監視とかが出来ないので
情報がないかを調べているのです。
相手に技術がないので技術的な説明が通らない・・・鬱陶しいです。
290名無しさん@そうだ選挙にいこう:2008/06/13(金) 16:00:01
>>289
同じ形のシートが何十とあるブックで、その中から
その時その時でシートを選んで作業してるのかも。
シートを複製する時に何かのはずみで計算式を変えてしまい、
正しい計算式と誤りの計算式が混在したブックになってしまったとか。

(本人は各シートが別物という概念が無いため、「たまにズレる」という認識になる。)
291名無しさん@そうだ選挙にいこう:2008/06/13(金) 16:43:39
>>289
何が何でも解決しなくちゃならない深刻な問題なのか、単なる友達との雑談の延長なのか、
まずはっきりしてくれ。

誤操作や誤認識じゃなければマクロだっつーの。
292名無しさん@そうだ選挙にいこう:2008/06/13(金) 16:52:59
情報少なすぎ
できること少なすぎ

こんな状況じゃ解決は無理ぽ
293名無しさん@そうだ選挙にいこう:2008/06/13(金) 17:01:32
>278
余所の会社の経理のPCなんかに
いくら友達でも係らない方がいいよ。

おかしーなー。普通そんな事ないけどなー。
操作ミスしてないのならPC診てもらえば?

ぐらいでいいんじゃないか?
294名無しさん@そうだ選挙にいこう:2008/06/13(金) 17:04:13
>289
以前、職場で利用していた「計算式のリストを作成するプログラム」をアップするので参考にどうぞ。
これは調べたいブックとは別の新規ブックの標準モジュールに書いてください。
A1セルには出力開始行として 3 を設定しておいてください。
保存するときは 計算式.xls としてください。(プログラム中にブック名を指定済)
調べたいブックの方をアクティブにし、リストアップしたい範囲を指定してから[Alt]+[F8]でこのマクロを
実行すると、計算式.xlsのSheet1に3行目から「計算式のあるセルだけ」1セルあたり1行で
ブック名、シート名、セル位置、式、値 を出力します。ただし、セルの結合は考慮してないのでご注意を。
正常な状態のときのリストをとっておき、「ずれてる」と感じたときにもう一度実行してみればいいです。
ブック名、シート名も見比べられます。 たぶん似たような表で勘違いしていると思うけど。
Option Explicit
Dim book_name As String, sheet_name As String, Tate As Long
Dim c As Excel.Range
Sub 計算式()
  book_name = ActiveWorkbook.Name
  sheet_name = ActiveSheet.Name
  With Workbooks("計算式.xls").Worksheets("Sheet1")
  Tate = .Range("A1").Value
  For Each c In Selection
    If c.Formula Like "=*" Then
      .Cells(Tate, 1).Value = book_name
      .Cells(Tate, 2).Value = sheet_name
      .Cells(Tate, 3).Value = Replace(c.Address, "$", "")
      .Cells(Tate, 4).Value = "'" & c.Formula
      .Cells(Tate, 5).Value = c.Value
      Tate = Tate + 1
    End If
  Next
  .Range("A1").Value = Tate
  .Activate
  End With
End Sub
295名無しさん@そうだ選挙にいこう:2008/06/13(金) 17:05:31
>>292
今朝最初の質問があったばかりなのに答える側せっかちすぎw
俺らニートと違って働いてる一般人は常時2ch見てるわけにもいかんだろw
296名無しさん@そうだ選挙にいこう:2008/06/13(金) 17:16:45
ここまで見た感じ、「ダメモトで聞いてみるけど、まあ解決できればいいね」レベルの問題。
297名無しさん@そうだ選挙にいこう:2008/06/13(金) 17:30:26
相変わらず返答できないけど野次は書くぜ!っていう役立たずが多いのな(笑)
298名無しさん@そうだ選挙にいこう:2008/06/13(金) 17:41:56
自己紹介ウゼー
299名無しさん@そうだ選挙にいこう:2008/06/13(金) 18:31:29
なんでみんな、仲良くしないの!
300名無しさん@そうだ選挙にいこう:2008/06/13(金) 18:37:42
能無しは人を見下さないと生きて行けないから。
パソコンしか取り得が無いオタにはこういうスレはオアシスなんだろうね。←自己紹介乙。と先に言っとく
301名無しさん@そうだ選挙にいこう:2008/06/13(金) 19:06:39
>>268はなぜ正常に動作しないのか、だれかわかるひといないの?
早番だけ、バイト君3人にして目的セルをZ17に変更してすら動かん
302名無しさん@そうだ選挙にいこう:2008/06/13(金) 19:29:37
>>301
リニアなモデルにするといいぞ。
303名無しさん@そうだ選挙にいこう:2008/06/13(金) 19:52:50
前世紀に解決済みの問題に手がかりさえつかめぬVBA厨ども。
彼ら原始人が悩んでいる間に現代人はピボットやソルバーを使って次々に解決していくのだった。
304名無しさん@そうだ選挙にいこう:2008/06/13(金) 19:54:06
いや してないしてない
305名無しさん@そうだ選挙にいこう:2008/06/13(金) 19:57:02
>>304
現実を受け入れられない哀れな原始人。
306名無しさん@そうだ選挙にいこう:2008/06/13(金) 19:58:30
>>268を教えてください それができたら解決したと認めます
307名無しさん@そうだ選挙にいこう:2008/06/13(金) 20:07:58
>>306
原始人はそれでも解決していないと言い張るからなあ。
こいつらには理屈が通用しない。教えてやっても何の得にもならん。
ヒントは>>302だ。もう少し考えてみろ。
308名無しさん@そうだ選挙にいこう:2008/06/13(金) 20:09:54
それはもう試した
309名無しさん@そうだ選挙にいこう:2008/06/13(金) 20:16:36
>>307
だからお前は日の当たらない倉庫で在庫管理だけしてろって
手順を1から箇条書きにして要件満たしてから勝ち誇れって何度言えば(ry
310名無しさん@そうだ選挙にいこう:2008/06/13(金) 20:32:01
すいません、ウチの父親がさっきから
「今日になって急にエクセルの表の罫線が印刷できなくなった!!」って
大騒ぎしててうるさいんですが。
どこを直したらいいんでしょ?
311名無しさん@そうだ選挙にいこう:2008/06/13(金) 20:38:57
>>310
罫線ってのが枠線のことなら
ページ設定 - シート - 印刷 - 枠線にチェック

自分で引いた罫線ならオレにはわかんね
312名無しさん@そうだ選挙にいこう:2008/06/13(金) 20:52:42
プログラム板のVBAスレではどっちの手法がコンマ何秒早いだとか、マシン語
知ってるとすごいだとか、失笑ものの不毛な議論をしとる。
313名無しさん@そうだ選挙にいこう:2008/06/13(金) 21:34:13
2007使ってるんですが、
セルの表示形式をユーザー定義するときの
構文(曜日→dddd etc)の一覧て
ヘルプファイルのどこかにありますか?
探したけど見つからない…。
314>>271:2008/06/13(金) 22:37:44
>>272
>>273
ありがとうございます
315名無しさん@そうだ選挙にいこう:2008/06/13(金) 23:09:20
>>313
ヘルプを表示形式で検索すればいい。
ちなみに曜日はaaaaね
316名無しさん@そうだ選挙にいこう:2008/06/13(金) 23:20:56
>>311
どうもありがとうございました。
「枠線」やってみました。一応線は出るようになりました。

・・・しかしどうも、PCでなくプリンタ側に原因があったようです。
明日修理に持って行きます。では。
317名無しさん@そうだ選挙にいこう:2008/06/13(金) 23:28:57
修理屋カワイソw

いや、ぼったくりのチャンスか?
318名無しさん@そうだ選挙にいこう:2008/06/14(土) 00:23:34
俺もそういうの経験ある。ちょうど罫線の位置のノズルが詰まって出にくくなってたんだよな。
クリーニング1回でいくらとれるかな?
319名無しさん@そうだ選挙にいこう:2008/06/14(土) 00:25:03
そろそろけーもー先生の起きる時間です
320名無しさん@そうだ選挙にいこう:2008/06/14(土) 00:25:53
啓蒙の蒙は呂蒙の蒙
321313:2008/06/14(土) 00:57:40
>>315
ありがd

でも検索したところ、
「Excel > ワークシートと Excel テーブルの基本 > 数値の書式設定 > 数値を日付や時刻として表示する」
に日付関係の書式は載ってたけど、
[]とか@とか他のが見つからないです。

ヘルプに載ってないのかな?
322名無しさん@そうだ選挙にいこう:2008/06/14(土) 01:08:04
>>321
記号の詳細な一覧はオンラインヘルプの方に出てる
ttp://support.microsoft.com/default.aspx?SCID=kb;ja;883199&sd=offn
323313:2008/06/14(土) 01:23:41
>>322
オンラインヘルプを検索するように設定したら、
「Excel ホーム > ワークシートと Excel テーブルの基本 > 数値の書式設定 > ユーザー定義の表示形式を作成または削除する」
という項目が出てきて、そこに求める情報が載っていました!

仕事でインターネットに接続できないところに行くことがあるのですが、
オフラインヘルプを最新のものに更新することってできるのでしょうか?
324名無しさん@そうだ選挙にいこう:2008/06/14(土) 01:56:44
>>323
残念ながら出来ない。
必要な部分を自力で保存したり印刷したりしていくしかない。
325名無しさん@そうだ選挙にいこう:2008/06/14(土) 08:47:30
aaa
326名無しさん@そうだ選挙にいこう:2008/06/14(土) 08:52:19
自筐体の日時に関わらず、ある日時がきたらマクロ動作できなくすることは
できますか?退職後は使用出来ないようにしたいんだけど、自筐体の日時を
変更すれば使用出来る方法しか思い浮かばない。。
327名無しさん@そうだ選挙にいこう:2008/06/14(土) 09:11:23
退職日にファイル消せばいいだろ
328名無しさん@そうだ選挙にいこう:2008/06/14(土) 09:15:24
ファイル(システム)を暗号化。
鍵は自分しか知らない。
これでおk。
329名無しさん@そうだ選挙にいこう:2008/06/14(土) 09:24:09
世の中に出回ってるマクロなど、大半はピボットテーブルで実現できる機能ばかり。
後任者は君が思っているほど困らないかもよ。
あいつ痛いやつだったな、になるのがオチ。
330326:2008/06/14(土) 09:57:42
>>327-329
ありがとうございました。解決出来ました。
331名無しさん@そうだ選挙にいこう:2008/06/14(土) 12:29:41
注文データから必要な部品数を計算できないものでしょうか。
プラスチック押出成型工場で品質管理兼生産管理のようなことをやらされております。
ある顧客向けに
商品名ABCD18Gは
平型長さ1600灰色PVCを1本
平型長さ850緑色右用PVCを1本
平型長さ850緑色左用穴明け加工2ヶ所ありPVCを1本

商品名EFG20Aは
楔型長さ1800ホワイトPPを3本
楔型長さ1600ホワイトPPを2本

というように社内の組み立て場でセットしています。
このような商品がおよそ200種類あって、部品はその数倍あります。
注文を見て必要な部品を作ったり、作りおきを補充しています。
平型と楔型を色別に成型計画をたてて、それぞれの材料を発注したり、右用左用に加工する数を決めてます。
毎日図面を見ながらほとんどこれにかかりっきりなんでもっと楽にできる方法はないかなあと。
Windows2000
Excel2000
VBAはあまり難しいことはできません。
よろしくお願いします。
332名無しさん@そうだ選挙にいこう:2008/06/14(土) 12:41:45
>331

少しだけexcelを勉強すれば簡単に出来る。
333331:2008/06/14(土) 12:47:37
>>332
ありがとうございます。
やっぱりVBAとか使わないと無理でしょうか。
334名無しさん@そうだ選挙にいこう:2008/06/14(土) 13:12:45
>331
楔型長さ1800ホワイトPP と 楔型長さ1600ホワイトPP について、
サイズだけ異なる素材をまとめることができるのか、それとも別の
部品とみなすのか、こまかいところがわからないと項目の考え方が
変わってくると思います。
また、サイズ違いも厳密に別部品と見なすとして、個々に部品コード
を割り振れますか?

商品名=商品コードであると仮定して

  A       B      C   D
−−−−−−−−−−−−−−−−−−−−−−−
1商品コード ABCD18G  数量  n
−−−−−−−−−−−−−−−−−−−−−−−
2部品(1)   xxxx001
−−−−−−−−−−−−−−−−−−−−−−−

−−−−−−−−−−−−−−−−−−−−−−−

−−−−−−−−−−−−−−−−−−−−−−−
335334:2008/06/14(土) 13:13:48
>334
作ってる途中で送信ボタンおしちゃった。無視してください。
336名無しさん@そうだ選挙にいこう:2008/06/14(土) 13:34:22
どんまい
337名無しさん@そうだ選挙にいこう:2008/06/14(土) 14:00:53
【1 OSの種類         .】 Windows Vista
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】office2003 vba excel
セルに1.83E-05と書かれておりそこをダブルクリックすると数値がでてきます。
1.83E-05というのはなにを示しているのでしょうか??
初歩的すぎる質問ですがよろしくお願いします。
338名無しさん@そうだ選挙にいこう:2008/06/14(土) 14:07:29
1.83×10のマイナス5乗
つまり0.0000183
339名無しさん@そうだ選挙にいこう:2008/06/14(土) 14:07:55
>337
指数表示です。
1.83×10の−5乗の意味で、0.0000183のことです。
セルの書式設定が、
指数、小数点以下の桁数:2 になっているとこのように表示されます。
340名無しさん@そうだ選挙にいこう:2008/06/14(土) 14:15:30
341337:2008/06/14(土) 14:16:11
>>338-339
迅速な回答ありがとうございます。
なるほど・・・。そうゆうことだったんですね。
丁寧にありがとうございました。
342名無しさん@そうだ選挙にいこう:2008/06/14(土) 15:06:30
連番を作りたいとき
1
2
とセルに入力してからセルの端っこをドラッグすれば
1
2
3
・・・・・・
と入力することが出来るということは知っているのですが、
これが1万行とか10万行とかに連番を作りたい場合、
もっとうまい方法はないのでしょうか?
お願い致します。
343名無しさん@そうだ選挙にいこう:2008/06/14(土) 15:13:50
編集−フィル−連続データの作成
344名無しさん@そうだ選挙にいこう:2008/06/14(土) 15:15:44
さらに補足
列 − 停止値100000  とか
345名無しさん@そうだ選挙にいこう:2008/06/14(土) 15:57:48
>>343
2007を使っているので
編集が有りません。
お願い致します。
346名無しさん@そうだ選挙にいこう:2008/06/14(土) 15:59:29
2007はしらん
347名無しさん@そうだ選挙にいこう:2008/06/14(土) 16:13:35
>>345
テンプレ未使用

書式不備のため受付に至っておりません。
再依頼の際は既存依頼スレッド欄にこのスレッドのurlを忘れずご記入ください。
348名無しさん@そうだ選挙にいこう:2008/06/14(土) 16:31:25
>345
編集あるじゃん。どこに目が付いてんのよ。
349名無しさん@そうだ選挙にいこう:2008/06/14(土) 16:41:49
これは参考になりませんか?
http://pc.nikkeibp.co.jp/article/NPC/20070425/269534/
中程にある画像に 連続データの作成 というのがプルダウンメニューに見えてます。
350名無しさん@そうだ選挙にいこう:2008/06/14(土) 17:10:03
あとから「2007なんです」が多いですねぃ
351名無しさん@そうだ選挙にいこう:2008/06/14(土) 18:40:31
【1 OSの種類         .】 Windows Vista
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】EXCEL グラフの結合 比較
二つのグラフを一つのグラフに結合して比較したのですが
どのようにすればよいでしょうか??
二つのグラフとも、x軸の値は別々のグラフです。
よろしくお願いします。
352名無しさん@そうだ選挙にいこう:2008/06/14(土) 18:58:39
比較「したい」の?
353331:2008/06/14(土) 19:05:33
>>334
全部品にコードをつける覚悟はあります。
型別の生産数量
必要な材料
加工が必要なのは何個か
などが知りたいです。
注文には納期がありますので、納期別に必要な部品や材料がわかるとうれしいです。
>>340
ありがとうございます。今外出中ですので後で確認いたします。
354351:2008/06/14(土) 19:09:34
>>352
はい、そうです。
タイプみすでした・・・。すみません。
355名無しさん@そうだ選挙にいこう:2008/06/14(土) 20:43:59
>353
340は見てませんが、
「商品」、「部品」、「材料」と「加工内容」に「型」まで登場しましたね。
それぞれの関係を明記してもらわないと考えようがないですね。
331の説明の段階では
・「商品」は数種の「部品」から構成される
だけでしたが、353では
・「商品」は数種の「部品」から構成される
・「部品」は「材料」を「加工」する場合がある
・型(?)
と複雑になってきました。
「納期」のことを別にしても以上のようなことを説明できますか?

331にあった
・平型長さ850緑色右用PVCを1本
・平型長さ850緑色左用穴明け加工2ヶ所ありPVCを1本
でいえば、最初から別部品としてコードを割り振るのか、それとも
平型緑色右用PVC という「材料A」を 長さ850に加工 +
平型緑色左用PVC という「材料B」を 長さ850+穴明け加工2ヶ所 
というふうに考えるのか、それとも
平型緑色PVC という「材料C」が右用にも左用にも加工できるのか
など実務がわかりません。
356名無しさん@そうだ選挙にいこう:2008/06/14(土) 20:50:57
質問などを全部xlsに書いておきましたお答えいただけるとありがたいです。
よろしくお願いします。
ttp://www7.axfc.net/uploader/File/so/7239
357名無しさん@そうだ選挙にいこう:2008/06/14(土) 20:56:55
>356
質問の方法は1〜3を守ってください。
358名無しさん@そうだ選挙にいこう:2008/06/14(土) 22:02:40
>>356
5.の項目がないとこたえる気が失せる…
359名無しさん@そうだ選挙にいこう:2008/06/15(日) 08:21:16
>>331
ピボットテーブルを使いなさい。
注文データそのままでは、部品の情報がないから、データを整形する必要がある。
どんな風に整形するかというとピボットテーブルが使えるように整形すればよい。この作業はVBAを使うしかないだろうな。

>>355
業務の詳細がわからなくても、この問題を考えることはできるぞ。
部品にいくつかの属性があって、部品別属性別納期別に集計するだけだ。
360名無しさん@そうだ選挙にいこう:2008/06/15(日) 12:12:15
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 excel 罫線 太さ powerpoint

exceで作った表をpowerpointに
貼り付けると罫線が一部太くなってしまいます。
・いろいろな形式で貼り付ける
・貼り付けた表をpowerpointで編集しなおす
と試行錯誤したのですがうまくいきません。
拡張メタファイルとして貼り付けると一見うまくいくのですが、
スライドショーになるとまた太くなります。
仕様として諦めたほうがいいのでしょうか?
361名無しさん@そうだ選挙にいこう:2008/06/15(日) 13:21:46
>>360
エクセル 2007 罫線 パワーポイント
辺りで検索してみては
↓が多分回答?と思う
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1311505253
362名無しさん@そうだ選挙にいこう:2008/06/15(日) 16:10:26
>>359
正直ピボットテーブル使わないやつは言うことがとんちんかんなんだよな。
手続きを省略する方法や代替手段ばかりを一生懸命探そうとする。
ピボットと同じ処理を自作するのは大変だからなあ。
VBAはなんでもできるというのは事実なんだけど、役に立つことやろうと思うと結局ピボットを自作することになる。
363名無しさん@そうだ選挙にいこう:2008/06/15(日) 16:15:46
君、頼むから一遍ピボットテーブルを使った作例を見せてくれ。
364名無しさん@そうだ選挙にいこう:2008/06/15(日) 16:47:48
>>363
ピボットテーブル使った作例と言われても困ってしまうよ。要はデータをグループ別に集計するだけだから。
考えるべきはどんなグループで集計するのかということ。それさえわかったらすでに完成しているのと同じだよ。
365名無しさん@そうだ選挙にいこう:2008/06/15(日) 18:15:19
>>364
質問があった時に実例を示せばいい
366名無しさん@そうだ選挙にいこう:2008/06/15(日) 18:47:30
【1 OSの種類         .】 WindowsVISTA
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 フォント 変換

50音順の名簿を作っているのですが、例えばA列に名前、
B列に男女を区別するための数字(男は1、女は2)を入れたとします。
で、
別シートにおいて、
1:自動的に男の名前は黒、女の名前は赤にする方法
2:自動的に男女別に名簿が並び変えられる方法
が、
どうも分からないので、教えていただきたくお願いいたします。
367名無しさん@そうだ選挙にいこう:2008/06/15(日) 18:51:22
>>366
「条件付き書式」や「ソート」「並べ替え」でもう一度検索してみてください。
368名無しさん@そうだ選挙にいこう:2008/06/15(日) 19:06:59
前から思ってたけど、「検索キーワード」に書いてる内容って、ネタとしか思えないな
369名無しさん@そうだ選挙にいこう:2008/06/15(日) 19:24:03
>366
わざわざ「別シートにおいて」とした理由は何ですか?
ちょっと工夫すれば並べ替えする前の状態に戻せるので、別シートにする必要はないんですが。
370名無しさん@そうだ選挙にいこう:2008/06/15(日) 19:43:13
分からないならすっこんでて下さい。
371名無しさん@そうだ選挙にいこう:2008/06/15(日) 19:59:50
>>366
2が分らないようなら見込みがないから諦めた方がいいかもよ?
ソート(並び替え)とか知らなかったら別だが。
372名無しさん@そうだ選挙にいこう:2008/06/15(日) 20:00:55
【1 OSの種類         .】 Windows xp
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 sumproduct


   A      B      C
−−−−−−−−−−−−−−−−−−−−−−−
1  項目A   項目B   金額
−−−−−−−−−−−−−−−−−−−−−−−
2  やさい   きゅうり   100
−−−−−−−−−−−−−−−−−−−−−−−
3  にく     牛      200
−−−−−−−−−−−−−−−−−−−−−−−
4  やさい   にんじん  120
−−−−−−−−−−−−−−−−−−−−−−−

例えば上記のような表があって、今後もこの下に表を記入し続けるとします。
で、項目Aが「やさい」で項目Bが「にんじん」の場合の合計金額を出すにはどうすればいいのでしょうか。

=sumproduct((A2:A4="やさい")*(B2:B4="にんじん")*C2:C4)

とやればいいのかと思ったんですが、今後追記した場合の対応ができません。
どうすればいいのでしょうか。
373名無しさん@そうだ選挙にいこう:2008/06/15(日) 20:02:11
範囲をA2:A4じゃなくA2:A5にして、追記はA5の前に挿入する形で行う
374名無しさん@そうだ選挙にいこう:2008/06/15(日) 20:07:59
おいVBA厨の出番だぞ。
男女別に色を変えるプログラム。
男女別に並べ替えるプログラム。
さあ作れ。
実例を示して回答しような。
375名無しさん@そうだ選挙にいこう:2008/06/15(日) 20:51:34
ピボット厨が哀れでしょうがない…
なんでキレてるんだろうな…
376名無しさん@そうだ選挙にいこう:2008/06/15(日) 20:55:36
次からテンプレはこれでいいじゃん。質問者に選ばせて、回答者は聞かれてないことには答えない。

【1 OSの種類          】
【2 Excelのバージョン    .】
【3 VBAが使えるか     】
【4 VBAでの回答の可否   】
【5 ピボットが使えるか  ....】
【6 ピボットでの回答の可否】
【7 検索キーワード     .】
377名無しさん@そうだ選挙にいこう:2008/06/15(日) 20:58:35
【8 職業・業務内容】
これも追加して欲しいな本気で
378名無しさん@そうだ選挙にいこう:2008/06/15(日) 21:04:07
>>374
ピボットを使うべき所で使わないのと、
VBAを使うべきでないところで使うのと、
どっちが愚かかな?
379名無しさん@そうだ選挙にいこう:2008/06/15(日) 21:17:13
>>366
B列でソートすれば男女別になります。

文字は最初から黒なので、男を黒くする処理は必要ありません。女だけを赤にすればいいのです。
A1をクリックして、メニューから書式→条件付き書式を開き、左端のプルダウンメニューで「数式が」を選び、
その右に「=B1=2」と入れます。
その下の「書式」ボタンを押して「色」を赤にして「OK」「OK」で閉じます。
A1をコピーし、A列全体を選択してから右クリック、形式を選択して貼り付け、書式、OK、これで完成。

それから、ふりがなが入ってない場合、自動的に五十音順に並べる方法はありませんので
必要があるなら必ずふりがなを入れてください。
補助的な機能はありますが完璧ではないので。
380名無しさん@そうだ選挙にいこう:2008/06/15(日) 21:30:24
【9 ソートが使えるか】
【10 ソートでの回答の可否】

これも追加してくれ。
381名無しさん@そうだ選挙にいこう:2008/06/15(日) 21:38:11
それを言い出すと11、12とどんどん追加されてしまうだろう
個人的には3と4の違いが良く分からない。4一本に絞ってしまえばいいのに
382名無しさん@そうだ選挙にいこう:2008/06/15(日) 21:51:16
VBAが使えるかどうかもなくしちゃえばいいんだよ。
383名無しさん@そうだ選挙にいこう:2008/06/15(日) 21:56:09
ここ低レベルだね
384名無しさん@そうだ選挙にいこう:2008/06/15(日) 21:58:05
【11 煽り・啓蒙の可否】
385名無しさん@そうだ選挙にいこう:2008/06/15(日) 21:59:41
>>383
同感。
在庫管理できない
ソルバー使えない
ピボットテーブル使えない
ソート使えない
386名無しさん@そうだ選挙にいこう:2008/06/15(日) 22:04:06
何を今更…
387名無しさん@そうだ選挙にいこう:2008/06/15(日) 22:07:49
ところでピボット厨は手作業でやってるの?
VBAも併用?
388名無しさん@そうだ選挙にいこう:2008/06/15(日) 22:10:36
ソルバーもピボットテーブルもVBAも元々の表計算ソフトに
あとからゴテゴテ加えた機能でなんつーか気持ち悪いんだよね。
数式だけであらゆる問題を解決するのが真の漢。
389名無しさん@そうだ選挙にいこう:2008/06/15(日) 22:11:05
>>387
もちろん、いつも
「こんなデータが処理できるかっ!正規化してから持ってこいっ!」
で逃げてます。
390名無しさん@そうだ選挙にいこう:2008/06/15(日) 22:14:04
激しく同意。
ワークシート関数だけで処理できないような仕事は、本来、表計算ソフトでやるようなことじゃない。
色を付けるのもセルを結合するのも邪道。
391名無しさん@そうだ選挙にいこう:2008/06/15(日) 22:14:29
>>387
正規化したり、親子関係のあるデータを展開するのにはVBAを使います。
要は適材適所です。
392名無しさん@そうだ選挙にいこう:2008/06/15(日) 22:17:31
>>391
ちゃんと使い分けできるのは「厨」じゃないよ。それが正常。
393名無しさん@そうだ選挙にいこう:2008/06/15(日) 22:17:42
>>390
私の場合はExcelを「表計算ソフト」というより、「ピボットテーブルが使える
ソフト」として使ってる。
表計算ソフトを使うのが目的じゃないからな。
394名無しさん@そうだ選挙にいこう:2008/06/15(日) 22:18:46
>>393
それならアクセス使えばよくね?
395名無しさん@そうだ選挙にいこう:2008/06/15(日) 22:19:29
ヒント:貧乏人はAccessが買えない
396名無しさん@そうだ選挙にいこう:2008/06/15(日) 22:21:44
>>394
もちろんAccessも使っている。
ここはExcelのスレッドだからね。
397名無しさん@そうだ選挙にいこう:2008/06/15(日) 22:23:42
ヒント:厨は適切な使い分けができない
398366:2008/06/15(日) 22:24:26
「ソート」、「並べ替え」は存じています。
それ関連で使い方が正しいかは分かりませんが、
「オートフィルタ」も使っています。
お尋ねしたかったのは、並べ替えの基となる情報(ふりがなや数字)
があれば、それを基に関数を使って「ソート」等のひと手間かけずに
勝手に並べ替えてあるデータが作成可能か、ということでした。

>>369
個人情報をひたすら並べた作業用シートとは別に、
様々な書類に対応したシートを別に幾つも作ってるのです。
その中で、男女別の名簿を作っておきたいな、と思いまして。

>>379
おお、こりゃすごい。条件付書式の中の「セルの値」のまんま
「=B2=2」をやってできねーと言ってました。
ありがとうございますありがとうございます。
でも、条件付書式ってシートまたいでは通用しないんですね。
ま、同じシートに数字持ってくればいいだけの話ですか。


VLOOKUPで男女を見分ける「1」と「2」を人数分拾ってみても、
結局それぞれの一番最初の人の名前がずらっと並んで
しまうだけだしなあ。上のセルの名前を反映させ、除外するような
関数を駆使すればできそうな気もしますが……難しいものですね。
399名無しさん@そうだ選挙にいこう:2008/06/15(日) 22:44:47
今さらながら>>340の回答をダウンロードしてみたんだが、彼はよくわかって
いるな。これでいいんだよ。
ただ、「t部品発注」のシートで注文から部品cdの展開は手作業なんでここを
なんとかしないと実務では使えない。
Excelだとここが面倒だね。Accessでは簡単なんだけど。
400名無しさん@そうだ選挙にいこう:2008/06/15(日) 22:54:54
>>398
そもそもピボットテーブルの使い方を知ってれば>>366のような質問はしなかったとおもうよ
401名無しさん@そうだ選挙にいこう:2008/06/15(日) 22:56:15
>>398
あのね、関数で並び変えとかやっちゃいかんのだよ。
関数で抽出とかもやってはいけない。
ソートとかをマクロで使え。
人に使わせるならマクロは必須。
402名無しさん@そうだ選挙にいこう:2008/06/15(日) 22:59:08
出た!VBA厨
403名無しさん@そうだ選挙にいこう:2008/06/15(日) 23:00:17
>>401
「やっちゃいかん」じゃなくて「私にはやり方が分かりません」だろ。
日本語は正確に書こうな。
404名無しさん@そうだ選挙にいこう:2008/06/15(日) 23:01:00
もうこのスレ廃止しようぜ
405名無しさん@そうだ選挙にいこう:2008/06/15(日) 23:01:16
>>402
ピボット厨だが、ユーザインタフェースを実現するためのVBAなら存在意義を認めている。
406名無しさん@そうだ選挙にいこう:2008/06/15(日) 23:03:08
ピボット厨である私も>>401
>あのね、関数で並び変えとかやっちゃいかんのだよ。
>関数で抽出とかもやってはいけない。
には同意する。
できてもするべきじゃないな。
407名無しさん@そうだ選挙にいこう:2008/06/15(日) 23:03:14
また基地外関数使いが出てきたか?
おまえよりよっぽど知ってるよ。
本当に分かってるやつは絶対使わねーっての。
408名無しさん@そうだ選挙にいこう:2008/06/15(日) 23:06:33
うーむ、やはりピボットとVBAは避けられぬ道なのかな。
ヘタに関数使っても複雑化して重くなるだけですよねえ。

ピボットはなんとなっく分かりそうだが、VBAは何が何やら。
先を目指すなら必須なんでしょうけれども。
409名無しさん@そうだ選挙にいこう:2008/06/15(日) 23:06:41
関数を求めてる質問者に>401のようなことを書くやつはカス!
知ってて答えたくないなら黙ってろってw
俺みたいに。
410名無しさん@そうだ選挙にいこう:2008/06/15(日) 23:09:07
だから求めてるからって、なんでも求めに応じて答えちゃいかんっての。
駄目なものは駄目と言わないと。
411名無しさん@そうだ選挙にいこう:2008/06/15(日) 23:09:09
これだけレスがあって、まともな回答がいくつあったことやら
412名無しさん@そうだ選挙にいこう:2008/06/15(日) 23:10:23
なんでこの板は、毎度毎度殺伐としてくるのだ・・・
すべては、こんな中途半端なソフトを作ったMicrosoftが悪いのだな
413名無しさん@そうだ選挙にいこう:2008/06/15(日) 23:10:41
>>410
それを判断するのは質問者。
お前、何様だと思ってるの?
414名無しさん@そうだ選挙にいこう:2008/06/15(日) 23:12:33
関数でソート
関数で抽出
こんなのはまったくやるべきではない。
何の前提条件も無しに質問してくるやつは無知なだけだと判断するのが適切だろう。
そのまんまの関数で回答するやつ
ソートやフィルタ使えと回答するやつ
両方いればいいんじゃないかな。
415名無しさん@そうだ選挙にいこう:2008/06/15(日) 23:12:53
質問者に判断なんてできるわけがねーつうのに。
416369:2008/06/15(日) 23:13:15
>398
「別シートにする理由」をたずねた者です。元となるのが「個人情報をひたすら並べたシート」で、
結果がほしいのは「様々な書類に対応した複数のシート(必要な項目だけを所用の並び順にしたもの)」と
いうことですね。
VBAでの回答は「否」ということであれば「難しい」と思います。
元シートから目的シートへ必要とする範囲をコピー・ペースト(値のみ)してからソートするという
手作業がどうしても必要です。(値コピーであれば目的シートにあらかじめ設定しておいた条件付書式は
書き変わらないため。)
VBAを勉強してください。まずはマクロの自動記録から。

417名無しさん@そうだ選挙にいこう:2008/06/15(日) 23:14:42
俺は関数で抽出とかよくやるよ?
自分でも配列数式の神様と思ってる。
418名無しさん@そうだ選挙にいこう:2008/06/15(日) 23:15:47
>>415
お前だって経験してみてやめた方がいいと思ったんだろ?
そうじゃなければただの頭デッカチだな。
経験させればいいんだよ。
419名無しさん@そうだ選挙にいこう:2008/06/15(日) 23:17:01
>>398
>VLOOKUPで男女を見分ける「1」と「2」を人数分拾ってみても、

元の表に「男の中で何番目か」「女の中で何番目か」を表示する列を設けとけばいいんだよ。
そうすれば別シートにVLOOKUPで一覧を抜き出せる。
420名無しさん@そうだ選挙にいこう:2008/06/15(日) 23:19:24
>>417
さてはモーガーがなw
421名無しさん@そうだ選挙にいこう:2008/06/15(日) 23:20:52
>>412
それはあるな。
エクセルはバカを許容する懐の深いソフトだが、それは長所でもあり短所でもある。

関数でソート、抽出するやつ
セルを結合するやつ
エクセルで報告書書くやつ

カオスだわ。
422名無しさん@そうだ選挙にいこう:2008/06/15(日) 23:22:03
>>419
それよりピボットつかったほうが明らかにラクだろ
423名無しさん@そうだ選挙にいこう:2008/06/15(日) 23:23:31
>>418
経験はしたが、人に教わっての経験はしてねーな。
424名無しさん@そうだ選挙にいこう:2008/06/15(日) 23:23:33
いやあ今日も啓蒙ですか、ありがたいことですなあ
425名無しさん@そうだ選挙にいこう:2008/06/15(日) 23:25:49
>>416
ご丁寧にありがとうございました。
いやはや、やはりスマートにやるにはVBAが必要ですか。
時間があるときに、ちょこちょこHPを見ながら勉強していきます。
426名無しさん@そうだ選挙にいこう:2008/06/15(日) 23:26:13
あのさー
本来のExcelの使い方と違う質問があるとすぐAccess使えとかWord使えとかいうアホがいるけど
世の中の多数の会社ではAccessを導入していないところや報告書をエクセルで提出するのが
あたりまえになっている会社はいくらでもあるんだよ。
そういう現実を受け入れられないんだろうな、専門バカは。
427名無しさん@そうだ選挙にいこう:2008/06/15(日) 23:27:50
>>423
お前、日本語不自由なのか?
「教わって」とか関係ねーw
経験させたらいいという啓蒙だw
428名無しさん@そうだ選挙にいこう:2008/06/15(日) 23:28:12
>>426
うちの会社じゃエクセルでデータ作成すると上と同じという意味の〃を使う
やつがいっぱいいる。
俺は専門バカだからそんなことはしないけど。
429名無しさん@そうだ選挙にいこう:2008/06/15(日) 23:31:26
>>426
私の場合はAccess使えとは言わないようにしている。
君の言うとおりAccess使えない環境の人も多いからね。
でもWordは使ってくれ。
報告書をExcelで書くやつは頭がおかしい。
それがあたりまえになっている会社は頭がおかしい会社。
430名無しさん@そうだ選挙にいこう:2008/06/15(日) 23:33:04
>>427
だから関数での抽出とかを人に教わって使うようなやつは、やっちゃいかんって判断がつかないやつが多いんだよ。
431名無しさん@そうだ選挙にいこう:2008/06/15(日) 23:36:31
>>430
すみません。質問者ではないんですが、Excelはあまり詳しくありません。
関数で抽出をしてはいけない理由を教えて下さい。
432名無しさん@そうだ選挙にいこう:2008/06/15(日) 23:37:54
>>431
ロジックが無駄だから。
もっと楽にできる方法はいくらでもある。
433名無しさん@そうだ選挙にいこう:2008/06/15(日) 23:38:37
>>431
>>430じゃないけど抽出した結果をソートできないのがいやだ。
434名無しさん@そうだ選挙にいこう:2008/06/15(日) 23:41:14
>>432
431ではないのですがロジックが無駄だと何がいけないんですか?
435名無しさん@そうだ選挙にいこう:2008/06/15(日) 23:41:35
あと関数を使わず抽出する方法を具体的に教えてほしいです。
私も仕事で>>366みたいな事によく使うものですから。
(現状では手作業で1つ1つコピペしてます)
436名無しさん@そうだ選挙にいこう:2008/06/15(日) 23:41:52
>>431
>>430じゃないけど無駄に重くなるのがいやだ。
437名無しさん@そうだ選挙にいこう:2008/06/15(日) 23:44:02
>>435
だからピボットテーブルで一発だってば
438名無しさん@そうだ選挙にいこう:2008/06/15(日) 23:47:20
>>398
参考までに、数式で男女別に抽出するサンプル。
http://www1.axfc.net/uploader/He/so/110091.xls&key=sage
439名無しさん@そうだ選挙にいこう:2008/06/15(日) 23:54:52
カスはいい加減雑談スレに行け

>>366
名前定義を使えば別シートでも可能

まず、挿入−名前−定義で2つの名前定義を設定する。

名前:NAME
参照範囲: =Sheet1!$A:$A

名前:SEX
参照範囲: =Sheet1!$B:$B

別シートの名前列を選択して 元の色を青

条件付き書式で
数式が =INDEX(SEX,MATCH(A1,NAME,0))=2
色を赤
440名無しさん@そうだ選挙にいこう:2008/06/15(日) 23:56:17
>>438
お前さんいつもなかなか趣味のいいサンプル書いてくるな。
関数で抽出は嫌いなんだが、ちょっとやられたって感じだ。
ソルバーのサンプルもあんたか?
441439:2008/06/16(月) 00:01:14
書き忘れた。

条件付き書式の数式の中で A1 はアクティブになってるセル番地にしてくれ。
442名無しさん@そうだ選挙にいこう:2008/06/16(月) 00:03:18
そんな無駄なことなんでやるの?
名前定義使えばできることはみんな知ってるんだよ。
男を抽出したら男は男の色
女を抽出したら女の色にすりゃいいじゃん
443438:2008/06/16(月) 00:16:58
>>440
俺はソルバーの人とは別人で>>388の数式厨ですw

個人的にはピボットテーブルもVBAも便利に使ってますけど、
仕事(他人に使わせるもの)ではあまり使いたくないっつーのがあってね。
444名無しさん@そうだ選挙にいこう:2008/06/16(月) 00:24:05
>>443
そうか。あれなら抽出結果の並べ替えもできるな。
こんな使い方しているんだったら納得だ。
445名無しさん@そうだ選挙にいこう:2008/06/16(月) 00:26:35
>>443
ネタなの?
446名無しさん@そうだ選挙にいこう:2008/06/16(月) 00:32:20
このスレは
質問1:回答2:雑談50
の割合でできています
447名無しさん@そうだ選挙にいこう:2008/06/16(月) 00:42:32
>>446
雑談を否定することはない。Excelの使い方に関する話題で盛り上がっている
んだったら雑談は歓迎する。
君の書き込みも雑談だよ。
448名無しさん@そうだ選挙にいこう:2008/06/16(月) 00:45:48
雑談スレの存在意義って…

【質問不可】Excel総合相談所スレの雑談・議論スレ2
http://pc11.2ch.net/test/read.cgi/bsoft/1151651536/
449名無しさん@そうだ選挙にいこう:2008/06/16(月) 00:47:10
>>448
そんな過疎地知らん。
450名無しさん@そうだ選挙にいこう:2008/06/16(月) 00:51:35
あのー、男女合わせて12000人くらいで>>438の式はもう少し軽くなりませんか?
451名無しさん@そうだ選挙にいこう:2008/06/16(月) 00:57:52
>>450
あまり苛めるなよw
452名無しさん@そうだ選挙にいこう:2008/06/16(月) 02:13:34
【1 OSの種類】 WindowsXP
【2 Excelのバージョン】 Excel2003
【3 VBAが使えるか】よくわからない・・・
【4 VBAでの回答の可否】?
【5 検索キーワード】

あまりパソコンに詳しくない者なのですが、よろしくお願い致します。

ただいまエクセルを使い、売り上げの表のようなものを作っているのですが、
1番左側にある列の数字が「80」を超えた途端、金額を入力している欄に、
1000円以上の金額を入力し、エンターキーを押すと「####」と表記されてしまうのですが、
解決する方法はありますでしょうか?

そのセルの部分はセルの書式設定で、通貨にしてあります。
また、文字サイズは11で、フォントはMS Pゴシックです。

よろしくお願い致します。
453名無しさん@そうだ選挙にいこう:2008/06/16(月) 02:26:27
>>452
列の幅が狭すぎるってことはない?
まずはそのセルを右クリックして「セルの書式設定」を選んだとき、「標準」のところが青くなってるか確認して。
ttp://kissho1.xii.jp/7/src/7jyou12141.png
454453:2008/06/16(月) 02:27:36
あ、すまん。質問をよく読んでなかった。無視して。
455名無しさん@そうだ選挙にいこう:2008/06/16(月) 02:28:41
>>452
とりあえず金額の入る列の幅を広げてみ。広げ方はわかる?
456452です。:2008/06/16(月) 03:05:47
広げたら表示されました!
しかし、
1番左の数字が

80以前 | \1.000|
80以降 | \1.000 |

上記のように、文字の設定は変わっていないのに、
数字の右側に半角スペースよりも狭いスペースがあいてしまいました。

表を見たときにそこから数字がずれてしまって、見た目がよくないのですが、
もし解決方法がおありでしたら、教えてください。
よろしくお願い致します。
457名無しさん@そうだ選挙にいこう:2008/06/16(月) 04:31:43
>>456
書式を確認してみ。
スペースが勝手に入るセルは、書式が通貨じゃなくてユーザー定義か何かになってると思う。
いちいち確認するのが面倒なら、金額の列「全体」を選択して書式をもう一度通貨に設定しなおせばいい。
458名無しさん@そうだ選挙にいこう:2008/06/16(月) 07:35:24
数値だったかな
しかしそんなスペース、書式関係なくあわせてくれればいいのにね
それとも分かりやすいようにわざと分けてるのかな?
459名無しさん@そうだ選挙にいこう:2008/06/16(月) 08:26:33
>>438
なんや、ほんとネタみたいな数式の使い方だなw
釣りか?
460369,416:2008/06/16(月) 09:00:34
>450
「軽い」の意味がわかりませんが、計算式で解決しようとしたら、結果が必要なセルに計算式は欠かせません。
ただし、先頭行に正しく計算式が入れば下方向へのオートフィルでセル参照は自動的に調整してくれます。

これがVBAを使う方法になると、結果が必要なセルは単なる入れ物となります。必要な処理はプログラムに
行わせるわけです。プログラムの中で並べ替えの処理もできるので、スレbS38のサンプルブックの元データ
シートでいえば男1、男2、・・、女1、女2、・・といった涙ぐましい努力(12000人分これをやれと
いわれれば誰でもそう思うでしょ。)はいりません。

なお、スレbR66で「50音別の名簿を・・」とあるので、当然「ふりがな」の欄はあるんでしょうね。
漢字氏名の欄でふりがな別に並べ替えようとしたら、データ入力のときに十分注意しないとえらいことになります。

461名無しさん@そうだ選挙にいこう:2008/06/16(月) 09:10:22
>>460
サンプルをよく見なされ。男1、男2、・・、の数字も数式で自動で入れてるよ。
まあ、この数式を使うアイデア自体が涙ぐましいとも言えるけど、
人数が増えても手間が増えるわけではない。待ち時間がほんのちょっと増えるだけ。
462460:2008/06/16(月) 09:19:57
>461
おお、ありがとう。 ソートしても式はくずれませんね。
463名無しさん@そうだ選挙にいこう:2008/06/16(月) 09:32:00
こうしてカスどもの煽りによってカスばかりになった
このスレの回答者レベルが下がっていくのであった。
めでたしめでたし。
464名無しさん@そうだ選挙にいこう:2008/06/16(月) 10:44:52
サンプルとして12000人の名簿を作ったぞ。
これで存分に検討してくれ。
ttp://www1.axfc.net/uploader/Ne/so/23357.xls&key=meibo

マシンスッペクによっては、開くのにちょっと時間がかかるかもしれないぞ。
465名無しさん@そうだ選挙にいこう:2008/06/16(月) 11:10:12
【1 OSの種類         .】 XP
【2 Excelのバージョン   】 Excel2002

セルの内容が
B2 = 4
C2 = 5
D2 = B2+C2
のような内容である時、D2に併せてコピー(Ctrl+C)すると「9」がコピーされますが
計算式 B2+C2 をショートカットキーでコピーする方法はないでしょうか?

※ツールバーの下の fx の小さな編集ウィンドウからコピーする事はできますが
複数のセルを一括してコピーする時に使えないので・・・
466名無しさん@そうだ選挙にいこう:2008/06/16(月) 11:26:03
無いです
F2を押して編集状態にするか、=$b$2+$C$2などのように絶対参照を使うと良いです
467名無しさん@そうだ選挙にいこう:2008/06/16(月) 11:29:01
>>465
いきなり複数の数式をコピーするショートカットはないです。
ツール、オプションを開いて数式をチェックすると数式が表示されるので、
この状態ならCtrl+Cで数式がコピーされます。
ttp://kissho.xii.jp/1/src/1jyou38348.png

マクロで同じことが出来るので、Ctrl+Shift+Cあたりに数式をコピーするマクロを
登録しておくといいかも。
468名無しさん@そうだ選挙にいこう:2008/06/16(月) 12:09:47
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 時間

時間の表示とそれを計算したいのですが、
@セルの書式設定で 『26:30』 と入力すると 表示が 『2:30』となり
セルの中は 1900/1/1 2:30:00 となってしまうのを 26:30 にしたい
A計算した時に 26:30 + 00:40 = 27:10
という結果を表示したいのですが可能でしょうか?
469名無しさん@そうだ選挙にいこう:2008/06/16(月) 12:13:40
>>468
書式で[h]:mm
470名無しさん@そうだ選挙にいこう:2008/06/16(月) 12:27:16
>>464
もう少し基本を勉強した方がいいね。
関数の使い方が論外。
471名無しさん@そうだ選挙にいこう:2008/06/16(月) 12:32:47
啓蒙w
472名無しさん@そうだ選挙にいこう:2008/06/16(月) 12:33:16
>>470
あまりいじめるなよ。
Mougなんかで回答してるやつらに比べりゃ上出来ってもんだろ?
あそこは配列数式でやる猛者がいるぞw
473名無しさん@そうだ選挙にいこう:2008/06/16(月) 12:33:19
文句は>>438に言ってくれ
474名無しさん@そうだ選挙にいこう:2008/06/16(月) 12:36:04
文句ばかりのカスどもはいい加減死ね!
475名無しさん@そうだ選挙にいこう:2008/06/16(月) 12:46:24
みんなのこういうノリ、嫌いじゃない
476名無しさん@そうだ選挙にいこう:2008/06/16(月) 12:49:40
そうでもないか
477名無しさん@そうだ選挙にいこう:2008/06/16(月) 12:53:22
>>438の表を借りると
=IF(COUNTIF(元データ!$B$1:$B$12000,"男")<ROW(B1),"",INDEX(元データ!$C$1:$C$12000,SMALL(IF(元データ!$B$1:$B$12000="男",ROW($E$1:$E$12000),""),ROW(B1))))
としてからCTRL+SHIFT+ENTER
478名無しさん@そうだ選挙にいこう:2008/06/16(月) 13:01:49
>>477
いくらなんでも釣りだろ?
479477:2008/06/16(月) 13:06:10
>>478
はぁ?
私はいつも真面目です。
作業列もいらないからいいと思うんですが。
480名無しさん@そうだ選挙にいこう:2008/06/16(月) 13:10:02
それは一番悪い式なんだが...
481477:2008/06/16(月) 13:11:43
>>480
どこが悪いんでしょうか?
482名無しさん@そうだ選挙にいこう:2008/06/16(月) 13:19:09
>>477
本当はすごくいい式だからこれからもばんばん使いなさい。
483名無しさん@そうだ選挙にいこう:2008/06/16(月) 13:23:15
をいをい
484名無しさん@そうだ選挙にいこう:2008/06/16(月) 13:36:32
>>438はレスポンスを別とすれば特にトリッキーな事をしているわけでもなく
いたって単純明快、普通のやり方だね。
>>459>>470はもっと素晴らしい数式の使い方を知ってるらしいので
ここの住民の教育のために是非ご説明願いたい。

ていうか12000件の顧客や社員を扱うならさすがにAccess買えよって言いたい所だが・・・
485468:2008/06/16(月) 13:46:22
>>469ありがとうございました。
>>468の質問の中の
>セルの中は 1900/1/1 2:30:00 となってしまうのを 26:30 にしたい
というのは 1900/1/1 2:30:00 のままなのですが、これはどうにもならない
でしょうか?
486名無しさん@そうだ選挙にいこう:2008/06/16(月) 13:59:09
また啓蒙か
いい人生だな
487名無しさん@そうだ選挙にいこう:2008/06/16(月) 14:03:34
馬鹿だから脊髄反射で「一番」悪い式とか書いちゃう
末期だなw
本気でそう思いこまないように気を付けてな
早目に病院行っておけよ
488名無しさん@そうだ選挙にいこう:2008/06/16(月) 14:19:40
小学生が大金を見ると、なんでも「100万だ!」って言うのと同じか
489名無しさん@そうだ選挙にいこう:2008/06/16(月) 14:26:29
>485
横から失礼
数式バーの中は 1900/1/1 2:30:00 で、セルに表示される内容は
26:30 になりませんか? セルの書式を469にあったように指定してますか? 

数式バーの中が 1900/1/1 2:30:00 になるのはエクセルでの日付・
時刻の表し方による制限になります。↓はマイクロソフトサポート による説明です。
http://support.microsoft.com/kb/880979/ja

このなかで
時刻は日付の一部として小数値で置き換えられる
とあります。つまり24時間になった時点で1になるので
23時間59分59秒(コンマ秒以下はどこまでかはわかりませんが)
までしか小数部では表現できません。が書式を設定することで24時間を超える表現が
可能ということです。
490名無しさん@そうだ選挙にいこう:2008/06/16(月) 14:29:59
>>487は頭脳が冒されてるんじゃね?
491名無しさん@そうだ選挙にいこう:2008/06/16(月) 14:34:23
>>490
伝染病にかかったんだよ。
あの式のひどさが分らない重病患者はそっと見守ってあげなさい。
492名無しさん@そうだ選挙にいこう:2008/06/16(月) 14:36:28
>>491
フィルタやピボットやVBA使えってのなら話は分かるが
「式がひどい」って事はもっといい式で作れるって事か?
だったらそれ示せよ。
493名無しさん@そうだ選挙にいこう:2008/06/16(月) 14:40:05
いい加減にしろよ。
12000人もいたら、仮に半々だとして6000行もあの式書くんだぞ?
>>480じゃなくても最悪だと思うが。
494名無しさん@そうだ選挙にいこう:2008/06/16(月) 14:42:33
>>493
>仮に半々だとして6000行もあの式書くんだぞ?
お前全然分かってないだろ。もう一度>>438のファイルよく見てみろって。
495名無しさん@そうだ選挙にいこう:2008/06/16(月) 14:46:06
>>494
>>477の式のこと言ってるんだよ。
>>438のオリジナルもかなり痛いが>>477は最悪だろ?
496名無しさん@そうだ選挙にいこう:2008/06/16(月) 14:53:36
分らないやつはいくら言ってもわからないんだから、それこそそっと見守ってりゃいいじゃん。
たいがいの人はフィルタオプション使うと思うけどな。
497468:2008/06/16(月) 14:55:40
>>489何度もありがとうございます。
セルの表示は 26:30 と表示されていて、まったく問題ありません。
使用者がエクセルに疎い為、数式バーの中も同じようにできると
わかり易いかと思い質問させて頂きました。
1900/1/1 2:30:00 のほうで説明してみます。
ありがとうございました。
498名無しさん@そうだ選挙にいこう:2008/06/16(月) 15:01:27
配列数式はよく知らないんで>>477が何やってるかよく分からんが
>>438よりもっといい式がどんなものなのかは興味あるな。
さらに作業列を用意すればCOUNTIF使わないでも出来そうではあるが
あれより単純明快なものを作れと言わると悩むな。

>>496
フィルタオプションて言葉は今まで全然出てこなかったから
多分ほとんどの人は知らない機能なんじゃないかな。
499名無しさん@そうだ選挙にいこう:2008/06/16(月) 15:07:54
>>498
ほとんどの人はフィルタオプション知ってるって。
お前知らないで数式で抽出してるんか?
500名無しさん@そうだ選挙にいこう:2008/06/16(月) 15:10:16
>>499
別シートにゃフィルタオプションじゃ抽出できないだろ?
選択範囲内に抽出してからコピペするんか?
501名無しさん@そうだ選挙にいこう:2008/06/16(月) 15:10:21
ほとんどの人が知ってるならもっと早い段階で指摘されてるって
502499:2008/06/16(月) 15:16:45
>>501
出てなかったか?
馬鹿らしくて書かなかっただけだろ?

>>500
抽出先のシート上からフィルタオプションを開始すりゃできる。
503名無しさん@そうだ選挙にいこう:2008/06/16(月) 15:20:09
VBA厨、ピボ厨、数式厨に次いで今度はフィルタオプション厨の登場かw
Excelって面白いな。
504名無しさん@そうだ選挙にいこう:2008/06/16(月) 15:24:00
あと配列数式厨もいたな。

煽ってるわけじゃなくて、
Excelって同じ事を実現するにも色んなやり方があってマジで面白いと思うよ。
505500:2008/06/16(月) 15:27:37
>>502
知らなかった。やってみたら確かにできるな。
トンクス
506名無しさん@そうだ選挙にいこう:2008/06/16(月) 15:47:11
だから素人はすっこんでろと(ry
507名無しさん@そうだ選挙にいこう:2008/06/16(月) 16:02:43
>>60
ほんの少しスレを覗いていなかったのですが亀レスですが、ありがとうございました
508507:2008/06/16(月) 16:04:49
>>60
亀レスですが、ありがとうございました

 と書いてから、これじゃ難だしなぁと思い

>>60
ほんの少しスレを覗いていなかったのですが久々に見たら
回答があってお礼を言おうとしたのですがどう見ても亀レスです
本当にありがとうございました


 と書き直そうとしてなぜか途中送信されてしまった
509507:2008/06/16(月) 16:09:43
そうや前から気になってたんですけど、例えばB1のセルに文章打ってて「〜ですた。」
と書いてしまい、”す”と”た”の間に戻ろうとしてカーソルキーの左を押すと、
B1を確定して勝手にA1をアクティブにするじゃないですか。あれ死ぬほど辞めてほしい
というかあの仕様で得する人間いるのか?もし居ても「Shift+カーソルキー」で
設定してくれよと思うのですが、設定でどうにか変更できないんですか?
510名無しさん@そうだ選挙にいこう:2008/06/16(月) 16:12:52
>>509
本当にあれはどうにもならない
入力中にF2を押せば回避できるが、面倒だよな
でもこれしかないんだ
511名無しさん@そうだ選挙にいこう:2008/06/16(月) 16:15:47
普通はExcelで長文をたくさん打ち込むような事はしないから
カーソルキーでセル移動という現状の方式の方が楽な事が多い。
512名無しさん@そうだ選挙にいこう:2008/06/16(月) 16:20:04
編集箇所を動かすショートカットキーは用意してほしかった
513名無しさん@そうだ選挙にいこう:2008/06/16(月) 16:21:18
>>498
式でやるのがそもそも馬鹿げてるから、いい式なんてない。
どこかで計算は軽いけどgdgdした式を見たような覚えがあるが、そもそも数式でやるのはどんな方法だろうと無駄。
514名無しさん@そうだ選挙にいこう:2008/06/16(月) 17:53:24
俺のサイトでも見て勉強してねん。
http://www.geocities.jp/chiquilin_site/data/060322_extraction.html
515名無しさん@そうだ選挙にいこう:2008/06/16(月) 18:12:09
↑ブラクラ
516名無しさん@そうだ選挙にいこう:2008/06/16(月) 18:19:41
ブラクラじゃないから安心して見るように
517名無しさん@そうだ選挙にいこう:2008/06/16(月) 18:29:18
マジで固まった。今ウイルスチェック中。
518名無しさん@そうだ選挙にいこう:2008/06/16(月) 18:57:25
きもちわるい
519名無しさん@そうだ選挙にいこう:2008/06/16(月) 18:58:21
このスレオワタ\(^o^)/
520名無しさん@そうだ選挙にいこう:2008/06/16(月) 19:11:52
しかし、良スレの相談所だったが、よくも、まぁ、ここまで墜ちたもんだwww

521名無しさん@そうだ選挙にいこう:2008/06/16(月) 19:15:50
>>520
在庫管理さえできないやつが回答していたんだからもともと良スレでもなかったんだよ。
522名無しさん@そうだ選挙にいこう:2008/06/16(月) 19:19:16
そもそも雑談が多すぎるから雑談スレを分離したのに、
その経緯を知らない新参がまた居座って雑談を始めるんだもんな。
おまけに当人は「有意義な議論」をしてるつもりだからタチが悪い。
結局雑談スレが出来る前と同じやん。
523名無しさん@そうだ選挙にいこう:2008/06/16(月) 19:24:32
レベルを底上げするために啓蒙が必要だな
524名無しさん@そうだ選挙にいこう:2008/06/16(月) 19:31:44
啓蒙も、スレの賑い
525名無しさん@そうだ選挙にいこう:2008/06/16(月) 19:33:07
>>513
お前に聞いてるわけじゃなくて「あの式のひどさ」と書いてる奴に聞いてるんだよ。
526名無しさん@そうだ選挙にいこう:2008/06/16(月) 20:02:15
ジジイが居坐ってりゃ水も淀むはずだわな
はやく啓蒙してやれよ
527名無しさん@そうだ選挙にいこう:2008/06/16(月) 20:22:17
今のところ実用レベルの質問に実用レベルの回答をしているのはピボット厨だけだな。
528名無しさん@そうだ選挙にいこう:2008/06/16(月) 20:25:21
おおーっとここでピボット厨の自作自演(・∀・)!!
529名無しさん@そうだ選挙にいこう:2008/06/16(月) 20:26:37
ぶっちゃけ>>477のまずさが分らん奴はExcelやめた方がいいんだが。
530名無しさん@そうだ選挙にいこう:2008/06/16(月) 20:27:10
ピボット厨は「データを正規化して下さい。そうすれば後はピボットで自由自在です」
と言ってりゃいいんだから楽だな(笑)
531名無しさん@そうだ選挙にいこう:2008/06/16(月) 20:28:32
>>514の内容しっかりしてるじゃん
何でブラクラとか嘘書くの?
532名無しさん@そうだ選挙にいこう:2008/06/16(月) 20:32:14
>>530
指摘されるまでは知らなかった概念のくせに。
啓蒙されてよかったな。
533名無しさん@そうだ選挙にいこう:2008/06/16(月) 20:38:06
>>529
そりゃちと違うんでないかい?
まずさが分らずに使ってるやつは
だろ?
534名無しさん@そうだ選挙にいこう:2008/06/16(月) 20:38:52
質問者の意図を汲み取ろうとせずとにかくピボットで済ませようとする
ピボット厨は啓蒙にすらなってないよ。現実の仕事は試験問題とは違うんだよ。
535名無しさん@そうだ選挙にいこう:2008/06/16(月) 20:39:39
実務なら多少式が雑でも平気で使うんだがな
536529:2008/06/16(月) 20:40:45
>>533
そのとおりだな
すまんかった
537名無しさん@そうだ選挙にいこう:2008/06/16(月) 20:44:36
自分の言葉で説明出来ずにただまずいとしか
書けない小学生もこのスレには不要。
538名無しさん@そうだ選挙にいこう:2008/06/16(月) 20:51:04
雑談で賑わってるところ申し訳ないのですが、
フィルタオプションの使い方は何となく分かりましたが、
元データを更新した時に抽出先も連動して更新されるようにするにはどうしたらいいのでしょうか?
539名無しさん@そうだ選挙にいこう:2008/06/16(月) 20:51:48
>>534
簡単な方法があるのにわざわざ苦労するのはなぜ?
現実の仕事とかいうけど君たち在庫管理も部品管理もできなかったじゃない。
540名無しさん@そうだ選挙にいこう:2008/06/16(月) 20:57:17
それにここの連中、線形計画法も知らないの。
541名無しさん@そうだ選挙にいこう:2008/06/16(月) 20:59:41
びしっと線形計画法で鮮やかな解法見せてくれんかね
542名無しさん@そうだ選挙にいこう:2008/06/16(月) 21:01:33
>>362をもう一度書かせてもらう。
正直ピボットテーブル使わないやつは言うことがとんちんかんなんだよな。
手続きを省略する方法や代替手段ばかりを一生懸命探そうとする。
ピボットと同じ処理を自作するのは大変だからなあ。
VBAはなんでもできるというのは事実なんだけど、役に立つことやろうと思うと結局ピボットを自作することになる。
543名無しさん@そうだ選挙にいこう:2008/06/16(月) 21:01:37
>>539
回答者は何人もいただろ。
一日中このスレに貼り付いてる癖に何見てきたんだよ。
544名無しさん@そうだ選挙にいこう:2008/06/16(月) 21:02:51
>>543
確かに回答者は何人もいたけど回答できていなかったぞ。
545名無しさん@そうだ選挙にいこう:2008/06/16(月) 21:08:14
>>544
質問が曖昧なままだと一般論的な、参考程度の回答しか出来ないんだよ。
お前はそれが分かってないから社会に出ろって言われてるんだよ。
546名無しさん@そうだ選挙にいこう:2008/06/16(月) 21:09:50
>>545
出た。質問がファジー。
どの辺がファジーだったの?
547名無しさん@そうだ選挙にいこう:2008/06/16(月) 21:14:03
正しい答えが出て無いと言いながら自分では正しい答えを出せないピボ厨
在庫管理もシフト表もピボ厨の管理外だから回答できないのか?
548名無しさん@そうだ選挙にいこう:2008/06/16(月) 21:16:30
>>545
一般論的な回答ってこれのこと?

>正直言うとわからない
>言い訳してすまなかった

>「商品」、「部品」、「材料」と「加工内容」に「型」まで登場しましたね。
>それぞれの関係を明記してもらわないと考えようがないですね。
549名無しさん@そうだ選挙にいこう:2008/06/16(月) 21:17:49
>>547
おまえはあほか。
550名無しさん@そうだ選挙にいこう:2008/06/16(月) 21:26:08
いくつか職場転々としてる俺だけど
ピボットテーブル使ってる職場なんて皆無だぞ。
俺もピボットは便利だから啓蒙したいんだが
どうすれば周りの人に納得して使ってもらえるの?
教えて下さいピボット厨さま。
551名無しさん@そうだ選挙にいこう:2008/06/16(月) 21:28:51
>>550
先輩と上司を啓蒙するのは不可能なんで部下や後輩には啓蒙している。
使用を強制はしていない。
みんな当たり前のように使いこなしとるぞ。
552名無しさん@そうだ選挙にいこう:2008/06/16(月) 21:29:23
>>529,>>533
おれはひどさが分かっててて使う奴にまっ先に消えて欲しいよ。
使う奴というか、あほな式を教えるやつだがね。
553名無しさん@そうだ選挙にいこう:2008/06/16(月) 21:30:53
ピボ厨のレスを見てると後輩を啓蒙出来るようなタイプには見えないんだがな。
働いてる事さえ怪しい。
554名無しさん@そうだ選挙にいこう:2008/06/16(月) 21:32:43
>>553
だんだん人格攻撃くらいしかネタが無くなってきたようだな。
555名無しさん@そうだ選挙にいこう:2008/06/16(月) 21:42:36
>>542
俺はピボットテーブルは今はよく使うが、昔は簡単にVBAで自作してたぞ?
あんなの全然大変じゃないよ。
Excel2000でははっきりいってデータ量によっては使い物にならないケースが多々あったからね。
2002はどうだか知らんが、2003はアイテム数にぐっと余裕ができてやっと心おきなく使えるようになった。
556538:2008/06/16(月) 21:43:32
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 データ抽出 自動更新

すみません、正しいフォーマットで質問しなおします。
だいたい>>366と似たような事をやって生徒名簿を作りたいのですが
フィルタオプションを使って抽出した表が、元の表を変更すると自動で変更されるようにするにはどうしたらいいでしょうか?
フィルタオプションが無理ならピボットテーブルとかソルバー?とかでもいいんですが、いずれにせよ利用者が特別操作しなくても元の表と抽出した表が自動で連動してくれると助かります。
557名無しさん@そうだ選挙にいこう:2008/06/16(月) 21:46:39
>>555
理屈上はピボットテーブルでできることは全部VBAでできるさ。
これからもVBAを使い続ければいいじゃないか。
止めはしない。
558名無しさん@そうだ選挙にいこう:2008/06/16(月) 21:53:29
>>555
ピボットはいいぞと言ってるだけにしか聞こえない。
559名無しさん@そうだ選挙にいこう:2008/06/16(月) 21:56:24
>>556
ピボットテーブルがいいよ
560名無しさん@そうだ選挙にいこう:2008/06/16(月) 22:00:44
心情的にはピボットの人を応援したいが
いかんせん極論が多く具体性の無いレスばかりで
スレを荒らす結果になってしまってるのが残念無念
俺ならもう少しまともにピボットの良さを啓蒙出来る自信あるんだがもう手遅れかな
561名無しさん@そうだ選挙にいこう:2008/06/16(月) 22:04:41
>>560
今からでも遅くないぞ。まともな人間が出てきてくれれば、極論しか言わない厨は排除できる。
562名無しさん@そうだ選挙にいこう:2008/06/16(月) 22:08:14
ピボ厨が言ってるのは極論とは言わないと思う。
質問に回答できているのはピボ厨だけだ。荒らしているのは残念だが。
563名無しさん@そうだ選挙にいこう:2008/06/16(月) 22:09:31
>>559
「データの更新」をしないと元データの変更が反映されなくね?
これが質問者の言う「特別な操作」に含まれるかどうかはわからないけど。
ピボットテーブルの中身を全自動で更新したかったらVBAが必要だと思う。
しかしVBAは「否」だ。さあどうしよう。
564名無しさん@そうだ選挙にいこう:2008/06/16(月) 22:10:58
回答者に理解できるように書けないのでは回答とは言わない。
テーブル作成の手順を懇切丁寧に教えるか、せめてリンクぐらい貼ってやれよ。
565名無しさん@そうだ選挙にいこう:2008/06/16(月) 22:11:59
>>559はただのアンチピボ厨だろ。
ピボットテーブルはこんな問題は解決できない。
将来ピボットテーブルがリアルタイムになったらうれしいね。
566名無しさん@そうだ選挙にいこう:2008/06/16(月) 22:13:57
>556
このページを見てください。下から1/3あたりに関係する内容が載っています。
http://www.eurus.dti.ne.jp/~yoneyama/Excel/filter3.htm
VBAを使わないで、は無理では?
自動でということであれば、フィルタオプションを使わずに、366から始まった
スレを参考にしたらいかがですか?
567名無しさん@そうだ選挙にいこう:2008/06/16(月) 22:19:08
ワークシート関数だけで処理するメリットって、すべてのデータが連動して自動更新される点だよな
やりすぎるとメンテ性が悪くなったり重くなったりするけど
568名無しさん@そうだ選挙にいこう:2008/06/16(月) 22:19:26
>>564
わからないやつをからかうためにわざとぼやかして回答しているんだと思う。
俺はわかるからメチャうける。
569名無しさん@そうだ選挙にいこう:2008/06/16(月) 22:37:57
>>550
Excelでピボットテーブルを使わない会社であっても基幹業務で使っている
データベースは正規化されたデータが格納されているだろう?
((注)第一正規化のことだからね。)

まともな会社じゃ大事な業務ではピボットテーブル的な発想で仕事をしているよ。
それをExcelでも実行するだけじゃないのかな。
570名無しさん@そうだ選挙にいこう:2008/06/16(月) 22:39:07
そもそも入力と同時になんて質問する人を啓蒙しないとまずいんじゃないの?
そういうことは無駄が多いからやるべきじゃないんだよね。
マクロをボタンにでも登録して、必要な時に抽出するのが妥当な線。
たとえばWEBなんかでもダウンロードするときはダウンロードのボタンなりリンクなりを押すだろ?
571名無しさん@そうだ選挙にいこう:2008/06/16(月) 22:44:13
>>570
でもやっぱりリアルタイム性があるのとないのとでは素人の食いつきが違うのよ。
表計算ソフトがこんなに人気あるのもSUM関数でタテヨコの集計が一度に計算され
るのが受けているだけ。
572538:2008/06/16(月) 22:44:20
>>559 >>563 >>566
うちの職場ではVBAは原則禁止になってて使えないのです。
(私もVBAは難し過ぎてちょっと・・・)
手動での更新方法を使う人に教えればいいのでしょうけど
あり得ないぐらいパソコン音痴な人ばかりなんで、出来るだけ余計な操作はさせたくないのです。
>>438のxlsファイルは試しました。これぐらいなら何とか私にも理解できて応用出来そうなんですが、
一番悪い方法と書いてる方もいるし、扱う人数が1000人近いのでちょっと難しいのかなと。
もう少し考えて、どの方法を選択するか、どこを妥協するかを決めたいと思います。
ありがとうございました。
573名無しさん@そうだ選挙にいこう:2008/06/16(月) 22:47:38
574名無しさん@そうだ選挙にいこう:2008/06/16(月) 22:52:17
>>573
これどうやって使うの?
575名無しさん@そうだ選挙にいこう:2008/06/16(月) 23:13:05
>>572
「原則」禁止ってことなら少しぐらい使ってもよさそうだけどね。
それで仕事の能率が上がるんなら反対されないんじゃないかなあ。
576名無しさん@そうだ選挙にいこう:2008/06/16(月) 23:23:22
VBA原則禁止 は 悪意のあるプログラム を排除するためじゃないだろうか。
計算式ではファイル削除とかできないから。
となると 438 のサンプルなど参考にして計算式だけで対応するしかないでしょうね。
366の質問者は12000人でこれをやろうとしています。これの1/12と考えれば
気が少しはラクになりませんか。
577名無しさん@そうだ選挙にいこう:2008/06/16(月) 23:26:58
>>574

1 t生徒名簿シートを編集する
2 pvシートを表示して表の中のセルを選択する
3 世界の平和を祈る
4 表示されたピボットテーブルツールバーの[!]をクリックする
5 t生徒名簿シートを並び替えた表が表示される
578名無しさん@そうだ選挙にいこう:2008/06/17(火) 04:04:31
>>531
>>514の内容をじっくり読んでみたが、なんか説明があまり良くないねぇ。
その3の配列数式が悪い一番の理由が書いてないし、その2の作業列を使う方法の最後の方法なんかまったく意味不明なおかしなことやってるし。
普通に1から連番振って、その番号を完全一致検索すりゃいいじゃん。
+2って何なんだよwww
579366:2008/06/17(火) 07:18:00
なんか盛り上がっていらっしゃるようで。

私にとっては>>438さんのは目からウロコだった訳で、
スゲーと思わされたのですが、大人数には対応できない、と。
仮にVBAを使えばもっと簡単に軽く男女別に分けられる、
ということなのですよね。まあ、私は40人そこらなので
全く問題ないわけですが。

何方かお暇でしたらぽーんと素人でも扱えるVBA込みのブックを
作っていただけないでしょうか。それで雑談も決着するでしょうし。
580名無しさん@そうだ選挙にいこう:2008/06/17(火) 07:28:54
今から作ってみるか
581名無しさん@そうだ選挙にいこう:2008/06/17(火) 07:38:09
だめださすがに10分じゃ無理かw
夕方ぐらいには出すぜ
582576:2008/06/17(火) 08:28:28
>579
アレ?450の人(12000人云々)は366さんではなかったのですか?
583名無しさん@そうだ選挙にいこう:2008/06/17(火) 08:52:36
>>582
だから回答者いじめだろ?
あの回答のまずいところはCOUNTIFつかってるとこだからね。
配列数式よりはましだが俺も下手だなぁと思ったもん。
584名無しさん@そうだ選挙にいこう:2008/06/17(火) 09:02:55
>>571
素人の食い付きが良かろうと、クソみたいな方法を教えるやつはカス。
585名無しさん@そうだ選挙にいこう:2008/06/17(火) 09:04:19
後だしで啓蒙(笑)
586名無しさん@そうだ選挙にいこう:2008/06/17(火) 09:28:25
>>573は使えないね。
だいたい行を挿入させるのがまずいし、それにピボットの使い方知らない人にも使えるようにしないと。
ってことは結局ユーザーインターフェースとしてのVBAが必須ってことになるわけだが。
587名無しさん@そうだ選挙にいこう:2008/06/17(火) 09:40:50
>>579
A列に名前、B列に性別(男=1)が入っているとする

Sub a()
 c = Application.WorksheetFunction.CountA(Range("A:A")) '人数
 f = Application.WorksheetFunction.CountIf(Range("B:B"), 1) + 1

 m = 1
 For i = 1 To c
  If Cells(i, 2) = 1 Then
   Cells(m, 3) = Cells(i, 1)
   m = m + 1
  Else
   Cells(f, 3) = Cells(i, 1)
   Cells(f, 3).Font.Color = vbRed
   f = f + 1
  End If
 Next i

End Sub
588名無しさん@そうだ選挙にいこう:2008/06/17(火) 11:03:29
>>587
全然使えないぞ
589507:2008/06/17(火) 11:32:28
>>60
すみません、各ソースの動きはトレースできたものの、
なぜこれで書き変えられるかがよくわかりません。

書き換え前と後で
 ファイルサイズが同じになる → 一部を書き換えられる
 ファイルサイズが      → 全体を出力し直す

という認識だったのですが、バイナリモードで読み書きすると
その制約に捕らわれず外部ファイルの一部のみを書き換える事が
できる、ということなのでしょうか?

今は数キロバイトのファイルを読むだけなので問題ないのですが
将来、それが数メガになってネットワーク上にファイルがある場合
全体を出力し直すと遅延が発生しそうでそれを危惧しているのですが・・・
590名無しさん@そうだ選挙にいこう:2008/06/17(火) 11:53:11
そういや、IMPROVE は、ピボットそのまんまの、
表計算ソフトだったな。
591名無しさん@そうだ選挙にいこう:2008/06/17(火) 13:09:08
>>588
>>587じゃないがコード見りゃやってること分るじゃん。
最初に書いてるようなデータになってりゃ動かないか?
俺は試してみたわけじゃないが、パッと見で動くと思うんだが。
C列が男(1)だったら1行目から詰めて書き込み、男じゃなかったら男の後ろに順番に書き込んでるな。
592名無しさん@そうだ選挙にいこう:2008/06/17(火) 13:11:58
すまん、B列が男(1)だったらC列の1行目からだな。
593名無しさん@そうだ選挙にいこう:2008/06/17(火) 13:30:49
>>586
>>573は使えないには同感。いまいち何がやりたいのかわからない。

私はピボットテーブルを操作するためのUIをVBAで作る必要はないと考えてます。
マウスで操作するだけ、ウィザードに答えるだけの簡単操作。これの何が難しいのか理解できません。
Excelを使うのはプロです。コンピュータの専門家ではありませんが、それぞれの分野の専門家のはず。
これくらいのことできなくては。
594名無しさん@そうだ選挙にいこう:2008/06/17(火) 13:34:24
つーかお前ら
コードぐらい試してから書き込めw
595名無しさん@そうだ選挙にいこう:2008/06/17(火) 13:41:10
私がUIにVBAを使う意義を感じるのは次のような例。
「売上データを入力する時に商品コードを入れると単価が自動的に記録される。」
VLOOKUPでできそうに思うかもしれませんが、単価のような変化しやすいデータは正規化しない方がいい場合が多いですから。
596名無しさん@そうだ選挙にいこう:2008/06/17(火) 14:03:43
ボタンを押すと自動的に最終行のある列に日付と時間が記録されるってのは年寄りに評判よかったな
597580:2008/06/17(火) 14:14:23
ttp://www1.axfc.net/uploader/He/so/110543
パスは1111

結局仕事の暇な時間見つけて1時間かかった
自分でも酷いコードだと思う
>>587みたいになりたいです
598名無しさん@そうだ選挙にいこう:2008/06/17(火) 14:19:51
生徒名簿なんてそんな頻繁に動きがあるわけでもないだろうから
応答性はそれ程重要じゃないと思う。
>>438を12000件にして試したけど再計算に10秒程度待たされるだけだよ?
(PCのスペックによるだろうけど)
質問者は1000件程度でさらに少ない。
仮に数十秒待たされたとしても、年に数回更新する程度の表でそれが致命的な欠陥になるとは思えないなあ。
599名無しさん@そうだ選挙にいこう:2008/06/17(火) 14:26:55
血管にしておかないと啓蒙する所が無くなるだろ
0.1秒の結果の違いもベストプラクティスとかいってオナネタにしちゃう
2世代は前のジジイなんだから仕方ない
600名無しさん@そうだ選挙にいこう:2008/06/17(火) 14:29:16
そしてオナネタコードは1週間もすれば本人すらも理解できず
また1から書き直しばっかするから非効率きわまり無い
本人はそれを自分ばかりがやらなくてはいけないと被害者意識全開
扱いにくい老害の置物の出来上がり
601名無しさん@そうだ選挙にいこう:2008/06/17(火) 14:35:16
>>594
試さなくても何やってるかは見りゃ分るよ。
インデントさえしっかりついてれば人のコードを読むのは得意だからね。
602名無しさん@そうだ選挙にいこう:2008/06/17(火) 14:41:37
なんか意味不明なヒガミ書き込みがあるね。
603名無しさん@そうだ選挙にいこう:2008/06/17(火) 14:42:18
>>601
読んで動かしていじって初めて理解できる人の事なんか
全然考えて無いと言いたいのですね、わかります。
604名無しさん@そうだ選挙にいこう:2008/06/17(火) 14:43:16
おまいらグダグダ文句言ってばかりいないで、サロンのあっぽーみたいにさらっと回答してみなよ。
605名無しさん@そうだ選挙にいこう:2008/06/17(火) 14:52:01
情報システム部門みたいなのがある会社ならいいんだが
ちょっとPCに詳しいって理由で一般社員が任されて作った中途半端なVBAは後々困る事が多いんだよな。
そいつが在籍してずっと面倒みてくれるんならいいが、オタクっぽい奴は引き継ぎもせず突然辞めたりするから困るw

でもこういう掲示板で他の人のいろんなコードが見られるのは勉強になるんでこれはこれで有意義ですけどね。
606名無しさん@そうだ選挙にいこう:2008/06/17(火) 14:55:24
>>600
自分の書いたコードを忘れるような奴なんていねーだろ?
プロなら全部の行にコメント入れるのが常識だからね。
607名無しさん@そうだ選挙にいこう:2008/06/17(火) 15:07:29
>>605
分かる。0から作るほうがよっぽど楽な場合は多々あるよな
と言ってる俺がそのオタク君なんだけどね・・

608名無しさん@そうだ選挙にいこう:2008/06/17(火) 15:15:47
>>607
おまえきもいな。







俺みたい!さぁ頼まれてから一ヶ月近くたったぞおぉお
もはや進捗すら聞かれなくなったぞぉぉ
やっぱり基礎を学んでからやるべきだったか
改修しすぎで既にスパゲッティワロタ
609名無しさん@そうだ選挙にいこう:2008/06/17(火) 15:21:46
基礎なんかどうでもいいんだよ。
俺なんかインデントなんかいい加減だしセレクトしまくりでも本も出したし仕事もよく引き受けるぜ。
コードオタクなんか仕事にゃありつけんよ。
610名無しさん@そうだ選挙にいこう:2008/06/17(火) 15:27:05
VLOOKUPがあれば何でもできるって人が前にいたが>>438か?
611名無しさん@そうだ選挙にいこう:2008/06/17(火) 15:29:34
それを言うなら「INDEXとMATCHがあれば何でもできる」だろ
612名無しさん@そうだ選挙にいこう:2008/06/17(火) 15:38:19
>>611
いや違うよ。INDEXとMATCHは不要とか言ってたからな。
613名無しさん@そうだ選挙にいこう:2008/06/17(火) 15:52:09
【1 OSの種類         .】 WindowsXP SP2
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい(勉強中です)
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 MID

セルA1に入力された十桁までの数値をセル(D1-M1)に、
一文字づつ右側から取り出したいと思います。
=IF(A1="","",RIGHT("0000000000"&A1,10))
という関数でセルD1-M1はMIDで取り出し
入力をしたみたのですが、正の数の場合は取り出しが可能なのですが
負の数(マイナス)の場合は取り出しができませんでした。
どういう方法ですれば宜しいでしょうか?
宜しくお願いします。
614名無しさん@そうだ選挙にいこう:2008/06/17(火) 15:56:29
>>612
そういう極論言うのは多分ピボットの人じゃないかな。
615名無しさん@そうだ選挙にいこう:2008/06/17(火) 16:06:52
>>614
そうかな?

Excel総合相談所 67
   >>934
   INDEXで何が実現できるか書けばいいじゃないか。

   Excelで覚えなくていいもの
   配列数式
   INDEX
   MATCH
   SUMIF
   DSUM

616名無しさん@そうだ選挙にいこう:2008/06/17(火) 16:10:28
945 名無しさん@そうだ選挙にいこう sage New! 2008/05/06(火) 22:23:14
   >>935
   Excelで覚えなくていいもの VLOOKUP

947 名無しさん@そうだ選挙にいこう sage New! 2008/05/06(火) 22:30:40
   >>945
   VLOOKUPはデータに分類項目を付け加えるために使ってる。もちろん後で分類別に集計するためです。
   もっと便利な手法があれば紹介してくれ。


やっぱ>>438っぽい
617名無しさん@そうだ選挙にいこう:2008/06/17(火) 16:18:18
ピボ厨の人はAccessが使える簡易ソフトってイメージでExcel使ってるから
VLOOKUPとピボットがあれば何でも出来るって感じなんじゃないのか。
俺はAccessも使ってるからそういう気持はよく分かるよ。
VLOOKUPでテーブルをリレーションさせて、ピボットテーブルで集計するって感じなんだろうな。

>>616
>VLOOKUPはデータに分類項目を付け加えるために使ってる。もちろん後で分類別に集計するためです。
これはまさに、最終的にはピボットを作るんだがその下準備時としてVLOOKUPは必要って考え方だよ。
一方>>438はVLOOKUPで分類項目を付け加えてるんじゃなくて分類そのものを行ってる。
618名無しさん@そうだ選挙にいこう:2008/06/17(火) 16:20:53
>>613
D1に
=IF(A1>=0,ROUNDDOWN(A1,-9)/1000000000,ROUNDDOWN(A1,-9)/1000000000*-1)
後はE1、F1と桁を減らしていけばいいかも
0と出るのが嫌なら、=if(and(A1>=1000000000,A1=<-1000000000,上の式,"")
みたいに入れ子にするとかで対応
619名無しさん@そうだ選挙にいこう:2008/06/17(火) 16:21:21
>>613
マイナスをどういう形で取り出したいのか書いてないので無視
=IF(A1="","",RIGHT("0000000000"&ABS(A1),10))
620名無しさん@そうだ選挙にいこう:2008/06/17(火) 16:23:09
>>617
なるほど。
621名無しさん@そうだ選挙にいこう:2008/06/17(火) 16:29:31
>>604
某所を退去させられて、あちらで頑張ってるね。
622613 ◆9Ce54OonTI :2008/06/17(火) 16:31:17
>>618 >>619 有難うございます。
早速ためしてみます。
623613 ◆9Ce54OonTI :2008/06/17(火) 16:35:20
>>619 すみません。
できれば、マイナスの場合は「−」「△」
(負の記号もMIDで取り出す?)を数値の前につけて
取り出したいです。
A1が-1000 だと △1000 または -1000
ご指南お願いします。
624名無しさん@そうだ選挙にいこう:2008/06/17(火) 16:40:21
=IF(A1="","",IF(A1<=-1,"△" & RIGHT("0000000000"&ABS(A1),10),RIGHT("0000000000"&ABS(A1),10)))

こうですね、わかります
625名無しさん@そうだ選挙にいこう:2008/06/17(火) 16:43:00
>>623
だからマイナスをどういう形で取り出したいのかがわからんのだが
その-1000の場合はセルD1-M1にどう入ってほしいのよ
626名無しさん@そうだ選挙にいこう:2008/06/17(火) 17:05:56
>>623
D1=ROUNDDOWN(A1,-9)/1000000000
E1以降は桁減らしで
627626:2008/06/17(火) 17:08:15
しまった桁減らすだけじゃダメだゴメン
E1=MOD(10,ROUNDDOWN(A1,-8)/100000000)
以降10の桁を増やして100000000の桁を減らすと上手くいく気がする
あと、もっと上手い式があるきがする
628名無しさん@そうだ選挙にいこう:2008/06/17(火) 17:19:05
なんか元の式
=IF(A1="","",RIGHT("0000000000"&A1,10))
の0 10個をスペース10個に置き換えるだけでいいような気がしてきた
629613 ◆9Ce54OonTI :2008/06/17(火) 17:37:02
>>624->>628有難うございます。
>>625
-1000
の場合、
D1〜H1は空欄になり、
I1に「-」または「△」がきまして
J1に1 K1〜M1は0 という風な取り出し方になります。
(一応10桁で固定してますので、マイナス表記が可能なのは10億未満??)
630名無しさん@そうだ選挙にいこう:2008/06/17(火) 17:45:29
やっぱり>>628でいいんじゃん?
△使いたかったらSUBSTITUTEでどーぞ
631名無しさん@そうだ選挙にいこう:2008/06/17(火) 17:51:22
>>613
D1=MID(RIGHT("     "&$A1,10),COLUMN()-3,1)
            ↑
  ここは半角スペース9個な。

あとは好きなだけコピペ
632名無しさん@そうだ選挙にいこう:2008/06/17(火) 18:02:15
>>631
うめぇwww
633名無しさん@そうだ選挙にいこう:2008/06/17(火) 18:07:15
>629
>…入力された…数値をセル(D1-M1)に一文字づつ右側から取り出… という意味は
一番右の一桁目がD1、次の二桁目がE1… と考えるのが普通だけど、左からなんだな。
それから、(D1-M1) という書き方はやめた方がいい。

10桁のマイナスにも対応できるよう、C1:M1 に
=IF(LEN($A$1)<14-COLUMN(),"",LEFT(RIGHT($A$1,14-COLUMN())))
634名無しさん@そうだ選挙にいこう:2008/06/17(火) 18:18:46

A1に1000

D1 E1 F1 G1 H1 I1 J1 K1 L1 M1 N1
1 0 0 0 0

A1の値が-11000

D1 E1 F1 G1 H1 I1 J1 K1 L1 M1 N1
- 1 1 0 0 0 0
635名無しさん@そうだ選挙にいこう:2008/06/17(火) 18:21:21
最大桁数の時C列にマイナスの符号を入れるなら
C1=LEFT(RIGHT(" "&$A1,14-COLUMN()),1)
あとはM列までコピペでいける
636名無しさん@そうだ選挙にいこう:2008/06/17(火) 18:35:22
おすえて
>629で
AA15に入力された値を行がちがう
AF18 AG18・・・としたい場合はどうすんの?
637名無しさん@そうだ選挙にいこう:2008/06/17(火) 19:01:40
>>636
AA15をAF18〜AO18までの10桁にするなら
AF18に=LEFT(RIGHT(" "&$AA15,42-COLUMN()),1)と入れてAGからAOまでコピー
638名無しさん@そうだ選挙にいこう:2008/06/17(火) 19:04:38
>637どうもありがとうです
ついでに>630さんのSUBSTITUTEはどういう形でMIDと組み合わせればいいんですか?
-を△に置き換えるってことですよね?
639名無しさん@そうだ選挙にいこう:2008/06/17(火) 19:10:58
>>638
基本は=SUBSTITUTE( 文字列 ,"-","△")で置き換えられる。
つまり、この場合は=SUBSTITUTE(LEFT(RIGHT(" "&$AA15,42-COLUMN()),1),"-","△")
640名無しさん@そうだ選挙にいこう:2008/06/17(火) 20:16:10
>639 トンクス 勉強になりますた
641名無しさん@そうだ選挙にいこう:2008/06/17(火) 20:26:16
便乗すいません。
RIGHT(" "&$AA15,42-COLUMN())のコラム関数の42の部分はどういう風に読み解けばいいんでしょうか?
642名無しさん@そうだ選挙にいこう:2008/06/17(火) 20:34:10
めんどくさいことしてるね
0より小さければ△表示させればいいだけだろ
643名無しさん@そうだ選挙にいこう:2008/06/17(火) 20:34:22
42-COLUMN()
COLUMN()は列番号だから、AF列なら32
RIGHT(" "&$AA15,42-COLUMN())

RIGHT(" "&$AA15,10)
になる
644名無しさん@そうだ選挙にいこう:2008/06/17(火) 20:45:20
>>642
まったくだなw

>>639は単純なことを複雑にして数式をセルに3行くらい折り返しでつっこむタイプ
645名無しさん@そうだ選挙にいこう:2008/06/17(火) 20:54:15
TEXT(A1," 0000000000;△0000000000;")
646名無しさん@そうだ選挙にいこう:2008/06/17(火) 21:12:47
=IF(A1="","",SUBSTITUTE(RIGHT(" "&A1,10),"-","△") )
647名無しさん@そうだ選挙にいこう:2008/06/17(火) 21:28:25
>>642が一番無駄だっつーのw
648名無しさん@そうだ選挙にいこう:2008/06/17(火) 21:37:18
=IF(A1<0,"△","")
649名無しさん@そうだ選挙にいこう:2008/06/17(火) 21:38:35
ちゃんと質問文読めよおめーら
650名無しさん@そうだ選挙にいこう:2008/06/17(火) 21:48:53
文字列として扱う方針でいくならIFで正負の判断させるよりSUBSTITUTEで置き換えの方が一貫性があっていいな

まあどっちでもいいんだけど、あえて理由を付けるなら
651名無しさん@そうだ選挙にいこう:2008/06/17(火) 21:53:11
このスレ、局所的な事がわかるだけで自分はできる人間と勘違いしているバカども多すぎw
652名無しさん@そうだ選挙にいこう:2008/06/17(火) 21:58:39
局所的な事もわからないなら黙っていた方が恥をかかないで済みますよ^^
653名無しさん@そうだ選挙にいこう:2008/06/17(火) 22:01:40
ああ、ケチだけつけて答えを書かないのは恥をかかない為ですね、失礼しました^^
654名無しさん@そうだ選挙にいこう:2008/06/17(火) 22:01:48
>>652
>648程度のことなら分かるぜw
655名無しさん@そうだ選挙にいこう:2008/06/17(火) 22:02:27
>>653
お前もなw
656名無しさん@そうだ選挙にいこう:2008/06/17(火) 22:02:39
657名無しさん@そうだ選挙にいこう:2008/06/17(火) 22:08:14
>>656
それもわかってるw
658名無しさん@そうだ選挙にいこう:2008/06/17(火) 22:10:29
だいたいどうしてもSUBSTITUTE使いたいにせよ>>639なんて
=SUBSTITUTE(""&AA15,"-","△")
でいいじゃん。なんでわざわざ小難しくしてるのか意味不明
659名無しさん@そうだ選挙にいこう:2008/06/17(火) 22:13:42
>>658
そこが短絡的だとw
>>649
660名無しさん@そうだ選挙にいこう:2008/06/17(火) 22:19:20
>>658>>639って結果がちがうのか?
661名無しさん@そうだ選挙にいこう:2008/06/17(火) 22:21:01
まあ>>639は確かに意味不明だけどね。なんでそこでLEFT関数使うんだという。
そりゃ正負判定しろ、と言いたくなる。
ここは>>646と書くべき。半角スペースが詰まって表示されているのがアレだけど。
662名無しさん@そうだ選挙にいこう:2008/06/17(火) 22:29:45
半角スペースがそもそもいらない ""でおk
663名無しさん@そうだ選挙にいこう:2008/06/17(火) 22:32:18
IFもRIGHTもそもそもいらない =SUBSTITUTE(""&A1,"-","△") でおk
664名無しさん@そうだ選挙にいこう:2008/06/17(火) 22:33:57
途中から質問者が変わってるんだよな
>>613 >>623 >>629 が質問
665名無しさん@そうだ選挙にいこう:2008/06/17(火) 22:35:02
右詰に取り出す部分が抜けてるんだよお前ら
666654:2008/06/17(火) 22:44:30
>>664
それって実はどれも同じ質問。
623,629は質問者に対して色々と疑問を感じた回答者が質問したことに対する答えだね。
667名無しさん@そうだ選挙にいこう:2008/06/17(火) 22:46:29
配列数式は?
668654:2008/06/17(火) 22:47:36
途中で送信しちゃった。

666なのに置き換えの事で無駄に盛り上がってるからついねw


さて、
>>613
=MID(TEXT($A1,REPT(" ",10-LEN($A1))&"0;△0"),COLUMN(A1),1)
右にフィルコピー

マイナスの時の符号は △ のところを自由に変えてくれ。
669名無しさん@そうだ選挙にいこう:2008/06/17(火) 22:49:17
>>667
670名無しさん@そうだ選挙にいこう:2008/06/17(火) 22:53:08
>>668
マイナスで右詰にならないよ
671654:2008/06/17(火) 22:54:33
ミスった^^;

>>613
=MID(REPT(" ",10-LEN($A1))&TEXT($A1,"0;△0"),COLUMN(A1),1)
右にフィルコピー
672名無しさん@そうだ選挙にいこう:2008/06/17(火) 23:10:23
>>671
それ、結局>>639より効率悪くなってない?
673名無しさん@そうだ選挙にいこう:2008/06/17(火) 23:11:21
ご苦労さん
674名無しさん@そうだ選挙にいこう:2008/06/17(火) 23:13:18
>>672
それはギャグでいっているのか
>>639は-を△に置き換えてるだけだろ
>>671のちんこのカスでも煎じて飲んで来い
675名無しさん@そうだ選挙にいこう:2008/06/17(火) 23:14:45
やりたいのはこういうことなんでしょ?
ttp://kissho.xii.jp/1/src/1jyou38497.png

また「意味のない作業をやってる」って啓蒙されちゃいそうだねっ
676名無しさん@そうだ選挙にいこう:2008/06/17(火) 23:18:06
>>674
>>639もちゃんと右詰めで1文字ずつ取り出す式になってるんだが…
複雑すぎて理解できないのかな?
677名無しさん@そうだ選挙にいこう:2008/06/17(火) 23:19:12
>>676
いま気づいた ごめん>>639
678名無しさん@そうだ選挙にいこう:2008/06/17(火) 23:27:15
合体してさらにパワーアップ
=LEFT(RIGHT(TEXT($A1," 0; △0"),14-COLUMN()),1)
679名無しさん@そうだ選挙にいこう:2008/06/17(火) 23:41:13
一見ネタに見えるけど意外と使える数式って好きだぜ
680名無しさん@そうだ選挙にいこう:2008/06/17(火) 23:51:23
LEFT(RIGHT())ってMID()で置き換えられない?
と思ってやってみたが、なぜかうまくいかない。
=MID(TEXT($A1,"??????????;△?????????"),COLUMN()-3,1)
添削プリーズ
681名無しさん@そうだ選挙にいこう:2008/06/18(水) 00:01:12
エクセル初心者です。
下記の方程式のθの最小値を求めたいんですが、
どうすればいいんでしょうか?

a{(SINθ−COSθ+2)/SINθ}

excel2007を使ってます。

ちなみにVBAは何のことだか分からないです、、、
682名無しさん@そうだ選挙にいこう:2008/06/18(水) 00:02:09
>>680
マイナスだと一文字目が△になるな
ifで0以下の場合↓のようにするとか
=MID(TEXT($A1,"??????????;△?????????"),COLUMN()-2,1)
683名無しさん@そうだ選挙にいこう:2008/06/18(水) 00:23:49
>>681
それはExcelじゃ無理
684名無しさん@そうだ選挙にいこう:2008/06/18(水) 00:32:36
>>681
こっちで聞いた方がよくね?

【log】高校生のための数学の質問スレPART182【log】
http://science6.2ch.net/test/read.cgi/math/1213424169/
685名無しさん@そうだ選挙にいこう:2008/06/18(水) 00:32:45
>>683

そうなんですか、、、

有り難うございました。

686名無しさん@そうだ選挙にいこう:2008/06/18(水) 00:36:31
>>684

有り難う御座います。


ですがあの数式、プラトーの問題の研究過程で出てきたやつなんで、
高校数学じゃ厳しいと思うんですよ。
687名無しさん@そうだ選挙にいこう:2008/06/18(水) 00:40:27
>>686
ここは?

◆ わからない問題はここに書いてね 244 ◆
http://science6.2ch.net/test/read.cgi/math/1213269878/
688名無しさん@そうだ選挙にいこう:2008/06/18(水) 00:46:12
>>687

そこはかなりよさそうですね。

使ってみます。

お世話になりました。
689名無しさん@そうだ選挙にいこう:2008/06/18(水) 06:59:31
>>681
aは実数かな?
近似解でいいなら定義域を適切に制限してやれば、定義域内での最大値を
ソルバーで求めることができるよ。
690689:2008/06/18(水) 07:08:02
しまった。問題をしっかり読んでいなかった。
最小値でしかもθか。ごめん。
するとよくわからないなあ。いくら小さくてもいいんじゃないの?
691名無しさん@そうだ選挙にいこう:2008/06/18(水) 08:06:27
おはよう
692名無しさん@そうだ選挙にいこう:2008/06/18(水) 08:55:44
>681
質問をそのまんま読むと
θの最小値は -∞
693613 ◆9Ce54OonTI :2008/06/18(水) 10:02:05
皆たま、ありがとうございます。
>675さんのキャプ画像のような形になりますが、
一つ、疑問がありまして、フィルコピーができない場合は、該当のセルに一つ一つ
入力していく方法しかないでしょうか??

=MID(REPT(" ",10-LEN($A1))&TEXT($A1,"0;△0"),COLUMN(A1),1)
などを適用させたい場合等。

このような形です、
ttp://kissho.xii.jp/1/src/1jyou38532.jpg
オレンジセルに入力された数値を黄色セルに抽出(分配)?します
694名無しさん@そうだ選挙にいこう:2008/06/18(水) 11:18:25
【1 OSの種類】 WindowsXP SP3
【2 Excelのバージョン】 Excel 2003
【3 VBAが使えるか】 多少
【4 VBAでの回答の可否】
【5 検索キーワード】 外部データの取り込み クエリの編集 フリーズ

それまで出来ていたのに、ある日突然にエクセルで「外部データの取り込み」「クエリの編集」ができなくなりました
上記の項目を選ぶと反応せずタスクマネージャーから「手前に表示」をすると以下の画面でフリーズしています
http://www.77c.org/p.php?f=nk3978.jpg&c=758c

ヘルプ→アプリケーションの自動修復
インストールCDからの再インストール/修復を試しましたが効果がありませんでした
対処法ありましたらご教授下さい
よろしくお願いします
695名無しさん@そうだ選挙にいこう:2008/06/18(水) 14:59:25
VBAでcsvを読み書きするエクセルファイルを作っています。

外部ファイル(csv)を意識しないような作りにしているため
ソースの中にパスを書き込んでいるのですが、将来的に
ファイルのパス等が変わり、自分以外の誰かが修正する際に
容易に行えるようにしたいのですが、Defineのようなことは
できるのでしょうか?

つまり現状でファイルにアクセスする先々で
 Const FileName = "C:\Documents and Settings\金英日\デスクトップ\売上.csv"
とソースの至る所に記載されているものが例えばDefineのように

 KIMUCHI = "C:\Documents and Settings\金英日\デスクトップ\売上.csv"
 Const FileName = KIMUCHI
とできれば、修正すべきはKIMUCHIだけなので楽になるかな、と思った次第です。

もちろん、パスだろうとファイル名だろうと置換すればいいだけなんですけどね。
でも、何も分からない人にも
 「ALT+F11でVBA開いて上から○行目のパス直してください」
と説明できると楽だと思いまして。
696名無しさん@そうだ選挙にいこう:2008/06/18(水) 15:30:01
Excelは全く関係ないが代わりにConst、WSH SpecialFolders。
697名無しさん@そうだ選挙にいこう:2008/06/18(水) 15:33:31
>695
696の回答がいいのか、悪いのかわかりませんが、自分はどこかのシートの所定のセルにパスを記入し、
マクロ実行時に当該セルの内容を読み込むようにしてます。マクロを編集禁止してもいいようにです。
698695:2008/06/18(水) 15:38:33
失礼しました…subの外、Option Explicitの下にでも書いておけば
そのプロジェクトの中のどこでも使えるんですね…
先頭にpublicつけて書いた時にエラーが出たのでpublic変数以外は
プロージャの外部で宣言できないのかと思い込んでました。
699名無しさん@そうだ選挙にいこう:2008/06/18(水) 15:42:47
おぉ、放置されているかと思ったらレスが。ありがとうございます。
なるほど、Windows Scriptを使う方法やパスを書いてしまうという
方法がありましたか。んんーなるほどぉ!んんーなるほどぉ!
今回は>>698様のアイデアを採用させて頂きます。ありがとうございます。
700700:2008/06/18(水) 15:44:04
698=699=700=イケメンです。今後ともよろしくお願いします。
701700:2008/06/18(水) 17:50:09
先生!なんで俺がレスしたスレはもれなく流れが止まりますか?
702名無しさん@そうだ選挙にいこう:2008/06/18(水) 19:03:45
>>693
5列間隔で規則的に並んでいるので、最初から計算式が4列飛びに対応できるよう作っておけば
いっぺんにコピペできるが、そういう式を考えるのと、一つ一つ入れていくのと、
どっちが楽かは微妙なラインだね。
703名無しさん@そうだ選挙にいこう:2008/06/18(水) 19:40:35
【1 OSの種類         .】 Windowsvista
【2 Excelのバージョン   】 Excel2007


フィルタで抽出したデータを切り取りして別のエクセルファイルに貼り付けたら最初と最後の間のデータが
ごっそり抜けてしまいました。上書き保存してしまったのですが
元に戻す方法ありませんか?教えてくださいお願いします。
704名無しさん@そうだ選挙にいこう:2008/06/18(水) 19:41:27
>>697
に同意。誰かが使うって前提なら、それが一番わかりやすいと思う
>>693
その量ならBF→BEにオートフィル、数式バーの中身をコピペが一番早いと思う
705名無しさん@そうだ選挙にいこう:2008/06/18(水) 19:43:36
>>703
2003に関していえば無いけど、多分2007も無いと思う
706名無しさん@そうだ選挙にいこう:2008/06/18(水) 19:51:34
>>703
その操作でフィルタかけてたオリジナルのデータが消えるはずないんだが
707名無しさん@そうだ選挙にいこう:2008/06/18(水) 20:08:03
フィルタを解除すれば元に戻るってオチ?
708名無しさん@そうだ選挙にいこう:2008/06/18(水) 20:14:19
あ 切り取りって書いてあるな
カットのことならペーストした先のデータと残ったデータを合わせれば復元できるはず
709名無しさん@そうだ選挙にいこう:2008/06/18(水) 20:21:40
>>708
すみませんが、どういう手順でやればいいのでしょうか。
710名無しさん@そうだ選挙にいこう:2008/06/18(水) 20:25:59
オートフィルタって切り取りだと中身はそのまま移動するだけだが、
コピーすると中身(非表示になった部分)は消えるな。この違いは知らなかった

コピーしてから元データ削除してると戻らない
切り取りなら元の場所に戻せばいいだけ
だな。
711名無しさん@そうだ選挙にいこう:2008/06/18(水) 20:40:08
>>710
元に戻りました!
ありがとうございました!
本当にありがとうございました。
712名無しさん@そうだ選挙にいこう:2008/06/18(水) 20:47:12
>>680

excelサイト横断検索で調べろ
ttp://minagara.com/excel/kazoeru.html
713名無しさん@そうだ選挙にいこう:2008/06/18(水) 21:52:39
こんばんは。
お世話になります。

VBAの計算式で以下を実施できるものないでしょうか。
--------------------------------------------------
dim hoge as string
hoge1 = "abc"
hoge2 = "de1"
の状態で、インクリメントするイメージで、
hoge1 の内容を、"abd"
hoge2 の内容を、"cd2"
のようにしたいです。
--------------------------------------------------
Dim hoge3 as string
hoge3 = "100"
hoge3 = hoge3 + 1
上記の場合は、"100"から、何型かはわかりませんが、暗黙のキャストで計算できるのですが、文字列が含まれた場合…。

自作で関数を作成するしかないでしょうか?

よろしく御願いします。
714名無しさん@そうだ選挙にいこう:2008/06/18(水) 22:33:27
>>713
vbaじゃないけど・・
A1にabcが入っててabdにしたい場合
=LEFT(A1,2)&CHAR(CODE(RIGHT(A1,1))+1)
A2にde1が入っててcd2
=CHAR(CODE(MID(A2,1,1))-1)&CHAR(CODE(MID(A2,2,1))-1)&CHAR(CODE(MID(A2,3,1))+1)
715名無しさん@そうだ選挙にいこう:2008/06/18(水) 22:33:43
>713

もう少し落ち着いて考えればすぐ出来るんじゃね?
どんな型を想定しているのか知らんので回答は控えるが。
716名無しさん@そうだ選挙にいこう:2008/06/18(水) 22:37:09
>>713
文字数や9Zzをどうするか決めてくれなきゃ
回答はむりぽ。

>>714
いろんな意味でありえな〜いw
717名無しさん@そうだ選挙にいこう:2008/06/18(水) 22:52:38
おいピボット厨!!>>713をピボットテーブルで実現させてくれよwww
なぁwww
718713:2008/06/18(水) 23:21:43
713です。
レスありがとうございます。

>714 に関しては、VBAのコード側で処理しないとだめなので採用できません。
しかし、こういった方法すら知らなかったため、非常に参考になりました。
ありがとうございます。
>715
確かに落ち着くべきでした。
714は気を利かせて、詳しく処理してくれましたが、
>hoge2 の内容を、"cd2"
ではなく、
hoge2 の内容を、"de2"
でした。

716が指摘くださったように、文字数の決定がなければ不可能でしょうか。
文字種類に関しては、
0-9のみのもの、
0-9およびa-zのもの、
アスキーコードの0x30〜0x7Eまでの範囲で自由なものと複数あります。
難易度の高いものは、あきらめて、0-9に制限しようと考えていました。
文字数は可変で、4文字もあれば、64文字もあったり。

ヒントをいただければ、何とか調べたいと思っていました。
文字数可変と、VBAで関数code()の処理結果を得るような処理は、どのような方法が考えられるでしょうか…。
719名無しさん@そうだ選挙にいこう:2008/06/18(水) 23:26:12
>718

文字数は決定して無くても最終文字でいいならRIGHTで切出せる。
変換範囲はCODE化してBIN値として比較すれば出来る。
720名無しさん@そうだ選挙にいこう:2008/06/18(水) 23:34:46
>>718
まず1文字だけ演算する関数を作り、あとは文字数の分だけ繰り返すってのが基本的なやり方。
文字列の長さを調べる関数はLEN()
1文字ずつに分割する関数はMID()
文字コードを調べる関数はASC()
文字コードから文字に変換する関数はCHR()
これらの組み合わせになる。

はっきり言って簡単にやる方法はないから、単純な計算と条件判断を何度も繰り返すような、
作るのがけっこう面倒なプログラムになると思う。

具体的なプログラムは、計算の法則をすべて省略せずに書いてもらわないと無理。
例をいくつか書かれただけじゃわからん。
文字セットとか演算子とかどうなってんの?
721716:2008/06/18(水) 23:35:07
>718

mytext = Right(Range("A1").Value, 1)
If mytext <> "" Then
Range("A2").Value = Chr(Asc(mytext) + 1)
End If

あとは応用してね。
多分、君なら説明はいらんでしょ。
722名無しさん@そうだ選挙にいこう:2008/06/18(水) 23:36:03
パスワードをクラックするプログラムでも作りたいのかな?
723名無しさん@そうだ選挙にいこう:2008/06/18(水) 23:37:52
>718
横レスで質問
桁繰り上がりはありますか?
インクリメントにより、最終文字が 0→1、8→9、では9→?
同様に、a→b、y→z、ではz→?
変更があるのは常に最終文字だけですか?右から2番目の文字は変わりませんか?
繰り上がりがあれば、数字の9999999999+1→10000000000と
いうように1桁ふえることは考えていますか?
724名無しさん@そうだ選挙にいこう:2008/06/18(水) 23:48:24
繰り上がり考えるとn進数の計算する関数作った方が楽そうだよな
ぐぐればサンプルいろいろあるんじゃね?
725713=718:2008/06/18(水) 23:52:27
713=718です。
自分の足りない文章に付き合っていただき感謝します。ありがとうございます。

>720
>はっきり言って簡単にやる方法はないから、単純な計算と条件判断を何度も繰り返すような、
>作るのがけっこう面倒なプログラムになると思う。
ありがとうございます。
自作の関数を作っておいて、いくつかの引数を設定した標準関数で出来ることを知ったときの絶望を味わいたくありませんでした。
教えていただいた関数を使って、自作してみようと思います。(ASC()の情報が非常に助かりました。)

>721
応用させていただきます。

>722
説明難しいのですが、違います。シートの設定値を繰り返し出力するのですが、値を変更しつつ、というもので。

>723
桁上がりあるんです。難しそうであればあきらめるつもりでした。
forでまわして、桁上がりがある場合(9やz)に次の桁を…、めまいがします。

if分を使うと可能なのでしょうが、構造を考えるのが大変です。
9→0
z→aの場合と、z→0且9→aの場合と。

一桁増えた場合は、あふれた部分を削除です。
入力時の桁数を維持します。

とりあえず、手を動かしています。
また、よろしく御願いします。
726723:2008/06/19(木) 00:03:10
まさかとは思うけど、最終文字が数字(0〜9)の場合、9の次は0に戻り、
文字(a〜z)の場合、zの次はaに戻るとか、そういうのではないですよね?

0〜9、a〜zだけで構成されるとして1桁あたり36の場合がある36進法
とみなすと考えるんですよね?

と書いたところでリロードしてみたら両方あり得るの?

繰り上がりはあるけど桁は増やさないということは、
9999999999+1→0000000000 にするという考えですな。

とにかく数字と同じで右端から考えていけばいい。
あと、0〜9、a〜zを要素36個の配列に用意したらなにかうかびませんか?
727名無しさん@そうだ選挙にいこう:2008/06/19(木) 00:28:02
>>725
目安として、処理したい文字列が1万個以上あるなら、
0〜9、0〜z、0x30〜0x7eで、それぞれ別々の関数を書いた方がいい。
すべてに対応できる関数も不可能じゃないけど、おそらく計算速度がかなり遅くなる。
728713=718:2008/06/19(木) 00:41:48
>あと、0〜9、a〜zを要素36個の配列に用意したらなにかうかびませんか?
配列…。???
一桁インクリメント結果のQUOTIOENTで桁上がり、MODで桁の値がわかりそう?
配列に値を入れるのはコードの中になりますか、やはり。
(const はできないようで…。)

>目安として、処理したい文字列が1万個以上あるなら、
一万個越えてます。
関数複数作ります。ご指摘ありがとうございます。

見通し悪いですが、作ってみます。
729名無しさん@そうだ選挙にいこう:2008/06/19(木) 00:52:47
文字を文字のままややこしい繰り返し処理をするんじゃなくて
文字を数値に変換する関数と数値を文字に変換する関数を作ってやればいいだけだよ
730名無しさん@そうだ選挙にいこう:2008/06/19(木) 00:52:50
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 VBA 他のブック 参照 ファイル名

あるフォルダに aa-01-斉藤.xls aa-02-田中.xls … といったように aa-**(連番)-**(名前).xls といったファイルが複数あって
それぞれの「入力用シート」というシートの A2〜A12 に データが入っています。
しかし、A2〜A12にすべてデータが入っているわけではなく、例えば aa-01-斉藤.xlsの A2には「バナナ」A3には「リンゴ」といったデータがありA4〜は空欄
aa-02-田中.xls にはA2には「卵」といったデータがあり A3〜は空欄です。
これらのデータを まとめ.xls といったファイル にまとめる。
例としては まとめ.xlsの 「集計シート」の B1に 「バナナ」 B2に 「リンゴ」 B3に 「卵」 ・・・ のように
それぞれのブックのA2〜A12までの入力されたデータのみを抽出したいのです。
*データは上につめてありますので A2とA4にデータがあってA3が空欄ということは無いです。
*ファイルは50個程度あります。フォルダの移動はいくらでもできます。
*まとめるデータは aa-01 → aa-02 → といったように連番順にまとめたいです。
以上を実現する方法をご教授願います。
731名無しさん@そうだ選挙にいこう:2008/06/19(木) 01:01:12
>>730
ファイルは増えたり減ったりする?
それともデータをまとめたいのは今回の1回限り?
732名無しさん@そうだ選挙にいこう:2008/06/19(木) 01:04:22
>>730
空欄の部分は本当に何も入ってない?
実は見えてないけどスペースが入ってるとかない?
733名無しさん@そうだ選挙にいこう:2008/06/19(木) 01:07:17
>>731
基本的には増やす一方のみです。連番で増やしていきます。あるタイミングで一括に見たいときに まとめ.xlsで確認するような使い方をします。
734730:2008/06/19(木) 01:08:35
>>732
空の状態です。

>>733は自分です。名前を入れ忘れました。
735名無しさん@そうだ選挙にいこう:2008/06/19(木) 01:12:29
>>733
ファイル名の連番は、重複したり飛んだり桁数が変わったりすることはない?
736730:2008/06/19(木) 01:15:41
>>735
重複や飛ぶことはありません。ファイルは100を超えることはまず無いので01〜99といった2桁の連番にしています。
737名無しさん@そうだ選挙にいこう:2008/06/19(木) 01:16:28
>>736
これだけわかれば十分。ちょっと待ってて。
738名無しさん@そうだ選挙にいこう:2008/06/19(木) 01:22:57
そこで啓蒙先生が↓
739729:2008/06/19(木) 01:35:02
>>713
繰り上がりの処理がいまいち不明なんでこれでいいのか自信が無いが、単純に
0123456789abcdefghijklmnopqrstuvwxyz
の36進数と考えた場合はこんな感じでどうぞ(汚いコードでスマソ)

hoge = "abc"
numberset = "0123456789abcdefghijklmnopqrstuvwxyz"

'文字列を数値に変換
n = 0
i = 1
While i <= Len(hoge)
n = n * Len(numberset)
n = n + InStr(numberset, Mid(hoge, i, 1)) - 1
i = i + 1
Wend

'1を足す
n = n + 1

'数値を文字列に変換
hoge = ""
While n > 0
i = n Mod Len(numberset)
hoge = Mid(numberset, i + 1, 1) + hoge
n = (n - i) / Len(numberset)
Wend

MsgBox (hoge)
740名無しさん@そうだ選挙にいこう:2008/06/19(木) 02:03:35
糞ジジ糞ジジ糞ジジ糞ジジ糞ジジ糞ジジ糞ジジ糞ジジ糞ジジ糞ジジ
糞ジジ糞ジジ糞ジジ糞ジジ糞ジジ糞ジジ糞ジジ糞ジジ糞ジジ糞ジジ
死死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
その老いたすがた気持ち悪すぎ
その老いたすがた気持ち悪すぎ
その老いたすがた気持ち悪すぎ
その老いたすがた気持ち悪すぎ
死ぬとき このレスの事思い出してくれよ
741名無しさん@そうだ選挙にいこう:2008/06/19(木) 03:11:45
>>730
遅くなった

Sub データをまとめる()
 Dim DataFolder As String
 Dim FileNameCounter As Integer
 Dim SourceRow As Integer
 Dim DestinationRow As Integer
 Dim FullPath As String
 Dim SourceFileName As String
 Dim Work
 Dim Matome As Workbook

 DataFolder = "c:\excel-data\" '処理したいデータを一ヶ所に集めておく
 If Right(DataFolder, 1) <> "\" Then DataFolder = DataFolder + "\"

'まとめ.xlsを開く。ない場合は作る。
 Work = Dir(DataFolder & "まとめ.xls")
 If Work = "" Then
  Set Matome = Workbooks.Add
  Matome.SaveAs Filename:=DataFolder & "まとめ"
 Else
  Workbooks.Open DataFolder & "まとめ.xls"
 End If

 FileNameCounter = 1
 DestinationRow = 1
742名無しさん@そうだ選挙にいこう:2008/06/19(木) 03:12:08
 Do
  SourceFileName = Dir(DataFolder & "aa-" & Format(FileNameCounter, "00") & "*.xls") 'Excelのファイルを検索
  If SourceFileName = "" Then
   ActiveWorkbook.Close SaveChanges:=True
   Exit Sub
  End If

  FullPath = DataFolder & SourceFileName

'データのコピー
  For i = 2 To 12
   Work = ExecuteExcel4Macro("'" & DataFolder & "[" & SourceFileName & "]入力用シート'!R" & i & "C1")
   If Work = 0 Then Work = ""
   If Work = "" Then Exit For
   Cells(DestinationRow, 1) = Work
   DestinationRow = DestinationRow + 1
  Next i

  FileNameCounter = FileNameCounter + 1
 Loop

End Sub
743名無しさん@そうだ選挙にいこう:2008/06/19(木) 03:14:01
使ってない変数があるけど無視して。単なる消し忘れ。
744名無しさん@そうだ選挙にいこう:2008/06/19(木) 03:33:11
ちょっとロジックに問題あり。
まとめたいデータの中に数値の0があるとうまく動かない。
修正が必要なら言って。
745名無しさん@そうだ選挙にいこう:2008/06/19(木) 04:21:15
病気のやつがいるな
可哀想に
746名無しさん@そうだ選挙にいこう:2008/06/19(木) 05:18:36
>>717
こういうの逆効果じゃね。
ピボ厨の口癖を思い出してみなよ。
>>713ができることで何の意味がある?
「ピボットじゃゲーム作れないだろ」じゃピボ厨批判にならないんだよ残念ながら。
747名無しさん@そうだ選挙にいこう:2008/06/19(木) 07:22:07
批判というよりネタなんだからスルー
748名無しさん@そうだ選挙にいこう:2008/06/19(木) 09:47:00
>>741-742

ひどいな・・・
VBA覚えたてってかw
749名無しさん@そうだ選挙にいこう:2008/06/19(木) 10:31:26
また・・・か
750名無しさん@そうだ選挙にいこう:2008/06/19(木) 10:48:25
覚えたてで何か作ってみたくて仕方ないんだね。
それでも結果がちゃんと出てればいいんだけど、バグが多いな…
要求された仕様も満たしてない。
俺なら普通にファイルを開いてコピペでデータを写すかな。
Ctrl+↓でデータの切れ目まで飛べばインデックスもループも不要だし1ファイル1回の処理で済む。

それより根本的なところでまた啓蒙君が嫌みを言いそうな仕事をExcelでやってるな。
751名無しさん@そうだ選挙にいこう:2008/06/19(木) 12:31:36
啓蒙って剃毛に似てるよね
752名無しさん@そうだ選挙にいこう:2008/06/19(木) 12:40:54
ゲーセンの店長です。
みなさんに教えていただいてソルバーがなんとか使えるようになりました。
考え方の基本がわかりましたので、今後は自分でいろいろ工夫してみます。
ご協力いただきありがとうございました。
753名無しさん@そうだ選挙にいこう:2008/06/19(木) 12:46:02
こんどは…か
754名無しさん@そうだ選挙にいこう:2008/06/19(木) 13:50:59
なんか眠くて仕事する気になれないんで作ってみた

Sub aaaa()
  ChDir "C:\excel-data"  'データフォルダ指定
  
  Workbooks.Open "まとめ.xls" 'まとめ先準備
  Sheets("集計シート").Select
  Range("B1").Select

  N = Dir("aa-*.xls")   'ファイルを順に
  While N <> ""
    Workbooks.Open N   '開いて
    Range("A2").Select
    Range(Selection, Selection.End(xlDown)).Copy 'コピ
    ActiveWorkbook.Close
 
    ActiveSheet.Paste  'ペ
    Selection.End(xlDown).Select
    ActiveCell.Offset(1, 0).Select
 
    N = Dir()      '次
  Wend
  ActiveWorkbook.Save
  ActiveWorkbook.Close 'まとめ保存閉じ
End Sub
755名無しさん@そうだ選挙にいこう:2008/06/19(木) 13:58:05
何度も走らせて遊んでたらまとめがおかしくなることに気付いた

  Workbooks.Open "まとめ.xls" 'まとめ先準備
  Sheets("集計シート").Select
  Range("B:B").Clear     '←これ追加
  Range("B1").Select

まあ、ほかにもツッコミどころ満載だとは思うが、あとは好きに直してくれ
756名無しさん@そうだ選挙にいこう:2008/06/19(木) 14:00:54
>>752
がんがれ
757名無しさん@そうだ選挙にいこう:2008/06/19(木) 14:51:01
csvに吐き出す際、行末ではなく行頭に出力する方法はないのでしょうか?
もしくは、csvを検索する際、行末から読ませる方法はないでしょうか。

日毎に吐き出されるログをマクロに検索させるのですが、一万年二千年後には
一年で1レコードしか作成されなくても一万二千行を検索する必要があるので
年月に比例して処理が遅くなると思うのです。

行頭に新しいログが吐き出される形式、またはログの下から検索する形式
ならば、一億と二千年たっても見つかるまでの検索速度が同じになるのでは
と思ったのですがどうでしょうか。
758名無しさん@そうだ選挙にいこう:2008/06/19(木) 14:53:13
>>757
ディスプレイを上下逆さまに置く。
759757:2008/06/19(木) 14:56:35
八千年すぎた頃から「毎回降順にソートさせたらどうか」
とも思ったのですが、たった一行を先頭に持ってくるために
冗長すぎますよね?
760名無しさん@そうだ選挙にいこう:2008/06/19(木) 14:58:10
>>759
ぶっちゃけ、8000年後のPCの性能なら8000行くらい余裕。
なので何も考えなくてよし。
761名無しさん@そうだ選挙にいこう:2008/06/19(木) 15:21:05
ところで啓蒙君って何人いるんだ?
俺はドキュソ関数厨のみ叩いてるが。
762757:2008/06/19(木) 15:29:39
ふざけないでください。一億とかそういうのは比喩であり
私が言っているのは追記方式では最新のデータを探す際に
月日に比例して無駄な処理時間が長くなってしまう、
ということなんです。これを改善する方法が見つかれば
僕の地獄に音楽は絶えない。
763名無しさん@そうだ選挙にいこう:2008/06/19(木) 15:36:02
つFileLen
764757:2008/06/19(木) 15:52:09
ファイルサイズを知ってどうしろと!?生き恥を晒せと!?
765名無しさん@そうだ選挙にいこう:2008/06/19(木) 16:07:24
RDBを使えと
766名無しさん@そうだ選挙にいこう:2008/06/19(木) 16:23:07
そんな嫌ならファイル分けて、百科事典みたいにあーさ行はAファイル、さーは行はBファイル、
まーわ、アルファベットはCファイル・・みたいに
入力にかかる時間は増大するけど><
767757:2008/06/19(木) 16:35:14
>>765
確かに数万レコードいくなら素直にRDBでしょうけどね。

>>766
そういうやり方は好きじゃないんです。
池沼っぽく言うと好きくないんです。

でもコーディングの手間はかかるものの、
ファイルを分ける事でユーザーサイドの
入力に何ら支障はないのではないですかね?
768名無しさん@そうだ選挙にいこう:2008/06/19(木) 16:36:26
>757,762
最新のデータを検索したいのであれば、検索に必要なログだけのファイルと
検索対象でない過去ログにわければよろしい。
処理時間云々言うならばエクセルでなくC言語あたりで専用アプリを作るだけの話。
ログ処理だけならperlでも快速ですよ。
769名無しさん@そうだ選挙にいこう:2008/06/19(木) 16:56:33
テキストファイルなら、普通にランダムアクセスすればいいんじゃね?
open、seekあたりをヘルプで調べればサンプルそのまんまあるんじゃないかいな
770名無しさん@そうだ選挙にいこう:2008/06/19(木) 17:04:26
基本的な質問かもしれないけど、折れ線グラフで2つの系列(線)が
交差するところだけをマーカーで表示するってのは可能?
771名無しさん@そうだ選挙にいこう:2008/06/19(木) 17:36:54
エクセル2003でVBAの質問です
D1〜AH1に1と入力し、その入力した列を塗りつぶすマクロを作ろうと思っています
for~nextで回すつもりですが、どのように記述すればよろしいでしょうか?

また、R1C1形式で行全体、列全体を表すにはどのように記述すればよろしいでしょうか?
772名無しさん@そうだ選挙にいこう:2008/06/19(木) 17:43:29
自己解決しました
ループ変数をoffsetと組み合わせればできました
773名無しさん@そうだ選挙にいこう:2008/06/19(木) 18:11:48
何枚かに渡って表の項目を印刷するにはどうしたらいいのですか?違うとこで回答もらえませんでした。すみませんが、おわかりになる方いらしたら教えて下さい。
774730:2008/06/19(木) 18:23:34
>>741-742
ありがとうございます。サンプルを試して、動作・理解できたので、実際のファイル向けにアレンジして仕様通り動作しました。
>>754さんのも後学のために試してみます。
ちなみに実際のファイルは、ソースファイルからいろんなデータを拾ってきます。ファイル操作の部分がまったくの素人なので参考になりました。
775名無しさん@そうだ選挙にいこう:2008/06/19(木) 18:36:56
>>757
まずはパソコンのファイルシステムについて勉強してこい。
先頭に不定長のデータを追加する方法はない。無理にやろうとすると、
巨大なログの末尾まで検索するより効率が悪くなる。

とりあえず先頭から見ていくんじゃなくてファイルサイズの半分までシーク、
改行を探して1行だけ読み込み、目的の日時より前か後か判断して次は1/4シーク、
みたいな処理を再帰で書けば、どんなにファイルが巨大でも、
それほど処理時間は変わらなくなる。

あと、アクエリオンネタはほどほどにな。ふざけてるのかと思われて
まともな回答がもらえないぞ。
776名無しさん@そうだ選挙にいこう:2008/06/19(木) 19:15:18
>773

印刷タイトルのことか?

ファイル→ページ設定→シート→印刷タイトル
777名無しさん@そうだ選挙にいこう:2008/06/19(木) 19:25:33
>>773
めんどくさがらずにもっと具体例をかけば?語彙がなさ杉。。。
あいまいすぎる質問だから答えがもらえないのでは?
778名無しさん@そうだ選挙にいこう:2008/06/19(木) 19:28:32
>>773
ウィンドウ枠の固定のことだろう
779名無しさん@そうだ選挙にいこう:2008/06/19(木) 19:30:59
便乗で申し訳ないが
>>771R1C1形式で行全体、列全体を表すにはどのように記述すればよろしいでしょうか?
誰か教えてくれないか?探してみたけど出てこない
780757:2008/06/19(木) 19:34:29
>>775
閣下・・・心洗われました・・・ 死すまでお側を離れません


待ちに待った回答がきたのだ!
多くの試行錯誤の時間が無駄でなかった事の証のために!
再びの理想のコーディングをする為に、俺は屑成就の為に、
Excelスレよ!私は帰ってきた!!
781名無しさん@そうだ選挙にいこう:2008/06/19(木) 19:51:26
スレチだったら申し訳ないんだけど、
WEEKDAY関数のヘルプの例で誤表記があるのは既出?
(ちなみにEXCEL2003)
782名無しさん@そうだ選挙にいこう:2008/06/19(木) 19:57:05
>>761
使っている手法は何でもいいんだけど、関数厨やVBA厨は考えの浅いやつが多い。
在庫管理しかり。
シフト作成しかり。
部品管理も。
どの問題でもまともな回答を示せなかった。
783名無しさん@そうだ選挙にいこう:2008/06/19(木) 20:00:22
>>781
誤記はあちこちにある。気にスンナ
気になったらMSDNのサイトで最新の情報を見るといい。
784名無しさん@そうだ選挙にいこう:2008/06/19(木) 20:07:40
>>779
書かなければ全体になる。
例えばRを指定せずに「C1」とだけ書くと、1列目全体という意味になる。
逆にCを指定せずに「R1」と書いた場合は1行目全体になる。
785名無しさん@そうだ選挙にいこう:2008/06/19(木) 20:16:07
>>784
おお、ありがとう
A1形式と一緒なのね〜
786名無しさん@そうだ選挙にいこう:2008/06/19(木) 20:22:11
>>730
なんか残業が終わらないんで気になってた部分をちょこっとだけ修正。
使い方としては、元データと同じフォルダに「まとめ.xls」をあらかじめ作っておくこと。
「集計シート」も作っておくこと。
データフォルダの部分は自分の環境に合わせて書き換えること。フルパスで書くこと。
あとはこのマクロを実行するだけ。

Sub aaaa()
  ChDir "C:\excel-data"  'データフォルダ指定 ←ここを書き換える
  
  Workbooks.Open "まとめ.xls" 'まとめ先準備
  Sheets("集計シート").Select
  Range("B:B").Clear
  Range("B1").Select

  N = Dir("aa-*.xls")   'ファイルを順に
  While N <> ""
    Workbooks.Open N   '開いて
    Sheets("入力用シート").Select
    Range("A2").Select
    Range(Selection, Selection.End(xlDown)).Copy 'コピ
    ActiveWorkbook.Close

    ActiveSheet.Paste  'ペ
    Selection.End(xlDown).Select
    ActiveCell.Offset(1, 0).Select

    N = Dir()      '次
  Wend
  ActiveWorkbook.Save   'まとめ保存閉じ
  ActiveWorkbook.Close
End Sub
787名無しさん@そうだ選挙にいこう:2008/06/19(木) 20:30:10
この「最終行の次」って部分、もうちょっと簡単に書けんもんかな。
2回Selectするのがなんか無駄っぽい。

    Selection.End(xlDown).Select
    ActiveCell.Offset(1, 0).Select
788名無しさん@そうだ選挙にいこう:2008/06/19(木) 20:34:00
    Selection.End(xlDown).Offset(1, 0).Select
789名無しさん@そうだ選挙にいこう:2008/06/19(木) 20:35:00
>>778
そうです。
全然項目が印字されません。
790名無しさん@そうだ選挙にいこう:2008/06/19(木) 20:47:45
>>789
ちゃんと読め。>>776に答えが出ている。
791556:2008/06/19(木) 20:48:50
質問ではないのですが、>>556の報告です。
まず>>573を参考に、自分でも色々とピボットの勉強してみました。
一つのデータを様々な角度から集計できるという点で便利な機能だなとは思ったのですが、
自分のやりたかったのは
   1年1組、1年2組、・・・、野球部、サッカー部、・・・
のようにそれぞれ別のシートに抽出するという事だったので、1つのシートにずらっと表示されてしまうピボットではどうもうまくいかないようです。

結局、>>598のようなアドバイスもあったので関数を使った方法でやってみる事にしました。
相談に乗って下さった皆様、有難う御座いました。
792名無しさん@そうだ選挙にいこう:2008/06/19(木) 20:48:56
>>788
エラー
793名無しさん@そうだ選挙にいこう:2008/06/19(木) 20:52:31
>>791
集計結果のセルをダブルクリックしてみたのか?
794556:2008/06/19(木) 20:57:23
>>793
すみません。意味がよく分からないのですが・・・?
795名無しさん@そうだ選挙にいこう:2008/06/19(木) 20:59:12
>>791
ばかだな 元データはひとつでもピボットテーブルを複数つくればいいじゃん
796名無しさん@そうだ選挙にいこう:2008/06/19(木) 21:01:57
>>794
ピボットテーブルで作った集計表の値を何でもいいから選んでダブルクリックしてみろ。
797名無しさん@そうだ選挙にいこう:2008/06/19(木) 21:03:57
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 Excel 含む if ...

質問させてください。
あるセルの内容が、隣のセルに含まれているかを確認したいです。

セルA1に"abcde"
セルB1に"z1.abcde"
このとき、セルC1に計算式
=IF(A1 = MID(B1,4,LEN(A1)),"OK","NG")
を入れると、OKが戻ります。

こういった形で、MID(-,4-)
のような式ではなく、『含まれているか・いないか』を確認したいのですが、
可能でしょうか?
方法を教えてください。
798名無しさん@そうだ選挙にいこう:2008/06/19(木) 21:06:33
>797

つfind
799名無しさん@そうだ選挙にいこう:2008/06/19(木) 21:06:44
find、search関数
800名無しさん@そうだ選挙にいこう:2008/06/19(木) 21:10:16
=IF(A1=SUBSTITUTE(A1,B1,""),"NG","OK")
801名無しさん@そうだ選挙にいこう:2008/06/19(木) 21:45:05
VBA教えてください。
Sub puroshija()
  Dim a As String
  a = "hoge"
  For i = 1 To 4
    MsgBox a & i
  Next i
End Sub
以上のコードを実行すると、メッセージボックスが出て、OKを押すまで処理が停止します。
これを、
OKを押さずにどんどん進めることは出来ないでしょうか?
802名無しさん@そうだ選挙にいこう:2008/06/19(木) 21:51:02
MsgBoxの行を、消すかコメントアウトすればいい
803名無しさん@そうだ選挙にいこう:2008/06/19(木) 21:57:27
>>801
VBAではMsgBoxのところで必ずボタンをクリックするまで止まることになっている。
止めたくない場合は別の所にメッセージを出すしかない。
ワークシートとかフォームとかイミディエイトウィンドウとか。
804556:2008/06/19(木) 22:00:18
>>795
なるほど、試してみましたが、そういう事も出来るんですね。
元の表1つにつきピボットテーブル1つと先入観を持っていました。
ただ、この場合それぞれのピボットテーブルで更新処理を行う必要がありますよね?
だとするとうちの職場だとやっぱり難しいんです。

>>796
やっと意味が分かりました。新しくシートが作られてそこに抽出されるんですね。
これは便利!でもこれ、データが更新された場合はどうするんですか?
ピボットテーブルと違って更新するボタンが見当たらないんですが・・・
805名無しさん@そうだ選挙にいこう:2008/06/19(木) 22:06:45
>>801
プログラムの勉強してて途中経過を確認したいならイミディエイトウィンドウ使え
806名無しさん@そうだ選挙にいこう:2008/06/19(木) 22:08:15
>>804
ほんとに試した? 元データが同じならピボットをひとつ更新すると他のピボットも自動的に更新される
807名無しさん@そうだ選挙にいこう:2008/06/19(木) 22:17:01
Excelとは関係ないのかもしれないんですけど、サーバの共有フォルダに置いたファイルを
読み取り専用にして、マクロで読み書きするときだけ

 読み取り属性解除→読み込み→読み取り属性設定→読み取り属性解除→書き込み→読み取り・・・

って処理を入れたら読み書きできるのに、読み取り属性が設定されないんですよ。

おかしいなぁと思って手動でファイルを読み取り専用にしたけどならなかったのですわ。
これってサーバの設定なんですかね?読み取り専用にできるのは知ってたけど
読み取り専用属性を付加できないような設定もあるんですかね?もしあった場合
マクロで無理矢理付与はできないんでしょうか。(Attributesじゃ無理でした)
808名無しさん@そうだ選挙にいこう:2008/06/19(木) 22:28:47
776 777 778さん色々ありがとう!
809名無しさん@そうだ選挙にいこう:2008/06/19(木) 22:29:19
>>804
考え方を変えてみたら?
こんなに簡単に抽出できるんだったら、元データと抽出シートが連動している必要性は低い。
抽出結果が必要になったらダブルクリック一発で作成。
不要になったらシートを削除。
810名無しさん@そうだ選挙にいこう:2008/06/19(木) 22:52:41
unix系のシェルコマンドのuniqのようなことを行いたいのですが、
どうすればよいでしょうか。
aaa
aaa
bbb
bbb
bbb
ccc
ddd
ddd
から、
aaa
bbb
ccc
ddd
を得たいのですが。
811名無しさん@そうだ選挙にいこう:2008/06/19(木) 23:02:31
オートフィルタ→フィルタオプション
で重複データを除くとか
コピーして別の場所に貼り付ければ非表示のデータを消すことも出来る
812801:2008/06/19(木) 23:02:41
>803
ありがとうございます。
msgboxでは出来ませんか。
フォームは使ったことないので、勉強が必要です。
Webの資料を参考にトライします。
813810:2008/06/19(木) 23:08:06
>811
>オートフィルタ→フィルタオプション
この機能初めて知りました。
ありがとうございます!

ところで、オートフィルタに関連して訊ねたいのですが、
ショートカットひとつで、オートフィルタの絞込みを解除する方法はないでしょうか。
フィルタをいちいち解除するのが非常に大変です。(自分はフィルタリングに気付かないことも多いです。)
814名無しさん@そうだ選挙にいこう:2008/06/19(木) 23:14:16
Sub MACRO()
AutoFilterMode = False
End Sub

1.↑これをVBエディタ(Alt+F11)に貼り付ける。
2.ツール→マクロ→マクロ→オプション で、このマクロにショートカットキーを設定する
815797:2008/06/19(木) 23:15:41
797です。
レスありがとうございます。
=IF((FIND(A1,B1)>0),"ok","")
という式を考えてみたのですが、検索結果が対象なしの場合、
#value!となってしまいます。これを回避するにはどうすればよいのでしょうか。

>800
???
816名無しさん@そうだ選挙にいこう:2008/06/19(木) 23:16:12
>>813
一発で解除するには自分でマクロ登録が必要。
Excel2003以前ならAltを押したまま、順にD、F、Fと押せば
フィルタの有無を比較的簡単に切り替えられる。
817名無しさん@そうだ選挙にいこう:2008/06/19(木) 23:19:01
>>815
FINDは文字列が含まれてなかったときは0じゃなくてエラーになるから、
0より大きい、ではなく結果がエラーかどうか判定しなくちゃいけない。
エラーかどうかを調べるにはISERROR関数を使う。

=IF(ISERROR(FIND(A1,B1)),"ok","")
818名無しさん@そうだ選挙にいこう:2008/06/19(木) 23:20:12
逆だった

=IF(ISERROR(FIND(A1,B1)),"","ok")
819556:2008/06/19(木) 23:33:26
>>806
ピボットを作る時に「同じ元のデータから〜」に「はい」と答えたら同時に更新されるようになりました。
ただやっぱりピボットは色々と仕組みが難しいですね・・・
表の書式や表示項目も思い通りにはならないようですし。

>>809
1年1組,1年2組,・・・のようにシートを作らないって事ですか。
そうすると元データを更新したら
  ピボットテーブルを更新→ダブルクリックして抽出シートを作る→閲覧や印刷→抽出シートを削除
という手順になると思うのですが、少々面倒ではありませんか?
数式でやれば目的のシートをいきなり閲覧、印刷すればいいだけなんですが、
そこまでしてピボットテーブルがいいという理由がよく分かりません・・・

複雑な分析や集計を行うならピボット便利なんでしょうけど、今回のような単純な事であまり難しい事をやると
私が異動になった時に残された人に迷惑かけてしまいそうなんで、
ピボットについて色々教えて下さった方には申し訳ないんですが、やはり関数を使ったやり方でいこうと思います。
820名無しさん@そうだ選挙にいこう:2008/06/19(木) 23:41:13
ピボ厨にからまれて質問者困ってるなw
821797:2008/06/19(木) 23:48:21
>817=818
!!ありがとうございます!
822名無しさん@そうだ選挙にいこう:2008/06/19(木) 23:57:11
クラス別に印刷するだけならオートフィルタで無問題。
元のシート一つでよい。
でも素人は関数使うほかないのかもね。
823名無しさん@そうだ選挙にいこう:2008/06/20(金) 00:03:30
ピボット使って>>809みたいなしち面倒くさい事やるならオートフィルタの方が100万倍ましだな。
ピボ厨は目的と手段を完全に混同してる。
824名無しさん@そうだ選挙にいこう:2008/06/20(金) 00:12:55
       ____
     /      \
   /         \
  /   (●) (●)  \  
  |   (トェェェェェェェェイ)   | 
  \  \ェェェェェ/   /
825名無しさん@そうだ選挙にいこう:2008/06/20(金) 00:58:29
Y軸にまとめて3つのデータをのせるやり方がわかりません
826名無しさん@そうだ選挙にいこう:2008/06/20(金) 05:51:49
>>813
”すべて表示”コマンドメニューを
ツールバーに登録しなはれ。
ワンクリックで、絞り込み解除。
827名無しさん@そうだ選挙にいこう:2008/06/20(金) 06:43:23
>>823
>>809だが、個人的にはなんでこいつオートフィルタでやらねえの?と思ってる。
流れで抽出シートのことをくどくど説明してしまった。
828名無しさん@そうだ選挙にいこう:2008/06/20(金) 06:48:17
>>819
何が単純か複雑かは人によって感性が違うかもしれないけど、
私は君のやってることのほうが複雑だと思うよ。
クラブやクラスの数が変更された時にシートをメンテしたくない。
829名無しさん@そうだ選挙にいこう:2008/06/20(金) 07:32:20
>>828
それが手続き指向の限界だよね。
変化に弱い。
830名無しさん@そうだ選挙にいこう:2008/06/20(金) 07:40:40
メンテしたくないからといって関数で抽出去るやつはカス
シートタブをクリックしてシートごとに印刷するのも、オートフィルタのドロップダウンリストをクリックして印刷するのも手間はほとんど同じ
831名無しさん@そうだ選挙にいこう:2008/06/20(金) 07:46:07
vbaで正規化をしてしまえばこんなこともおこらないのに
832名無しさん@そうだ選挙にいこう:2008/06/20(金) 07:53:33
結局VBAなんだよな。

>>823
>>ピボ厨は目的と手段を完全に混同してる。

激同
833名無しさん@そうだ選挙にいこう:2008/06/20(金) 07:59:17
生徒名簿っていわれても何から何を作成したいのか具体的には何もわからん

こんなのからこんなのつくりたいんですけどーってサンプルを示してもらえれば
どの方法が適切なのかわかりやすいのに
834名無しさん@そうだ選挙にいこう:2008/06/20(金) 11:11:59
生徒名簿なんてVBAもピボットも使わないんじゃねーの??
そこにテストの点数などを打ち込んでいくとなったら話は別だけど
835名無しさん@そうだ選挙にいこう:2008/06/20(金) 11:22:12
んだ。
単に分類や抽出するだけならオートフィルタか関数で十分。

今まで見た感じ必要なのは、クラス別に抽出して1クラス1ページで全クラスの名簿を印刷したいとかそんなん。
これはVBAの仕事だ。
836名無しさん@そうだ選挙にいこう:2008/06/20(金) 11:58:11
ピボット厨は今回は素直に諦めた方がいいと思うんだが・・
837名無しさん@そうだ選挙にいこう:2008/06/20(金) 12:22:02
ピボットで抽出シート作るの俺はすきだけどな。
便利だもん。
838名無しさん@そうだ選挙にいこう:2008/06/20(金) 12:59:33
>>835
さりげなく電波とばんすんじゃねーよ。
839名無しさん@そうだ選挙にいこう:2008/06/20(金) 13:22:45
どうでもいいけどこのスレ、オートフィルタ嫌いだよね
840名無しさん@そうだ選挙にいこう:2008/06/20(金) 15:32:23
オートフィルタは少し扱いにくい
少し上でも出ていたが、コピーすると非表示列が消滅、切り取ると非表示列ごと移動や、
それに非表示状態の場所にコピーしてくると真ん中が消えたりするし
ただ正規化されたテーブルからあるものだけ取り出して印刷→解除、って程度なら使える
841名無しさん@そうだ選挙にいこう:2008/06/20(金) 16:04:20
関数やVBAならユーザーは特別な知識を必要としないが
ピボットやオートフィルタ、だと多少なりともユーザー側に知識(簡単な事なんだけどねえ)が必要だから職場のレベルによっては難しいんだろうな。
842名無しさん@そうだ選挙にいこう:2008/06/20(金) 16:27:01
相談所で感想文を発表されてもねぇ〜
843名無しさん@そうだ選挙にいこう:2008/06/20(金) 16:28:18
ピボットからシート抽出って俺も今まで知らなかった。便利な事が出来るもんだね。
でもこれって抽出したシートの書式(列幅とか罫線とか文字の大きさとか)はあらかじめ設定出来ないの?
お仕着せの書式にされるとなると使える場面は限られてくるなあ。

結果を見栄えよく印刷したいとなると>>819
>  ピボットテーブルを更新→ダブルクリックして抽出シートを作る→閲覧や印刷→抽出シートを削除
にさらにひと手間加わるわけだから。
844名無しさん@そうだ選挙にいこう:2008/06/20(金) 16:33:34
できないぜ
ひと手間かけてくれ
845名無しさん@そうだ選挙にいこう:2008/06/20(金) 19:31:35
>>840
>ただ正規化されたテーブルからあるものだけ取り出して印刷→解除、って程度なら使える
それで十分じゃないか。
846名無しさん@そうだ選挙にいこう:2008/06/20(金) 19:37:05
>>840
オートフィルタからコピペしてから印刷するんじゃなくて、オートフィルターがかかっているところを印刷するんだよ。
847名無しさん@そうだ選挙にいこう:2008/06/20(金) 19:42:04
上は>>840自身が最後に書いてたか。
848名無しさん@そうだ選挙にいこう:2008/06/20(金) 19:52:32
【1 OSの種類         .】 Windows98SE
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】  エクセル "" ・・要は検索できませんでした
=""
と入力されるセルを含む計算をすると、エラー値が返って来てしまいます。
0文字の文字列と認識されてしまっていると思うのです
全く何も入力していない状態なら0になるのですが・・
これをエラーにしない方法は無いものでしょうか?

元のワークシートは2シート構成で、シート1で計算後
数字が0を越える場合は数値を表示、0又はマイナスの場合は""というようにifで分岐させています
そしてその合計欄に合計を表示できると思っていたのですが・・
VBAで結果が""のセルを消す(delete)のは出来れば最後の手段にしたいと思っています。
よろしくお願いします
849名無しさん@そうだ選挙にいこう:2008/06/20(金) 19:53:35
>>843
そんな時のためのVBAだよ
850名無しさん@そうだ選挙にいこう:2008/06/20(金) 19:56:59
>>848
ならないんだが
A1に=""とA2に=sum(a1)
851名無しさん@そうだ選挙にいこう:2008/06/20(金) 20:02:57
>>850
なんと!そんな簡単なことがorz
A1=""、A2に=A1+1など四則演算入れてもどうにもならないので途方にくれていました
(元のデータは3行おきの変則データなので気づきませんでした)
これが仕事が捗りそうです。ありがとうございました
852名無しさん@そうだ選挙にいこう:2008/06/20(金) 20:49:14
sumと+の内部処理は結構別物なのか
そういう微妙な違いが書いてるサイトとか、ある?
853名無しさん@そうだ選挙にいこう:2008/06/20(金) 20:59:06
ここにある
854名無しさん@そうだ選挙にいこう:2008/06/20(金) 21:06:10
>>空白セル、論理値、文字列、エラー値は無視されます。詳細は、3 番目の使用例を参照してください。

おまえら ヘルプ嫁
855名無しさん@そうだ選挙にいこう:2008/06/20(金) 21:38:17
>>853-854
お前らありがとうございます
しかしnullデータと=""の違いがわかんねぇ
=""が0文字の文字列なら未入力セルもそうなるんじゃないのか?
856名無しさん@そうだ選挙にいこう:2008/06/20(金) 21:57:08
未入力ということは文字列でも数字でもないということだよ
857名無しさん@そうだ選挙にいこう:2008/06/20(金) 22:25:06
nullデータ・・nullデータ
""・・0文字の文字列
そんなに難しいか?
858851:2008/06/20(金) 23:21:07
すいません・・848の続きです
3行に1行足したいのですが、その間に=""というデータが合って、これが四則演算では無理
→SUMを使えば解決、となったのですが、sumだと文字数制限に引っかかってしまいました。
(多い時は200個ぐらいになりますがエクセルとノートパッドを使って強引に式を作り上げてしまいました)、

そこでSUMPRODUCT関数を使おうと思い以下の式を作りました
=SUMPRODUCT((MOD(ROW(A1:A9),3)=0)*(A1:A9))
ですが、範囲内に=""が入ってるとまたVALUEエラーになります。

3行ごとというのを捨て、
=SUMPRODUCT((A1:A9<>"")*(A1:A9))

=SUMPRODUCT((A1:A9<>"""")*(A1:A9))
と、色々作ってみましたが、やはりエラーが出てしまいます・・
どのようにすれば=""が入った範囲内で3行おきの合計が出せるのでしょうか?

VBAに頼りたいのですが、表自体非常に変則的で、挿入や削除、セルの結合が頻繁にされるので、
できるだけ避けたいのです
1から作るのも出来ない状態です(作りたいのは山々なんですが)
何かいい方法はありますでしょうか
859名無しさん@そうだ選挙にいこう:2008/06/20(金) 23:31:10
作業列をつくって3行おきに1をいれる
1のある行を集計するSUMIFをつくればよし
860名無しさん@そうだ選挙にいこう:2008/06/20(金) 23:34:23
>>859
わっwwww簡単に出来たwwwありがとう神様wwwwww
861名無しさん@そうだ選挙にいこう:2008/06/20(金) 23:39:45
>858
848には、
数字が0を越える場合は数値を表示、0又はマイナスの場合は""というようにifで分岐
と書いていますね。0かマイナスの場合は 0 とすることはできないんですか?
計算対象範囲なのに値を文字列にするというのが腑に落ちません。0をセルに表示させたく
なければ条件付書式の利用もできますよ。
862名無しさん@そうだ選挙にいこう:2008/06/20(金) 23:42:13
書式のユーザー定義でも0を非表示に出来る
863名無しさん@そうだ選挙にいこう:2008/06/20(金) 23:55:29
>>858
本当はVBAを使いたいのだが、シートが変則的だからできないだって?
ウソばっかり。
864名無しさん@そうだ選挙にいこう:2008/06/21(土) 00:04:14
シートが複雑でVBAは使えません。
抽出したいのでピボットは使えません。

こんなやつが多いなあ。
わかりませんと書けばかわいいんだがな。
865名無しさん@そうだ選挙にいこう:2008/06/21(土) 00:05:56
数字が0の時だけ非表示にするユーザー定義書式

G/標準;G/標準;""

あとは、IFで条件に合わない物を""じゃなくて0にするようにすれば、
見えなくなるだけで実際には数値としての0が入っているので、いろいろな式でエラーが出なくなる。
866名無しさん@そうだ選挙にいこう:2008/06/21(土) 00:06:43
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 少々
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 エクセル カレンダー 祝日 リスト 平日 

A列に A1 5月1日 A2 5月2日 A3 5月7日 〜  7月31日
といったように 土日祝日を抜いた 週日 のリストが7月の終わりまであります。サンプルとして2008年の5月から7月のデータを具体例とします。

B1に 5 (5月を意味します) C1に 1 D1に 2       週の初め(C列)と終わり(D列)
                   C2に 7 D2に 8
                       ・・・
B6に 6              C6に 2 D6に 6
                       ・・・
                   C10に 30 D10は空
B11に 7             C11に 1  D11に4
                       ・・・
                   C14に 22 D14に 25 (月曜日が休日の場合は火曜がC列)
                   C15に28 D15に31

このような作業をしたいのです。よろしくお願いします。
867名無しさん@そうだ選挙にいこう:2008/06/21(土) 00:06:56
>>861
出来ないんです・・
それは日ごとの成績で、その日に成績があれば別の場所でcount関数で1と出力されるのです
そしてその合計が別の表に飛んだり、半月分まとめられたりしてるので気軽に触れないんです
最悪な表だと言う事はわかってるんです。その制約の中で何とかできないかもがいてるんです
>>863
いや、本当
そもそも三行一組って時点で大概ですが、結合されてたり、その表の中に文字で注釈が書かれてあったり、
必ず詰めて入力するわけではなく、ある場所は3行一組分空けて入力する、等・・
使う人が見やすくなるためだけの制約があるんです
これでも信じてもらえないでしょうか。アップロードするわけには行かないのがとても残念です
868867:2008/06/21(土) 00:08:02
すいません
その日に成績があれば→その日に0であれ数字が入ってしまうと
でした。
869名無しさん@そうだ選挙にいこう:2008/06/21(土) 00:18:25
【1 OSの種類         .】 Windows vista
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 エクセル office2003 軸 そろえる

EXCELで作成した3つのグラフを縦に3つ並べ、プロットエリアの輪郭を
そろえたいのですが、手動で少しずつ調整するのはとても面倒で
ほかに良い方法はないでしょうか??
質問が意味不明かもしれませんが
よろしくお願いします。 
870名無しさん@そうだ選挙にいこう:2008/06/21(土) 00:21:17
「シート1」というシートに30個の楕円のオートシェイプがあって、
Selection.ShapeRange.Line.Visible = msoTrue
Selection.ShapeRange.Line.Visible = msoFalse
というマクロで表示・非表示を切り替えてます。

<実現したいこと>
あるタイミングで表示されている楕円の数を数える →A1に表示されている楕円の数を記入
ということがしたいのです。 

ちなみに エクセルでは 楕円 1 〜 楕円 30 という名前 VBAで操作する時は Oval 1 〜 Oval 30 という名前になっています。
871名無しさん@そうだ選挙にいこう:2008/06/21(土) 00:22:52
>>867
>それは日ごとの成績で、その日に成績があれば別の場所でcount関数で1と出力されるのです
""でなく0を入れておいて、COUNTIFを使って数えればいいんじゃないかな
  =COUNTIF(A1:Z1,">0")
872名無しさん@そうだ選挙にいこう:2008/06/21(土) 00:36:13
>>866
D2は9じゃない?
使えるのはnetworkdays関数、にMAXかMINか、weekdayか書式設定のaaa、かなぁ・・
カレンダーみたいなものを作って祭日・土日はifで空白、後はMAXとMINで拾うのが早そう
眠いから明日覚えてたら作ってみる
ttp://excel.onushi.com/function/networkdays.htm
873866:2008/06/21(土) 00:43:30
>>872
そのとおりですD2 は9です。
カレンダーの案を参考に自分でも考えてみます。
874名無しさん@そうだ選挙にいこう:2008/06/21(土) 01:11:37
夜分にすいません。
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 エクセル 関数 挿入 VBA

現在、Aセルに数値データを入力し(行数はデータ内容により日々変化します。)、Bセルに対応する関数(VLOOKUP)をあらかじめいれて、対応するデータが入るようにしているんですが
これを VBAを使用して、Aセルにデータが入っていればその横のBセルにvlook関数を挿入するという事をしたいのですが具体的なコードを教えていただけると助かります。
よろしくお願いします。

※VBA初心者ですがテンプレに従って可にしております。VBA自体の記載方法は理解できてますので申し訳ないですがよろしくお願いいたします。
875名無しさん@そうだ選挙にいこう:2008/06/21(土) 01:18:10
>>874
Aセルって具体的には?
範囲とかない? A1からA10までとか?
876名無しさん@そうだ選挙にいこう:2008/06/21(土) 01:18:37
>>866
1つだけ確認。
サンプルの範囲には含まれてないけど、8月1日は金曜だよね。
月の始まりが週の終わりと重なった場合はC列とD列、どっちに入るの?
これを考慮しとかないと正しいプログラムが作れない。
877名無しさん@そうだ選挙にいこう:2008/06/21(土) 01:21:20
Sub aaa()
If Range("a1").Value <> "" Then
Range("b1").Formula = "=a1+a2"
End If
End Sub

ミタラワカルトオモウケド、A1B1セル、数式は適宜変えてね
878名無しさん@そうだ選挙にいこう:2008/06/21(土) 01:24:27
Sub aaa()
For i = 1 To 10
If Cells(i, 1).Value <> "" Then Cells(i, 2).Value = "VLOOKUP"
Next i
End Sub

>>874 ど素人ですが作ってみました。
879866:2008/06/21(土) 01:27:09
>>876
重なった場合はどちらに入れても大丈夫です。
作りやすい方でお願いします。
880名無しさん@そうだ選挙にいこう:2008/06/21(土) 01:29:25
>>870
Sub 楕円の数を数える()
  Dim C As Integer
  Dim S As Object
  C = 0
  For Each S In ActiveSheet.Shapes
    If Left(S.Name, 4) = "Oval" And S.Line.Visible = True Then C = C + 1
  Next S
  Range("A1").Value = C
End Sub
881名無しさん@そうだ選挙にいこう:2008/06/21(土) 01:36:08
>>867
機能的、能力的には VBA > ワークシート関数
ワークシート関数でできることはVBAでも必ずできるし
文字数(式の長さ)の制限がずっと長いから
複雑な物ほどVBAに向いている。
882名無しさん@そうだ選挙にいこう:2008/06/21(土) 01:38:04
また痛い奴が現れたな。同じVBA厨として恥ずかしいっす。
883870:2008/06/21(土) 01:38:28
>>880
動作確認できました。ありがとうございます。
884名無しさん@そうだ選挙にいこう:2008/06/21(土) 01:51:28
>>870
Sub 楕円の数を数える()
  Dim C As Integer '目的の楕円の数
  Dim S As Shape  '検査の対象
  Dim N As String  'オートシェイプの名前
  Dim V As Integer '名前の数値部分
  For Each S In Sheets("シート1").Shapes
    N = S.Name
    V = Val(Right(N, Len(N) - 5))
    If Left(N, 5) = "Oval " And V >= 1 And V <= 30 And S.Line.Visible = True Then C = C + 1
  Next S
  ActiveSheet.Range("A1").Value = C
End Sub
885名無しさん@そうだ選挙にいこう:2008/06/21(土) 04:13:34
>>866
これでどう?

Sub カレンダーもどき()
  a = 2 '次に日付けを取り出す行
  b = 2 '次に日付けを入れる行
  m1 = Month(Cells(1, 1))     '前の月
  w1 = DatePart("ww", Cells(1, 1)) '前の週
  d1 = Day(Cells(1, 1))      '前の日
  Cells(1, 2) = m1 '1行目の月と日は無条件にセルに入れる
  Cells(1, 3) = d1

  While Cells(a, 1) <> ""
    m = Month(Cells(a, 1))      '次の月
    w = DatePart("ww", Cells(a, 1)) '次の週
    d = Day(Cells(a, 1))       '次の日

    If m <> m1 Then Cells(b, 2) = m '月が変わったらセルに新しい月を入れる
    If w <> w1 Or m <> m1 Then    '月か週が変わったらセルに日を入れて行を進める
      If Cells(b - 1, 3) <> d1 Then Cells(b - 1, 4) = d1 '週の始まりと終わりが同じ日なら入れない
      Cells(b, 3) = d
      b = b + 1
    End If

    m1 = m 'データを順送り
    w1 = w
    d1 = d
    a = a + 1
  Wend

  If Cells(b - 1, 3) <> d1 Then Cells(b - 1, 4) = d1 '最終データは無条件で処理
End Sub
886名無しさん@そうだ選挙にいこう:2008/06/21(土) 04:24:14
>>878
セルに数式を入れたい時はValueじゃなくて>>877みたいにFormulaを使った方が間違いが起こりにくいよ。
Valueでも動くことは動くんだけどね。
887名無しさん@そうだ選挙にいこう:2008/06/21(土) 06:22:56
>>881
その通りだよ。
VBAは使いたくないんだって言えばいいだけなのに、不規則だから使えませんなどとウソをつく。
VBAを使えと言うつもりはないんだけどね。個人的にもこんなケースでは使わない。だがウソは気分悪い。
888名無しさん@そうだ選挙にいこう:2008/06/21(土) 07:05:33
ワークシート関数だけでもカレンダーできそうなんだけど、
なんか頭がこんがらがってきた
889名無しさん@そうだ選挙にいこう:2008/06/21(土) 08:21:48
作業列に月と週を入れて週ごとのグループを作り、その中で最小と最大を求めればいいんだよね。
=MONTH(A1)&TEXT(WEEKNUM(A1),"00")
890名無しさん@そうだ選挙にいこう:2008/06/21(土) 09:58:18
ピボット使える人はすごいね。俺はどうしても三歩以上歩いちゃうし。
891名無しさん@そうだ選挙にいこう:2008/06/21(土) 10:34:23
>>881>>887
出来るだけ避けたいというだけで、無理って訳ではないですよ。
>>867のあらゆる条件をマクロ内に書き込む、
若しくはその時その時で変わるようなものならメッセージボックスでも出して入力すればいい。
でもその表のフォーマット自体すら変更されるので、そういった分岐自体も意味が無い、
若しくは間違った処理に繋がってしまい、更にメンテのことを考えるともはやVBAに頼らないほうが早いという可能性も出てくるんです
もちろん大前提としてそういう表が存在すること自体悪いのですが、その前提を変えられないという・・orz
892名無しさん@そうだ選挙にいこう:2008/06/21(土) 11:48:16
初心者質問ですいませんがお願いします
=IF(C2=1;B2;???) という式で???の所でセルを空白にしたい場合、
どのようにすればいいのでしょうか?
893名無しさん@そうだ選挙にいこう:2008/06/21(土) 11:49:38
つ””
894名無しさん@そうだ選挙にいこう:2008/06/21(土) 11:50:39
=IF(C2=1;B2;"セルを空白")
895名無しさん@そうだ選挙にいこう:2008/06/21(土) 11:50:48
=IF(C1=1,b2,"")
セミコロン「;」じゃなくてコンマだよ
896名無しさん@そうだ選挙にいこう:2008/06/21(土) 11:52:31
ありがとうございました
>>893でできました
897名無しさん@そうだ選挙にいこう:2008/06/21(土) 12:03:24
VBAの質問なのですが、配列A(A(0)〜A(4))があるとして、それを改行コードで
区切りながら格納する場合sexy = Join(A,vbCrLf)のように記載すると思うのですが、
これを配列A(4)を含ませないためにはどうすれば良いのでしょうか?

つまり、配列要素A(4)が不要なので切り捨てたいのです。
898名無しさん@そうだ選挙にいこう:2008/06/21(土) 12:09:50
>>897
ReDim
899897:2008/06/21(土) 13:35:03
>>898
あなたが神か?







どうみても知識人ウラヤマシスです
本当にありがとうございました
900897:2008/06/21(土) 14:20:39
だからなんで俺がレスすると流れ止まるん?
901名無しさん@そうだ選挙にいこう:2008/06/21(土) 14:23:08
いやそもそも流れてないし
902名無しさん@そうだ選挙にいこう:2008/06/21(土) 15:32:29
以前vlookupとmatch関数どちらがいいか・・という議論がなされてましたが、
903名無しさん@そうだ選挙にいこう:2008/06/21(土) 15:33:05
すいません書き込んでしまいました

match関数だとvlookupみたいに並べ替える必要も無いんですよね?
904名無しさん@そうだ選挙にいこう:2008/06/21(土) 15:44:11
どっちも型による
ヘルプ読め
905名無しさん@そうだ選挙にいこう:2008/06/21(土) 15:53:13
>>904
ありがとうございます!
いままでずっと並べ替えてました
906名無しさん@そうだ選挙にいこう:2008/06/21(土) 20:20:44
【1 OSの種類         .】 Windowsxp
【2 Excelのバージョン   】 Excel2000〜
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 .txt  Print スペース カンマ


CADで使うための座標をテキスト型で出力しようとしてます。
で、とりあえず一応は完成はしました。

変数xs(X軸始点),ys(Y軸始点),xe(X軸終点),ye(Y軸終点)MESOD(線を引く、とか座標を元に実行する命令)
PROP(どんな線を書くのか?プロパティみたいなの)

という6つを書き出します。(FNO1tってのがテキストファイル)

For II = 0 To 10 'プロパティ領域ループ回数は定数でヨシ
Print #FNO1, PROP1(II)
Next II
'座標を出力
For II = 1 To I 'Iには、データの行数が格納されている
Print #FNO1, MESOD, XS(II), YS(II)
Next II

CSVやら空白区切りのソフトに対応させるため、「Printを使って」書いてます。

それで質問ですが、
Printの場合、「スペースの個数」とか指定できるって書いてあるけど、
具体的にどうやってコーディングすればいいのかな?
907906:2008/06/21(土) 20:25:31
上記のプログラムを実行すると、テキストファイルには、

’変数PROPからの書き出し
SOU,12
PEN,15

’MESODと、座標値の書き出し
MARK  -14.34  21.33
MARK  -13.34   24.33




こんな感じになる。 で、CADソフトに読ませる時にはスペースの個数やら問題に
なってしまう。

Print #FNO1, MESOD, XS(II), YS(II)

@↑この部分をどう書けばいいんだろう? 
Aまた、任意の位置にカンマ入れたい場合は、 & "," & を入れればOKだよね?
908名無しさん@そうだ選挙にいこう:2008/06/21(土) 21:15:36
>>906
PRINTは、出力したい値をコンマで区切るとスペースが空いてしまう。

Print #FNO1, MESOD, XS(II), YS(II)
             ↑   ↑  
ここをまずセミコロンにする。そうすると隙間が空かずにぴったりくっつく。

Print #FNO1, MESOD; XS(II); YS(II)

スペースを決まった数だけ入れたいときは "  " をはさむ。こんな感じ。

Print #FNO1, MESOD; "  "; XS(II); "  "; YS(II)

もう一つ注意するのは、数値を出力すると前後にスペースが自動的に入ること。
これを考慮しておかないと、スペースの数が思い通りにならない。

固定長のCSVを作りたいならFormatで桁数を揃えた方が早いよ。
909名無しさん@そうだ選挙にいこう:2008/06/21(土) 21:22:48
ちなみに、コンマで区切った場合のスペースの数は、14桁ごとのソフトタブになる。
あと、メソッドのつづりはたぶんMETHOD 。
910906:2008/06/21(土) 21:33:57
>>908-909
すげー。ありがとう。助かった。
入出力はやったことないので超初心者。そんなアツイ関数があるとは。
MESODは俺的に書きやすい。つうか英語わからんので、いつも変数はローマ字系だぜ!


ところで、セミコロンなぞ使った事無かったが、
今回のケースだと、カンマを挿入したい場合、

Print #FNO1, MESOD; ","; XS(II); ","; YS(II)

でOKっすか?
911名無しさん@そうだ選挙にいこう:2008/06/21(土) 21:35:29
MESODかわいいな
912名無しさん@そうだ選挙にいこう:2008/06/21(土) 21:46:50
>>910
数値の前後にスペースが入るのは考慮してる?
それで出力するとこうなるよ。これでいいの?

MARK,-13.34_,_24.33_

(※ _ はスペースの意味)
913名無しさん@そうだ選挙にいこう:2008/06/21(土) 21:55:30
スペースを完全になくしたかったら文字列にキャストすればいい。具体的には区切りのセミコロンを&にする。

Print #FNO1, MESOD & "," & XS(II) & "," & YS(II)

これの出力はこうなる。

MARK,-13.34,24.33
914913:2008/06/21(土) 21:58:52
あと&で区切る時、プログラムの中で&の前後にスペースを入れるのを忘れないように
Print #FNO1, MESOD & "," & XS(II) & "," & YS(II)
                ↑↑ ↑↑   ↑↑ ↑↑
915906:2008/06/21(土) 22:06:18
丁寧にありがとう。

>>914
のやり方に慣れているから、これで行きます。
固定長CSVでは無いので、とりあえずフォーマット関数は後々勉強しますわ。
916名無しさん@そうだ選挙にいこう:2008/06/22(日) 00:21:15
A3のセルの内容が「買」かどうか判断して計算式を行いたいのですが、
下の文を考えたのですがIF文では出来ないのでしょうか?どなたか教えて頂ければ幸いです。

=IF(A3="買",=(B3-C3),=(B3+C3))
917名無しさん@そうだ選挙にいこう:2008/06/22(日) 00:32:13
申し訳ありません、事故解決しましたでsづ。。

=IF(A3="買",B3-C3,B3+C3)
918名無しさん@そうだ選挙にいこう:2008/06/22(日) 00:32:43
文章が・・・orz

>申し訳ありません、事故解決しましたです。。
919名無しさん@そうだ選挙にいこう:2008/06/22(日) 00:54:09
すみません、エクセル初心者なのですが、スレ違いだったら申し訳ありません。
どなたか意見を聞かせてください。

来月から事務職の仕事に就くことになりました。
未経験可で入れてもらえたのですが、そこでは集計系の関数を使用するらしいので仕事が始まる前に勉強していきたいと思うのですが
SUM AVERAGE MAX MIN の他では、どんなものが使用されると思いますか?
一般的に、これ知っといた方がいいかも、知ってたら便利かもっていうのがあれば教えてください。
よろしくお願いします。
920名無しさん@そうだ選挙にいこう:2008/06/22(日) 01:00:10
>>919
来月からなんだったら、こんなところで質問するよりも、
EXCELの本を一冊買って読破すべし。
921名無しさん@そうだ選挙にいこう:2008/06/22(日) 01:07:44
基本はSUMだな
オートフィルは覚えたか?
後は四則演算、足し算だと=A1+A2
ってな感じで入力すれば合計が出せる

AVERAGEはあんまり使わないかな。会社によるだろうけど俺は使ったことが無い

IFは絶対に覚えておいた方がいい、後々役に立つ
後は値と文字列の違い、シリアル値の意味も知っておくといいと思う
ttp://www.relief.jp/itnote/
ここはオススメ。本業インストラクターの人のTIPSだ

それと検索サイト
ttp://www.google.com/
後はこのスレ知っていればどうにかなると思うよ
922名無しさん@そうだ選挙にいこう:2008/06/22(日) 01:19:22
D列で、A列が「買」かどうかをIF文で判断を行い、結果を表示しています。
そのD列の値を使って、C列-D列で引き算の結果をE列に表示しています。
A列が「買」の場合は正常にE列に結果が表示されるのですが、「買」以外の値が入っている場合は
41213等正常ではない値が入ってしまいます。IF文がらみの問題かなと思ったのですが、
色々試してみましたが解決出来ませんでした。。どなたか解決方法を教えていただければ幸いです。

参考までにファイルをうpさせていただきます。
http://www.dotup.org/uploda/www.dotup.org7954.zip.html
923名無しさん@そうだ選挙にいこう:2008/06/22(日) 01:20:57
>>920
>>921
ありがとうございます。
本は会社に持って行くこともできるので、さっそく明日買ってきます。

オートフィルとIFですね。
リンク先もさっそく見てみます!
ありがとうございます。
924922:2008/06/22(日) 01:31:17
すいません、また自己解決になりそうです。。
書式設定でマイナスの符号を消していただけで内部ではマイナスとなっており、
その数値を-10-10のように計算し-20と表示され、さらに100倍していたためあのような数値となっていたようです。。
スレ汚し申し訳ありませんでした。考えて下さった方おりましたらありがとうございますm(_ _)m
925名無しさん@そうだ選挙にいこう:2008/06/22(日) 10:44:19
>>924
なんだか大変そうだな 先が思いやられる
926名無しさん@そうだ選挙にいこう:2008/06/22(日) 12:02:41
そうやって成長していくもんじゃねーのかい
927名無しさん@そうだ選挙にいこう:2008/06/22(日) 12:02:42
デイトレードでもやってるんだろうな
会社の書類や宿題ではなさそうだなw
928名無しさん@そうだ選挙にいこう:2008/06/22(日) 12:19:47
2003は複数のエクセルファイルを開くと、それぞれが独立してウィンドウが立ち上がっていましたが
2007だと大元のEXCELがあって、その中でファイルが表示されるという形式のようですが
2003のように独立したウィンドウに戻すことは出来るのでしょうか?

説明がうまく出来なかったので画像を持ってきました。
分かりづらいですが2003の灰色の所はタスクバーと察して下さいませ。

2003 http://www.dotup.org/uploda/www.dotup.org8206.png
2007 http://www.dotup.org/uploda/www.dotup.org8207.png
929名無しさん@そうだ選挙にいこう:2008/06/22(日) 12:27:37
>>928
ブックを最大化したら?
930名無しさん@そうだ選挙にいこう:2008/06/22(日) 12:31:09
WindowsXP
Excel2003
VBA使えません
VBA回答可

合気道教室の名簿管理をしたいです。
名前の横に、
入門日
取得段級
取得日
道場移籍日
移籍元
移籍先
を入力しています。
会員さんが前回いつ昇級して今何級かを調べたいのですが、何かいい方法を教えて下さい。
931名無しさん@そうだ選挙にいこう:2008/06/22(日) 12:42:58
>>929
ごめんなさい、重要なことですが書き忘れていました。。

ブックを最大化していても、タスクバーでは下の画像の1,2,3のように表示され、
それを選択で該当のブックに切り替えられるのですが、その場合も、
大元のExcelのウィンドウ内に1,2,3のファイルが表示されてしまいます。
例えば、1を左に移動すればその1に隠れていた下には2のウィンドウがあって、そうすれば大丈夫でね?と
思うかもしれませんが、1を移動すると大元が移動となってしまい、2も追随して移動してしまうので
上の2003のように別々に配置等することが出来ないようです。
http://www.dotup.org/uploda/www.dotup.org8227.png

これは2007の仕様で別々のウィンドウにすることは無理なのでしょうか?
932名無しさん@そうだ選挙にいこう:2008/06/22(日) 12:50:34
>>928
できません
933名無しさん@そうだ選挙にいこう:2008/06/22(日) 12:54:40
すみませんVBA初心者です、教えてください。
1.セルB4から下に数字の入っている分だけ選択する。
2.1で選択した範囲の数字に対して計算できるようにする。(変数?)
3.選択した範囲の数字で平均とか最大とか最小とか計算する。

以上のことをやりたいのですが、コードはどのように書けばよいでしょうか?
934名無しさん@そうだ選挙にいこう:2008/06/22(日) 12:54:51
>>930
名前の横に書かれた取得段級と取得日を見ればいいだけでは?
合気道の世界で使われる専門用語もわからないのですが、「取得日」と「昇級の日」は別なのでしょうか?
935名無しさん@そうだ選挙にいこう:2008/06/22(日) 12:59:21
一人につき「1段昇級日」「2段昇級日」とか複数行あるんでしょう。
メニューからオートフィルタ選んでみ。
936名無しさん@そうだ選挙にいこう:2008/06/22(日) 13:11:08
>933

つマクロの記録
937名無しさん@そうだ選挙にいこう:2008/06/22(日) 13:11:58
>>933
フィルタとSUBTOTAL()の組み合わせでおk
938名無しさん@そうだ選挙にいこう:2008/06/22(日) 13:13:23
>>933
Sub Macro3()

Dim gouke As Long
Dim i As Long
Dim gyo As Long
gyo = Range("B65536").End(xlUp).Row

Range("B5").Select
For i = 1 To gyo - 4
gouke = gouke + Selection.Value
Selection.Offset(1, 0).Select
Next
MsgBox "合計は" & gouke & "です。"

End Sub

わざとfornextにした
これは使えるようになっておいたほうがいいよ、かなり応用が利く
939名無しさん@そうだ選挙にいこう:2008/06/22(日) 13:19:05
>>931
うちのだとふつ〜に別々のブックが開くけども。
940名無しさん@そうだ選挙にいこう:2008/06/22(日) 13:20:07
>>931
先にブックを開くんじゃなく、エクセルを立ち上げてみては?
それで無理なら、無理かな
941名無しさん@そうだ選挙にいこう:2008/06/22(日) 13:25:53
>>936
マクロの記録というのは自動記録してそのコードを分析するんですよね。
これはいろいろ応用できそうなテクニックだ、ありがとうございます。
>>937
フィルタきのうというのもあるんですか。
便利そうな機能なので調べてみます、ありがとうございます。
>>938
コード教えていただいてありがとうございます。
範囲の選択の仕方勉強になります。
DOとLOOPで選択しようとしてたけど、うまく行ってなかった・・・
fornextで選択する方法覚えておきます。
942名無しさん@そうだ選挙にいこう:2008/06/22(日) 13:43:45
>>938
無理矢理にFor Nextで合計を出すとしたらこうだろ。SelectとかOffsetとか無駄が多すぎ。

For i = 4 To Range("B" & Rows().Count).End(xlUp).Row
  gouke = gouke + Cells(i, 2)
Next

そもそもこれではエラーが出るし平均や最小値や最大値を求めるのが面倒だし、
質問の内容からずれてると思うが。B4からって言ってんのにB5から始めてるし。
943名無しさん@そうだ選挙にいこう:2008/06/22(日) 13:46:40
>>942
本当だ。全然違うな
かなりスマンかった
でも範囲自体はB5からだと思うけど
944名無しさん@そうだ選挙にいこう:2008/06/22(日) 13:47:37
>>933
「VBA初心者です」ってのは単なる自己紹介?それとも、以下の処理をすべてVBAでやりたいってこと?
945名無しさん@そうだ選挙にいこう:2008/06/22(日) 14:00:49
>>944
自己紹介もありますが、VBAで全部計算したいです。
B4にいれる数字の数は毎回異なるのでVBAで全部できるといいです。
>>942
簡単なコードでもできるんですね、ありがとうございます。
確かに、合計は計算できたのですが、平均とか最大、最小、計算難しくて出来ないです。
B4から数字の入っている範囲を選択して、
その範囲に対して平均とか最大とかいろいろ計算できるように簡単にする方法はないでしょうか?
946名無しさん@そうだ選挙にいこう:2008/06/22(日) 14:03:27
>>945
例えばB4に3と入っていたら、B5〜B7の連続した3つのセルを選択して計算したいってこと?
947名無しさん@そうだ選挙にいこう:2008/06/22(日) 14:03:36
なんでVBAでやるんだろ ふつうそういうのは関数ですませるだろ
948名無しさん@そうだ選挙にいこう:2008/06/22(日) 14:05:36
Vista,Excel2007,VBA可です。

IFもしくはIFERRORで表示させた「""」(空白)セルをグラフにプロットしたとき、
「非表示および空白のセル」機能を使って補完させようとしても0扱いになるのは仕様ですか?
NA()を表示させるようにするとグラフは期待通り補完されるのですが表の方が若干見苦しくなります。
またNA()セルを含む範囲をSUM()などで計算させようとするとエラーになるので困ってます。
949名無しさん@そうだ選挙にいこう:2008/06/22(日) 14:06:34
>>946
はい、B4からB10に数字が入っていたとしたら、
B4からB10の平均出したりしたいです。
>>947
関数ではできたのですが、
入れる数字の長さが毎回違うので、
そのたびに関数の範囲を選択しなおさないといけないので、
VBAでできるとその手間が省けていいかなと思って・・・
950名無しさん@そうだ選挙にいこう:2008/06/22(日) 14:09:14
>>949
いやいやいや、質問がブレてるぞ。
B4に入ってる数字も合計や平均に含めるのか、B4には「セルの数」が入ってるのか、どっち?
951名無しさん@そうだ選挙にいこう:2008/06/22(日) 14:11:39
>>950
すみませんB4の数字も含めて計算です。
952名無しさん@そうだ選挙にいこう:2008/06/22(日) 14:14:50
>>949
=SUM(B4:B10000)
=MAX(B4:B10000)
=AVERAGE(B4:B10000)
みたいなのじゃだめ?数字で埋まってなくても空欄は自動的に無視してくれるよ?
953名無しさん@そうだ選挙にいこう:2008/06/22(日) 14:19:25
>>948
元の表とグラフ作成元の表を分ければいんじゃないの
954名無しさん@そうだ選挙にいこう:2008/06/22(日) 14:20:10
>>952
=sum(B:B)
でいいんじゃね
そんなに重くなるような表でもなさそうだし
955名無しさん@そうだ選挙にいこう:2008/06/22(日) 14:21:15
>>954
範囲にB1〜B3が含まれるのはまずいんじゃ…
956名無しさん@そうだ選挙にいこう:2008/06/22(日) 14:21:59
VBAでやりたいというより、VBAでこういう場合はどうしたらいいですか?
って質問じゃないのか?
表がどうとかいうよりVBA自体を覚えたいと言ってるように聞こえてきた
そして俺は分からない
957名無しさん@そうだ選挙にいこう:2008/06/22(日) 14:22:54
>>954
スマン・・
なんか今日はダメだ
958名無しさん@そうだ選挙にいこう:2008/06/22(日) 14:25:40
>>952
なるほど、
範囲をおもいっきり伸ばしておけば、計算できるんですね。
平均 =SUMIF(B4:B20,"<>0")/COUNTIF(B4:B20,"<>0")
最大 =MAX(B4:B20)
最小 =MIN(B4:B20)
標準偏差 =STDEV(B4:B20)
勝率 =COUNTIF(B4:B20,">0")/COUNTIF(B4:B20,"<>0")
PF =SUMIF(B4:B20,">0")/SUMIF(B4:B20,"<0")*-1
勝ち平均 =SUMIF(B4:B20,">0")/COUNTIF(B4:B20,">0")
負け平均 =SUMIF(B4:B20,"<0")/COUNTIF(B4:B20,"<0")
取引回数 =COUNTIF(B4:B20,"<>0")
この関数の範囲をB4:B2000にしても計算できました。
ありがとうございます。
平均 =SUMIF(B4:B20,"<>0")/COUNTIF(B4:B20,"<>0")
最大 =MAX(B4:B20)
最小 =MIN(B4:B20)
標準偏差 =STDEV(B4:B20)
勝率 =COUNTIF(B4:B20,">0")/COUNTIF(B4:B20,"<>0")
PF =SUMIF(B4:B20,">0")/SUMIF(B4:B20,"<0")*-1
勝ち平均 =SUMIF(B4:B20,">0")/COUNTIF(B4:B20,">0")
負け平均 =SUMIF(B4:B20,"<0")/COUNTIF(B4:B20,"<0")
取引回数 =COUNTIF(B4:B20,"<>0")
VBAで範囲の削除だけ作っておいて、
あとは数字を貼り付けるだけにしておけばOKかな。
Excelの機能じたいもまだ良く理解してなかったかも・・・
959名無しさん@そうだ選挙にいこう:2008/06/22(日) 14:29:33
なんだか大変そうだな 先が思いやられる
960名無しさん@そうだ選挙にいこう:2008/06/22(日) 17:22:49
>>934>>935
合気道では級無しから始まって、5級、4級となり、1級の次が初段となります。
そこからは二段、三段と上がっていきます。
961名無しさん@そうだ選挙にいこう:2008/06/22(日) 17:37:00
>>934
取得日と昇級、昇段の日は同じです。級や段を取得した日という意味です。
オートフィルターだと上手く選ぶことができませんでした。
VBAを使うとできますか?
よろしくお願いします。
962名無しさん@そうだ選挙にいこう:2008/06/22(日) 18:01:22
>>961
名簿の構造が>>930の説明だけじゃはっきり分からないんで誰も答えられないんだと思う。
ある人が級や段を取得するたびに行を追加してるって事?
例えば同じ人が過去3回級や段を取得していたら、同じ人の行が3行あるの?
963名無しさん@そうだ選挙にいこう:2008/06/22(日) 19:51:22
>>961
B1に取得段位、C1に取得級を数字だけで入れるとすると
A1に=B1+C1& IF(B1<>"","段","級")
か?
とにかくそのままでは使いにくいと思う
964名無しさん@そうだ選挙にいこう:2008/06/22(日) 19:59:54
>>961
名前でフィルタかけるだけじゃん なんでこれでうまくいかないのかさっぱりわからん
965名無しさん@そうだ選挙にいこう:2008/06/22(日) 22:26:33
「VBA初心者です」
「VBAは中級です」
ってレベルのテンプレ作ると良さそうだな。
範囲が広いので自分では中級のつもりでも実はへっぽことかも居そう。

配列、ステートメント系、条件式のネスト、サブ関数辺りが使いこなせて中級かな?
当然基本的なバグは除去できて。



つうか、みんなエラーが起きそうな箇所ではオンエラー使ってる?
それとも一つづつつぶすように心がける?
966名無しさん@そうだ選挙にいこう:2008/06/22(日) 22:53:19
そんな長いコードを書くこと自体ないんだけど
967名無しさん@そうだ選挙にいこう:2008/06/22(日) 22:55:02
ワークシートの読み書きはエラーが起きないように作る。
On Errorを使うのはファイルの読み書きとかそのへん。
968名無しさん@そうだ選挙にいこう:2008/06/22(日) 22:56:03
>>960
例として数人分の名簿を仮名でいいから作って。
それを見ないことには話が進まない。
969930:2008/06/23(月) 06:52:04
質問内容を読み返してみましたら、やりたいことをうまく表現できていませんでした。
あの内容では確かに>>964さんの指摘どおりですね。ごめんなさい。
本当にやりたいことをもう一度説明いたします。

前回のテストで段、級を取得した会員さんは今何段、何級なのかを一覧で確認したいのです。
データはこんなのです。

吉本 入門日 2007/3/2 5級 2008/3/21
原田 入門日 2006/10/20 5級 2007/3/16 東京第一 東京第二 2007/4/1 4級 2008/9/22

よろしくお願いします。
970名無しさん@そうだ選挙にいこう:2008/06/23(月) 07:37:04
>>969
データの意味がよくわからんのだが。
まさかと思うけど、昇級するごとに横に延びてくの?こんな感じで。

原田 2006/10/20 5級 2007/3/16 4級 2008/9/22 3級 2009/3/22 2級 2009/9/22
971名無しさん@そうだ選挙にいこう:2008/06/23(月) 07:44:49
仮にそうするとしても、5級はD列、4級はE列・・とそろえたほうがいいね。空白であっても
普通は更新するけど
972名無しさん@そうだ選挙にいこう:2008/06/23(月) 07:47:02
>>969
えーと、「前回のテストに不合格、または不参加の人は除外して、合格した人の一覧が欲しい」ってこと?
973名無しさん@そうだ選挙にいこう:2008/06/23(月) 08:25:28
>>969
Excelでデータ整理するなら、こういう風に並べてあれば、とても簡単に色んな事ができるようになるんだけども。
分類したり、条件に合う物だけを取り出したり。

   A    B      C       D       E
1  名前  事由    日付     備考1    備考2
2  原田  入門.  2006/10/20
3  吉本  入門.  2007/3/2
4  原田  5級   2007/3/16
5  原田  移籍.  2007/4/1    東京第一  東京第二
6  吉本  5級   2008/3/21
7  原田  4級   2008/9/22

>>971
そういう一覧表も、データが正規化されていればすぐに作れる。
974名無しさん@そうだ選挙にいこう:2008/06/23(月) 08:34:10
名前が主キーなのに毎回入力させるのか?
ふざけた提案だなw
975名無しさん@そうだ選挙にいこう:2008/06/23(月) 08:36:45
>>969
もしかして道場移籍日、移籍元、移籍先ってデータも移籍があるたびにその行に追加されてくのかな?

原田 入門日 2006/10/20 5級 2007/3/16 東京第一 東京第二 2007/4/1 4級 2008/9/22 東京第二 東京第三 2008/10/1

みたいな感じで。
回答者は道場経営の専門知識があるわけじゃないんで、その辺の情報を当たり前と考えずに漏らさず書いて欲しいな。
あと、そのデータは自分で考えて自分で打ち込んでるのか、それともどこかから送られてくるデータなのか。
つまり自分でデータの構造を変えてもいいのか変えられないのかって事。変えられないとちょっと面倒だね。
976名無しさん@そうだ選挙にいこう:2008/06/23(月) 08:42:34
>>974
俺アンチピボ厨だけど、さすがにその指摘はお前が馬鹿すぎね?ていうか意味不明だし。
マスターとトランザクションの違い分かるか?
977名無しさん@そうだ選挙にいこう:2008/06/23(月) 09:21:56
>>976

覚えた単語って使ってみたいよね♪
わかります。
978名無しさん@そうだ選挙にいこう:2008/06/23(月) 12:10:44
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい(少々)
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 EXCEL 置換 ワイルドカード

セル内の先頭にある半角スペースを消したいのですが

検索する文字列: *
置換後の文字列:*

では対象が全て*になってしまいます。
「置換後の文字列」には何を指定するのでしょうか?


979978:2008/06/23(月) 12:11:17
sageてた・・・(汗

よろしくお願いします。
980名無しさん@そうだ選挙にいこう:2008/06/23(月) 12:50:00
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 EXCEL ナンバーズ 予想 的中 マナ1%使用

ナンバーズの番号を的中させるマクロを作っているのですが
全然当たりません。的中精度を上げるにはどうすれば良いのでしょうか。
981980:2008/06/23(月) 12:52:45
自己解決しました。アカシックレコードからデータを取得する処理を
なぜかコメントアウトしてました。修正したら100%的中になりました。
982名無しさん@そうだ選挙にいこう:2008/06/23(月) 13:45:32
money.csv (MoneyFile)
 田中,貸した,12000,未納

というデータを

 Open MoneyFile For Binary Access Read Write As intFF
 (中略)
 buf2 = Split(buf, ",")
で読み込み、
 ReDim Preserve buf2(3)
として「未納」の配列要素を切り捨てた後で書きだしているのですが
思った通りのデータになっているものの「未納」の部分が消えません。
更新前のデータがそのまま残っている状態です。
つまり

 田中,貸した,12000,未納
 ↓
 田中,貸した,12000

としたいのですが、どうすれば良いのでしょうか。
バイナリアクセスでは、行のバッファを置き換える事はできないのでしょうか。
983名無しさん@そうだ選挙にいこう:2008/06/23(月) 14:10:21
>>978
セル内に途中にも” "が有りますか?
なければ、単に" "で置換してください。
984名無しさん@そうだ選挙にいこう:2008/06/23(月) 14:13:59
2007を使っています。
以前この掲示板でホームのところにあるフィルを使うことで
いちいちドラッグしなくても、オートフィルすることが出来ることを教えてもらったのですが
数式をオートフィルするためにはどうしたら良いのでしょうか?
例えば
=A1/3600
=A2/3600
・・・
みたいに数式を並べたいのですが
985名無しさん@そうだ選挙にいこう:2008/06/23(月) 14:30:56
PPは2003で作ったファイルを2007で開けなかったりするので
結構不便ですが
Excelでは2007にしないとどういう不便がありますか?
986名無しさん@そうだ選挙にいこう:2008/06/23(月) 14:43:05
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 不可

セルA1,B1,C1のいずれかに「○」を入力すると、入力されたセル以外の
二つのセルに「×」が自動的に入るような関数はありますか?
またはIF文でその動作をさせることはできますでしょうか?

よろしくお願いします。



987名無しさん@そうだ選挙にいこう:2008/06/23(月) 14:43:26
>>975
移籍についてはその通りです。
データは自分で打ち込んでいるので変更可能です。
>>973のようにすべきでしょうか。
988名無しさん@そうだ選挙にいこう:2008/06/23(月) 15:07:11
Office2007販売してるMSは頭おかしいよ…
2003までで慣れ親しんだメニューをガラッと変えやがってさ。
公式には「旧メニュー使いたい奴は2003使うといいよ」
とか言いながら販売してねーしふざけんなと。

仮にリボンがこの上なく使いやすいものだったとしても
いきなり切り替えるのは横暴だよ。せめて2007には
両方のメニューを乗せ、移行期間を設けるべきだったと思う。
MSのOfficeじゃなかったら切り捨てられてもおかしくない
企業としてはとんでもない行動だったと思う。
989名無しさん@そうだ選挙にいこう:2008/06/23(月) 15:19:17
エクセル関数で他のセルに値を入力する関数はありません。
990名無しさん@そうだ選挙にいこう:2008/06/23(月) 15:21:36
>>986
2002だとVBAを使わないと無理
Excel2007なら条件付き書式でできる
991名無しさん@そうだ選挙にいこう:2008/06/23(月) 15:22:02
>>985
2007で作られたブックが開けない
992986:2008/06/23(月) 15:23:03
>>989,990
そうですか、ありがとうございました。
993名無しさん@そうだ選挙にいこう:2008/06/23(月) 15:26:19
>>984
数式はドラッグしないと無理。
ただし左右どちらかの列にデータが入ってれば、ダブルクリックで同じ所まで数式で埋まる。
994名無しさん@そうだ選挙にいこう:2008/06/23(月) 15:43:18
>>986
A1=if(or(B1="○",C1="○"),"×","")
B1=if(or(A1="○",C1="○"),"×","")
C1=if(or(A1="○",B1="○"),"×","")
でいけるだろ
995名無しさん@そうだ選挙にいこう:2008/06/23(月) 15:45:29
新スレ立てられなかった
テンプレ使って誰か立てておくれ↓
Excelに関する質問は、ここで!

▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★1 質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★2 要望は具体例や図を使って明確かつ具体的に。
★3 質問前に>>2-10あたりの注意書きや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総合相談所 70
ttp://pc11.2ch.net/test/read.cgi/bsoft/1213013614/
996名無しさん@そうだ選挙にいこう:2008/06/23(月) 15:46:43
>>994
アンタバカだろ
997名無しさん@そうだ選挙にいこう:2008/06/23(月) 15:56:32
>>978
途中や末尾にスペースがなければ単純にスペースをなにもなしに置換すればいい
998名無しさん@そうだ選挙にいこう:2008/06/23(月) 16:01:29
>>978
LTrim
999名無しさん@そうだ選挙にいこう:2008/06/23(月) 16:08:45
埋め
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。