Excel総合相談所 87

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

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

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

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

前スレ
Excel総合相談所 86
ttp://pc11.2ch.net/test/read.cgi/bsoft/1251490200/
2 ◆Excel//q4U :2009/09/27(日) 21:53:39
▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━
・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 ◆Excel//q4U :2009/09/27(日) 21:54:21
★ルールを無視すると…
 >>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 ◆Excel//q4U :2009/09/27(日) 21:55:03
★ 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 ◆Excel//q4U :2009/09/27(日) 21:55:45
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)

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

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

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

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

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

>▼環境・書式
> ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する
補足
2007ではページレイアウトビューの表示時に限り、幅・高さともcm単位で表示され、
指定も同じくcm単位でできる。
ただし大元がインチ系なのでなかなかピタリの値は出ない。1cm→0.98cmのように
近い値に勝手に丸められる。

以上でテンプレ終わり
7名無しさん@そうだ選挙にいこう:2009/09/27(日) 22:19:40
>>1 おまえいいやつだな
8名無しさん@そうだ選挙にいこう:2009/09/28(月) 02:32:00
>>1ー6
 *-+。・+。-*。+。*
  \   。*゚
  ∩ *
  (・ω・`)
  。\  つ
  *  丶 _⊃
 +。  ∪   ☆
  ゚+。*。・+。-*。*゚

9名無しさん@そうだ選挙にいこう:2009/09/28(月) 04:08:38
質問です。お願い致します。

【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 excel エンター ペーストされる

いつのまにかセルをコピーしている状態でエンターを押すと勝手にペーストされるようになってしまいました。
どこで設定を直せば良いのでしょうか?探してみたのですがちょっとわからなかったです。
10名無しさん@そうだ選挙にいこう:2009/09/28(月) 10:17:41
>>9
それは仕様です
コピーしていると下に、「エンターを押すか・・」と説明でるっしょ
間違えてコピーしたときはESCオスと解除されるよ
11名無しさん@そうだ選挙にいこう:2009/09/28(月) 20:55:51
入力規則リストに連動して、ほかのセルに自動入力ってできる?
129:2009/09/28(月) 21:42:37
>>10
ええーそうなんですが。今まで気づかなかった。
コピーして列の一番下のその次に書き込みたくてctr+下のあとリターンで次のセルに行きたいのだけど
リターンすると貼り付けられちゃってめっちゃふべんです。わかりにくくてごめんなさい。
13名無しさん@そうだ選挙にいこう:2009/09/28(月) 22:05:44
>>12
それだったら、ctr+下のあともう一度↓を押すのが早い
149:2009/09/28(月) 22:15:56
ああああー確かにそうですね。気づきませんでした。
15名無しさん@そうだ選挙にいこう:2009/09/28(月) 22:56:23
カワイイ
16名無しさん@そうだ選挙にいこう:2009/09/29(火) 00:06:06
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

上から順に入力されている数字を上下逆の順にしたいのですが
何かいい方法ありませんか?
17名無しさん@そうだ選挙にいこう:2009/09/29(火) 00:25:36
>>16
作業列に連番を入れて降順に並べ替え
行数固定ならワークシート関数
VBA
18名無しさん@そうだ選挙にいこう:2009/09/29(火) 00:31:21
>>17
ありがとうございます!
19名無しさん@そうだ選挙にいこう:2009/09/29(火) 00:42:13
前スレ980ですがDropButtonClickイベントを使ったら、
今度はコンボボックス1をドロップダウンした時にエラーが発生してしまいました。
ドロップダウンリストを非表示にした時のみ起こるイベントがあればいいと思うのですが、
調べても見つかりません…
他に方法はありますでしょうか?


↓前回の質問
>vbaの質問です。
>フォーム上にコンボボックスが2つある状態で、
>コンボボックス1でドロップダウンして値を選択すると、コンボボックス2がドロップダウン状態になるようにしたいのですが、
>下記のコードではドロップダウンしてくれませんでした。(コンボボックス1が既にドロップダウン状態のため?)
>何かいい方法はありますでしょうか?
>
>Private Sub Combobox1_Change()
>Combobox2.dropdown
>End Sub
20名無しさん@そうだ選挙にいこう:2009/09/29(火) 06:54:08
>>16
降順・昇順それぞれ専用のボタンがあるよ。(Σ”オートSUM”とグラフウィザード
のボタンの間にあります。)
並び替えたい範囲を選択してそのボタン押せば即変わる。

つか、前スレでつい最近質問&回答あったばかりなんだが。
21名無しさん@そうだ選挙にいこう:2009/09/29(火) 07:55:04
>>20
データを降順・昇順に並べるのではなく、単に上下逆転したい時はどうすればいいですか?
22名無しさん@そうだ選挙にいこう:2009/09/29(火) 08:57:23
>21

バカ? を ?ガハ にしたいってこと?
23名無しさん@そうだ選挙にいこう:2009/09/29(火) 10:27:14
>>19
ttp://www.red.oit-net.jp/tatsuya/vb/ComboBox_Event.htm
ないんじゃないかな
エラーは「VBA コンボボックス エラー」などでぐぐるといいかも
俺のところでは再現できなかった
ttp://74.125.153.132/search?q=cache:jJZfQmSCb6wJ:okwave.jp/qa3581632.html+VBA+%E3%82%B3%E3%83%B3%E3%83%9C%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9+%E3%82%A8%E3%83%A9%E3%83%BC&cd=1&hl=ja&ct=clnk&gl=jp&lr=lang_ja
>>21
作業列、が分からないか
例えばA列を並び替えたいとき、B列に1、2、3・・とA列のはしまで入力
そしてAB列を選択した後B列を基準に降順で並び替えると、B列が3、2、1・・
となりそれに連動してA列も変わる
このB列を作業列という。公式な呼び方かどうかは知らんけど
24名無しさん@そうだ選挙にいこう:2009/09/29(火) 11:03:49
>>19
確かにDropButtonClickでやってみたら

実行時エラー’-2147417848 (800101108)':
オートメーション エラーです。
起動されたオブジェクトはクライアントから切断されました。

て、エラーでたわ

それで、実際どういう動作をさせたいの?
2つ同時にドロップダウンリストを表示させたいんだったら
リストボックスを使ったほうがいいと思うよ
25名無しさん@そうだ選挙にいこう:2009/09/29(火) 11:20:12
曲線のグラフを書きたいのですが
折れ線グラフでちょこちょこ書かないと無理でしょうか?
26名無しさん@そうだ選挙にいこう:2009/09/29(火) 11:33:06
>25
点の集合でグラフを書くなら、散布図が便利です
27名無しさん@そうだ選挙にいこう:2009/09/29(火) 11:53:04
>>25
それでもかなり面倒そうですね
ワードでも探してみます
ありがとうございます
28名無しさん@そうだ選挙にいこう:2009/09/29(火) 12:52:07
>>22

> バカ? を ?ガハ にしたいってこと?
質問の内容はそういうことだろ。
つまり>>20がバカということ。
29名無しさん@そうだ選挙にいこう:2009/09/29(火) 14:07:36
また恥かくからそういう言い方はやめておきなって
30名無しさん@そうだ選挙にいこう:2009/09/29(火) 20:55:06
>>21
エスパーが回答するよ〜
「shift押しながらドラッグしたらどうなん?」
31名無しさん@そうだ選挙にいこう:2009/09/29(火) 21:52:50
Office2000から2003になりました。
オートフィルしたり、コピペしたりすると小さなボックスが出てきてウザいんですが、
出さなくする方法を教えてください。
32名無しさん@そうだ選挙にいこう:2009/09/29(火) 22:17:12
>>31
ツール>オプション>編集>[貼り付けオプションボタン]を表示するのチェックをはずす

手元に2003が無いのであやふやだが、これだったはず
3319:2009/09/29(火) 23:22:28
>>23>>24
回答ありがとうございます

>それで、実際どういう動作をさせたいの?
>2つ同時にドロップダウンリストを表示させたいんだったら
>リストボックスを使ったほうがいいと思うよ

いえ、複数のコンボボックスに順番に値を入力していくのに、
1つ目に値を入力したら2つ目のドロップダウンリストを自動で開く
2つ目に値を入力したら3つ目のドロップダウンリストを自動で開く

としたかっただけなのですが、なぜかうまくいきませんでした。

諦めて手動で開くことにします。
34名無しさん@そうだ選挙にいこう:2009/09/30(水) 00:21:43
>>33
どうもコンボボックスを繋げるとバグがおきやすいみたいだな
ボタンにするか、別のメソッド(動作)を試すといいかもしれない
35名無しさん@そうだ選挙にいこう:2009/09/30(水) 00:30:22
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 少し
【4 VBAでの回答の可否】 可
【5 検索キーワード     】”違うシート 集計”、”Vlookup 集計”

こんばんは。早速質問させていただきます。

今、複数のシートにデータが入っています。
Sheet1 契約店リスト >>300件くらいのリスト。2列。契約店コードと契約店名。
Sheet2 商品受注表 >>1000件くらいのリスト。
           >>受注月、受注日、契約店コード、契約店名(VlookupでSheet1から検索)、
           >>オプションのありなし(1か0が入力されている)
Sheet3 集計表1 >>ピボットテーブル

まず、Sheet2の受注表は、毎日10件くらい増えます。
これを月末に、月ごと・契約店ごとに、受注個数・オプション契約個数の2つを集計します。
これは、ピボットテーブルでなんとか作りました。(Sheet3 )

お聞きしたいのは、こんなことです。
やりたいのは、Sheet1のリストには入っていてもまだ受注していない契約店の分も「0」として表示して、
全部の契約店の受注個数とオプション契約数を出したいのです。(0個のところは営業を強化したりしたいので)

出来れば、今作っているのと似たレイアウトで、月ごとにまとめられて、かつ今までの累計も見られるようなかたちで。
Sheet1とSheet2をうまく使ってこういうものをこしらえるには、どうすれば出来るでしょうか?

前の担当者は月末ごとに電卓をたたいていて、それが手間なのとミスしやすいなあと思ってExcelでやりたいのですが。
どうか教えてください。
36名無しさん@そうだ選挙にいこう:2009/09/30(水) 00:37:44
>>35
ピボットテーブルだとSheet2にダミーデータを入れるしかないのではないか?

SQLだと外部結合というので実現できる。
AccessやSqliteを試してみてもおもしろいよ。
37名無しさん@そうだ選挙にいこう:2009/09/30(水) 00:47:27
2003だと追加インストールが必要かもしれんけど、データのあるブックとは別のブックから「外部データの取り込み」で
Query起動して外部結合できんじゃねーかなそれは
3835:2009/09/30(水) 01:03:44
早速ありがとうございます。

>>35さん
申し遅れていました。Sheet2は自動でデータが入るようになっているのです。
(受注システムからデータを読んでいるのだとか)
ですので、Sheet2はいじれないかと・・・
やはり、こういったものはAccessでしょうか。わたしを含め、課内はあまり
Accessに強いものがおらず、ついExcelでなんでもやってしまおうとしてしまいます。

外部結合というのを調べてみます。37さんもありがとうございました。
あす出社しましたら、追加インストールが必要かどうかを含め、まずは検討してみます。
ピボットテーブルをかじり始めたばかりなので、ピボットテーブルで出来るのかと思い
躍起になっておりました。やはり視野が狭いのはいけませんね。
39名無しさん@そうだ選挙にいこう:2009/09/30(水) 03:16:53
>>38
「ちょっと重い」程度のことなら、余計なことはせずに
がまんして使った方がいいかもしれんぞ
新しいシステムを導入すると必ずトラブルが起こるの法則
40名無しさん@そうだ選挙にいこう:2009/09/30(水) 04:05:37
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 簡単なものなら
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 "シート保護" "ロックされた範囲の選択 再起動"

シートを保護する際「ロックされたセル範囲の選択」チェックをオフにし、
ロックされたセルは選択出来ないよう設定したいのですが、エクセルを再起動するとシートの保護はされているのに
ロックされた範囲の選択は可能になってしまいます。
複数シートを使って何度も試してみたところ、時々ロックされた範囲を選択出来ないままの場合もありました。
どういうケースでそうなるのか再現は出来ませんでした。

解決方法をご存知でしたら、ご教授をお願い致します。
4140:2009/09/30(水) 04:24:19
書き忘れた情報を追加します。ごめんなさい。

>>40の事象は、現在作成中の納品書請求書作成用のbookでのみ起こります。
新規でbookを作成した場合は再起動しても、ロックされたセルは選択出来ないままでした。
納品書請求書作成用のbookでも、新規でシートを追加した場合は大丈夫です。

シート保護のチェックは「ロックされていないセル範囲の選択」のみにチェックを入れています。

知らない間にどこかの設定を変えてしまったのでしょうか。
よろしくお願いします。
42名無しさん@そうだ選挙にいこう:2009/09/30(水) 07:10:20
質問です。

sub k ()

for i= 1 to 30
〜〜〜〜〜〜
next i


for h=1 to 10
〜〜〜〜〜〜〜
next h

end sub

こうゆう構文ってなりたちますか??(〜〜〜〜はなんでもいいです。)
試してみたのですができませんでした。本にもこのようなものは書いていませんでした。
なにかやり方があるのか知りたくて質問してみました。
エクセル2003です。よろしくお願いします。
43名無しさん@そうだ選挙にいこう:2009/09/30(水) 07:22:19
>>39
>「ちょっと重い」程度のことなら、余計なことはせずに
>がまんして使った方がいいかもしれんぞ

「ちょっと重い」なんて書いてあったか?
44名無しさん@そうだ選挙にいこう:2009/09/30(水) 07:26:08
>>42
Option Explicit

Sub k()
Dim i, h
For i = 1 To 30
Cells(i, 1) = "ループ1の" & i & "かいめ"
Next i


For h = 1 To 10
Cells(h, 2) = "ループ2の" & h & "かいめ"
Next h

End Sub
できるよ
45名無しさん@そうだ選挙にいこう:2009/09/30(水) 11:37:09
スレチなんだが、だれかVBA質問スレたてて下さい
46名無しさん@そうだ選挙にいこう:2009/09/30(水) 14:29:16
47名無しさん@そうだ選挙にいこう:2009/09/30(水) 16:58:19
>>46
ありがとうございます
48名無しさん@そうだ選挙にいこう:2009/09/30(水) 18:51:16
>>44
ありがとうございました。
かなり作業が進みました。感謝です。
49名無しさん@そうだ選挙にいこう:2009/09/30(水) 21:27:20
Excel 2007の使い方について質問です。

【内容】
Excel 2007のハイパーリンクで、外部プログラムを起動していますが、
この外部プログラムに引数を渡したいと思っています。その引数の指定方法を教えていただけないでしょうか?

**.exe *** ***

と、スペースで引数を指定すると、" "が"%20"に変換されてしまい、うまく指定できません。
スペースをうまく指定する方法を教えてください。

宜しくお願いします。
50名無しさん@そうだ選挙にいこう:2009/10/01(木) 04:13:52
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 IF関数

作成したブックです。
ttp://www.dotup.org/uploda/www.dotup.org205926.xls.html

A2に文字があります。
B2からF2に日付があります。
G2のセルに、「もしB2からF2の日付の内一つでもTODAYなら、G2にA2を表示させる」
という事を行いたいです。

お手数ですがご回答よろしくお願いします。
5150:2009/10/01(木) 04:52:03
お騒がせしました、自己解決しました。
52名無しさん@そうだ選挙にいこう:2009/10/01(木) 04:55:43
>>50
"一つでも"ということなら
=IF(COUNTIF(B2:F2,TODAY())>=1,A2,"")

ただ実際範囲内で重複している日付は無さそうだから
=IF(COUNTIF(B2:F2,TODAY())=1,A2,"")
とやってもよさそうだけどね。
53名無しさん@そうだ選挙にいこう:2009/10/01(木) 04:57:28
orz...
54名無しさん@そうだ選挙にいこう:2009/10/01(木) 08:50:52
【1 OSの種類         .】 XP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 ある程度
【4 VBAでの回答の可否】 否
ピボットで商品の今年度と昨年度の集計を出しました。
その集計から前年比などを出すのですが
ピボットで集計したものを別のシートに貼り付けて計算式「今年-昨年」で
前年比をだしているのですが、ピボットのあるシート内でこういった計算はできませんでしょうか?

商品名 **

顧客 今年 前年 
 A 10   5
 B 15   3
以下続く     
上のものを別シートに貼り付けて

顧客 今年 前年 今年-前年←新しいシート・列にこの計算式を入れてる 
 A 10   5   5
 B 15   3   12

複数商品を何度も何度もコピペしてるので、もう少し効率的にできれば…
と思いました。判りづらいところもあるかもしれませんが
何卒ご教示お願い致します。


55名無しさん@そうだ選挙にいこう:2009/10/01(木) 09:06:03
>>54
できるよ。そのまま式をピボットテーブルの隣に書き足せばいい。
5654:2009/10/01(木) 09:31:18
>55
ありがとうございます!
質問前に最初やってみたのですができなくて、今やり直してみたらできました!
なんでだろう…GETPIVOTDATAってなるから何か特別なことが必要なのかと思ってました。
57名無しさん@そうだ選挙にいこう:2009/10/01(木) 12:43:42
>>56

前年比をピボットで計算させることもできるよ。
58名無しさん@そうだ選挙にいこう:2009/10/01(木) 13:40:49
【1 OSの種類         .】 Windows XP Pro
【2 Excelのバージョン   】 Excel2003(出来れば2007でも使いたいです)
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可(貼り付けだけなら出来ます)
【5 検索キーワード     】 まだググってません
以前に印刷の際、指定したセルに連番を作りながら、印刷が出来るような下記のVBAを作って頂きました

Sub 連番印刷()
'
' 連番印刷 Macro
'
' Keyboard Shortcut: Ctrl+Shift+F
'
Dim i As Integer
For i = 1 To 4
Range("G12").NumberFormatLocal = "-00000"
Range("G12") = i
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
DoEvents
Next i

End Sub
5958の続き:2009/10/01(木) 13:42:30

しかし桁数と***の都合で
連番をアルファベットと数字で構成した4桁で繰り上げるように変更したいのですが、書いて頂けますか?
文字の順番は数字→アルファベット(逆でもOKです)です
0→1→2→3→4→5→6→7→8→9→A→B→C→D→E→F→G→H→I→J→K→L→M→N→O→P→Q→R→S→T→U→V→W→X→Y→Z→0→1
という感じで


0001→0002→・・・0009→000A→000B→000C・・という感じで
36×36×36×36=1,679,616種類を作れないでしょうか?

できれば
アルファベットで「I」と「O」は数字の「0」と「1」と誤認識する可能性がありますので
極力省きたいと思いますので、32×32×32×32=1,048,576種類の連番を作成します
しかしまとめて100万枚印刷は出来ないので、開始番号と終了番号を指定して印刷が出来るようにしたいです

開始「0000」 終了「00FZ」で512枚・・という感じです
60名無しさん@そうだ選挙にいこう:2009/10/01(木) 16:08:23
>58

Sub Macro1()

Dim myText As String
Dim i As Long
Dim myLength As Integer
Const myArray As String = "0123456789ABCDEFGHJKLMNPQRSTUVWXYZ"

myLength = Len(myArray)

For i = 1 To 512

myText = Mid(myArray, Int(i / (myLength ^ 3)) + 1, 1)
myText = myText & Mid(myArray, Int(i / (myLength ^ 2)) + 1, 1)
myText = myText & Mid(myArray, Int(i / (myLength ^ 1)) + 1, 1)
myText = myText & Mid(myArray, i Mod myLength + 1, 1)

With Cells(i, 1)
.NumberFormatLocal = "@"
.Value = myText
End With

Next i

End Sub
61名無しさん@そうだ選挙にいこう:2009/10/01(木) 17:51:48
【1 OSの種類         .】 Windows XP P
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 勉強中
【4 VBAでの回答の可否】 可 よろしくお願いします。

VBAで
= Application.WorksheetFunction.Average(Worksheets("sheet1").Range(Cells(1, 3), Cells(10, 3)))
のように average でC1からC10まで求めるやり方ははかりました、

A3、A6、A9、A12 「Cells(1,h*3)」 のような飛び飛びのセルを
average したいのですがどのようにすればよいですか?
教えてください。よろしくお願いします。
62名無しさん@そうだ選挙にいこう:2009/10/01(木) 18:05:22
>61

= Application.WorksheetFunction.Average(Cells(3, 1), Cells(6, 1), Cells(9, 1), Cells(12, 1))

>「Cells(1,h*3)」 のような

無茶言うなよw
63名無しさん@そうだ選挙にいこう:2009/10/01(木) 18:18:31
>>61
変数aとbを用意
fornextでstep3
a = a + cells(a,1)
b = b + 1
でa/b
もしかしたらコレクションを使えるかも知れないけど使え
いかも
64名無しさん@そうだ選挙にいこう:2009/10/01(木) 18:44:17
初心者スレで荒らされたのでこちらでお願いいたします

使用OS  XP
使用ソフトウェア  excel2007

問題点 ピボットテーブルについて
    範囲を指定して合計すると1行目がタイトル扱いになり
    計算に加えてくれません。
    1行目にタイトルを加えるのは複雑で大量になる為できません
    オプション設定のどこを触ったらよいのでしょうか?    
65名無しさん@そうだ選挙にいこう:2009/10/01(木) 20:33:29
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 否
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 Excell 文字 置き換え

A1で計算した答えによって、文字の置き換えをしたいのですが、どうやればいいのかわからないです。
例えば、計算した答えが1だった場合は「りんご」、2だった場合は「バナナ」、3だった場合は…
というような表示をしたいのですが、関数でできるのでしょうか?
66名無しさん@そうだ選挙にいこう:2009/10/01(木) 20:39:34
>65
A1セルには計算式があるんですよね?
では、りんごやバナナなどの文字はどのセルに表示したいんですか?
まさか「A1セルに」ではありませんよね?
67名無しさん@そうだ選挙にいこう:2009/10/01(木) 20:44:07
>>65
=IF(A1=1,"りんご",IF(A1=2,"バナナ",IF(A1=3,"うんこ","ゲロ")))
6865:2009/10/01(木) 20:44:53
>62
説明不足で申し訳ありません。
A1には計算式があり、答えは別のセル(A2とかA3)に表示させたいです。
6966:2009/10/01(木) 20:57:20
>65,68
了解。それから計算結果は何通りくらいあるんですか? 3通りなら>67さんのやり方でいいと思うけど
数十通りとかなったら別のセル範囲に 値 と 表示したい文字列 のリストを作っておいてMATCHと
INDEXで表引きした方がいいと思う。
7031:2009/10/01(木) 21:23:50
>>32
ありがd!!
できました。
7165:2009/10/01(木) 21:44:29
>>67
ありがとうございます。IFを使えばよかったんですね。
数通りの場合はこちらを使用します。

>>69
計算結果は2通りから、最大30通りぐらいまであります。
計算結果が多い時はMATCHとINDEXで表引きをすればいいのですか。
使用した事ないので使い方はわからないですが、ググって調べてみます。
ご丁寧にありがとうございました。
72名無しさん@そうだ選挙にいこう:2009/10/01(木) 23:50:13
>>56
EXCEL2003ではGETPIVOTDATAって関数が勝手に入る仕様になって、俺はちょっとうざいと感じた。

下記の方法で、普通の感覚の式が使えるようになるよ。
http://www11.plala.or.jp/koma_Excel/contents6/mame6045/mame604501.html
73名無しさん@そうだ選挙にいこう:2009/10/02(金) 00:04:54
>>65
質問の意図どおりの関数としては
=CHOOSE(A1,"りんご","バナナ","イチゴ","スイカ")
っていうのもある。

まあ、外にテーブル付くって>>69さんのようにするのがいいと思うけど
74名無しさん@そうだ選挙にいこう:2009/10/02(金) 08:52:56
【質問です】
EXCEL2003において、ワイルドカードが使える(使えない)代表的な関数一覧・・・ってどこかにありますか?
ぐぐったのですが、よく分からない・・・
もちろん、個別関数において「使える」「使えない」というのは調べられるのですが、一覧があると分かりやすい・・・と思って。
75名無しさん@そうだ選挙にいこう:2009/10/02(金) 09:54:53
>>74
使いたい関数ごとに調べるほうが良いと思うよ
ttp://www.eurus.dti.ne.jp/~yoneyama/Excel/kansu/itiran.html
「ワイルドカードが使える」と書いてない限り、使えないと思ったほうが良いかも

76名無しさん@そうだ選挙にいこう:2009/10/02(金) 11:06:18
質問です
エクセル2000から2007に変更したのですが、セルの塗りつぶしの
標準色セットが変わってしまっています
今までと同じ色で塗りつぶしたいのに、同じ色を探すだけで時間を取られます

2000と同じ標準色パレットを使用したいのですが、そのようなことはできますか?
77名無しさん@そうだ選挙にいこう:2009/10/02(金) 11:59:47
7858:2009/10/02(金) 12:42:24
>>60
回答ありがとうございます

1、実行してみましたが、A1から下に向かい連番がふれられていくだけです
前回のVBAの何処かに追加するのですか?

2、連番を入れるセルは何処でしていすれば良いでしょうか?

>For i = 1 To 512
ここが開始と終了ですね?
79名無しさん@そうだ選挙にいこう:2009/10/02(金) 13:22:03
>>77
ありがとうございます
ちょっと操作感は違いますが、以前と同じ色を入力できるようになりました

他にも挿入した図形が印刷したらシャギシャギになってたり
2007って2000や2003との互換性があまりないのでしょうか・・・
80名無しさん@そうだ選挙にいこう:2009/10/02(金) 13:28:16
>>79
ワードもエクセルも2007から内部構造が完全に変わった。xlsxファイルの拡張子をzipに変えてみるとわかるよ。
図形やグラフは互換性がとても低い。印刷するとずれたり大きさが変わったりする。
81名無しさん@そうだ選挙にいこう:2009/10/02(金) 14:28:13
>>80
なるほど・・・厄介ですね
周りがまだ2000〜2003だらけなので、戻した方がよさそうですね
82名無しさん@そうだ選挙にいこう:2009/10/02(金) 14:38:47
>78

それくらい応用してくれ。
83名無しさん@そうだ選挙にいこう:2009/10/02(金) 17:47:48
>>58 >>78

暇だったから作ってみた

Option Explicit

Const cBase As String = "0123456789ABCDEFGHJKLMNPQRSTUVWXYZ"
Dim BVCol As Collection

Sub 連番()
Dim lX As Long, lR As Long, lC As Long, st As Long, en As Long

Set BVCol = New Collection
For lX = 0 To Len(cBase)
BVCol.Add lX, Mid(cBase, lX + 1, 1)
Next lX

st = CValIndex("0000") ' 開始番号を「""」の中に記入
en = CValIndex("00FZ") ' 終了番号を「""」の中に記入
lR = 0
lC = 0
With Range("A1")
For lX = st To en
With .Offset(lR, lC)
.NumberFormatLocal = "@"
.Value = CTxtIndex(lX)
End With
' ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
DoEvents
lR = lR + 1 ' 行方向に書き込む場合、コメントブロック解除して
' lC = lC + 1 ' 列方向に書き込む場合、コメントブロック解除して
84名無しさん@そうだ選挙にいこう:2009/10/02(金) 17:49:09
>>83 の続き

' lC = lC + 1 ' 列方向に書き込む場合、コメントブロック解除して
Next lX
End With
End Sub

' 引数[index]で指定した数値を、[BVCol]で定義した文字列に変換する
Private Function CTxtIndex(ByVal index As Long) As String
Dim lX As Long, vT As Variant, tTxt As String, cTmp As Collection

Set cTmp = New Collection
lX = index
Do
cTmp.Add lX Mod (BVCol.Count - 1)
lX = Fix(lX / (BVCol.Count - 1))
Loop Until lX <= 0

For Each vT In cTmp
tTxt = Mid(cBase, vT + 1, 1) & tTxt
Next vT

If Len(tTxt) > 4 Then
tTxt = Right(tTxt, 4)
Else
Do Until Len(tTxt) >= 4
tTxt = "0" & tTxt
Loop
End If
CTxtIndex = tTxt
85名無しさん@そうだ選挙にいこう:2009/10/02(金) 17:50:08
>>84 の続き

End Function

' 引数[txt]で指定した文字列を、[BVCol]で定義した文字列で数値に変換する
Private Function CValIndex(ByVal txt As String) As Long
Dim lX As Long, lX2 As Long, lX3 As Long, stlX() As Long, stTmp As Long

ReDim stlX(1 To Len(txt))

txt = StrConv(txt, vbUpperCase)
For lX = 1 To Len(txt)
stlX(lX) = BVCol(Mid(txt, lX, 1))
Next lX

lX2 = UBound(stlX, 1) - 1
For lX = LBound(stlX, 1) To UBound(stlX, 1)
If lX2 < 1 Then
stTmp = stTmp + stlX(lX)
Else
stTmp = stTmp + (stlX(lX) * ((BVCol.Count - 1) ^ lX2))
End If
lX2 = lX2 - 1
Next lX
CValIndex = stTmp
End Function
86名無しさん@そうだ選挙にいこう:2009/10/02(金) 17:53:49
>>83-85 のコードを
同じ標準モジュールに順番にコピペすればOKだから
8758:2009/10/02(金) 19:26:08
>>82
すみません、コピペしかできません

>>82-85
ありがとうございました、明日試してみます
88名無しさん@そうだ選挙にいこう:2009/10/02(金) 20:37:48
こんばんは。質問です。よろしくお願いします。
エクセル2003です。VBA

VBAで、 
  A1:A100 で "月" と表示のあるもの    かつ
  range(cells(10,h*3),cells(100,h*3)) で0より大きいものを

  平均したいのですが、、、

sub k()

if  If Range("A1:A100") = "月" Then

この先がわかりません。教えてください。お願いします。
”〜かつ〜”のVBAでの表現法がわかりません。
 

89名無しさん@そうだ選挙にいこう:2009/10/02(金) 20:41:37
セルの中の文の特定の部分だけ塗りつぶしをかける方法はありませんか?

Excel2007です。
90名無しさん@そうだ選挙にいこう:2009/10/02(金) 22:09:12
質問です、お願いします

【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 文字列 自動で

商品の仕入れ履歴をエクセルで記録しています。
元々、なにかしらの準備をしておくことで
品目コードから、商品名を一つ右隣のセルに自動呼び出しすることは可能でしょうか?
(例)  コード   商品名    一箱収容数
    12512575  ○○○○     ▲▲▲
上の○と▲が自動で入力できるようなシートを作れれば嬉しいです。

91名無しさん@そうだ選挙にいこう:2009/10/02(金) 22:10:00
会社で使ってるファイルですが、=VLOOKUP(N8, $A:$FI, 3) と書いてありました。
この $A:$FI は、どういう意味でしょうか?
A1:FI20 なら分るんですが・・・
92名無しさん@そうだ選挙にいこう:2009/10/02(金) 22:21:58
>>91
A列からFI列を選択している。
おいらも行数が不定の場合はこうするよ
93名無しさん@そうだ選挙にいこう:2009/10/02(金) 23:21:23
>88
VBA質問相談所にも似たよう質問してませんか?で、何か条件が増えたような。

セルひとつづつ条件をチェックしていくしかないと思うけど。
まず、処理対象のセル範囲があやふや。
A1:A100の条件があるかと思うとrange(cells(10,h*3),cells(100,h*3))ということで10:100の範囲になってるし。
hの値が1から始まるならC、F・・・IU列(255列目 h=85)まであるんですか?
VBA質問相談所の方(レスbP5)を見ると
>A3、A6、A9、A12 「Cells(1,h*3)」 のような飛び飛びのセルを average したい
ってあるけど。ひょっとして10列目〜100列目ってこと?
VBEで CELLS( まで入力したら行と列の順序がわかりますよ。
9458:2009/10/03(土) 11:11:56
>>83
83・84・85の順番に張り付けて実行しましたが、A1から下に向かって連番が
振られていくだけで、印刷は出来ませんでした
95名無しさん@そうだ選挙にいこう:2009/10/03(土) 11:15:06
こんにちは。
エクセル2007って安いお店でいくら位でかえますか?
9683じゃないよ:2009/10/03(土) 11:19:42
>83の
' ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
の行は有効に('をはずす)してますよね?
9758:2009/10/03(土) 11:38:59
>>96
レスありがとうございます
(' )を削除して実行した結果、印刷はするのですが
A1に連番の指定した値がでて印刷→A2に次の連番が出てきて印刷になってしまいます
・・は指定したセルにだけ、違った連番が現れる毎に印刷にしたいです

ちなみにセルを指定する場合は
>With Range("A1")
のA1を変更すればいいんですよね?
98名無しさん@そうだ選挙にいこう:2009/10/03(土) 11:40:10
99RK:2009/10/03(土) 11:46:41
【1 OSの種類         .】 Windows Vista
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 可
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Excel 入力規則 VBA

例えばマスタとしてSheet2のA2以降に番号,B2以降に氏,D2以降に単価がある時
Sheet1のB6に入力規則を設定して、そのリスト選択で
Sheet1のB6に氏,C6に名,D6に時給を表示させることはできますか?
関数ではなくVBAでお願いします。
10096:2009/10/03(土) 12:29:42
>97
>83の
lR = lR + 1 ' 行方向に書き込む場合、コメントブロック解除して
をそのまま生かしているのなら、行方向にずれます。出力先固定ならば、コメント化すること。

出力セル位置(基準位置)の指定は >97 のとおりです。
10158:2009/10/03(土) 12:39:45
>>96
コメント化とはどうすればよいですか?
102名無しさん@そうだ選挙にいこう:2009/10/03(土) 12:41:45
>>101
'
103名無しさん@そうだ選挙にいこう:2009/10/03(土) 12:49:01
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 可
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 ピボット ゼロ 非表示

ピボットテーブルで、値がゼロのものは項目ごと表示させない方法はありますか?
ピボットテーブルの上からフィルターは使用したくないので他の方法があれば教えてください。
104名無しさん@そうだ選挙にいこう:2009/10/03(土) 13:23:02
>>103
少しだけ手作業してもいいなら、グループ化という方法がある。
まず、集計値でソートしておいて値ゼロを一ヶ所に集めて、
その項目を全部グループ化
そしてそのグループを非表示にする。
10583です:2009/10/03(土) 14:00:50
>>58
テンプレの3・4見てなかったよゴメン

暇だから作るけど
してほしい動作をもう少し詳しく

>>58のコード通りなら
セルG12に番号を入れる→印刷、でいいのか?

それと、違った連番が現れる毎に印刷したいって
連番の範囲を指定するときに、重複する範囲を指定する場合があるってこと?
106名無しさん@そうだ選挙にいこう:2009/10/03(土) 15:47:05
【1 OSの種類       .】 Windows XP Home
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか    .】 少々
【4 VBAでの回答の可否 】 可
【5 検索キーワード    】 任意の行数の挿入

下記VBA 「25行目から最初の上方向の空白行を選択」のつもり

Sub 空白行選択()

Const FirstRow = 25
Const LastRow = 2
Dim MyRow As Long

MyRow = FirstRow
Do Until Cells(MyRow, 2) = ""
MyRow = MyRow - 1
If MyRow < LastRow Then Exit Sub
Loop

Rows(MyRow & ":" & MyRow).Select
End Sub

ここまでは何とかできたのですが(合ってますよね?)
ここに、"25-(上記で検索した最初の空白行の行数)"の空白行をを挿入したいのですが、
どうすればいいのでしょう?
※上記で検索した最初の空白行の行数が 18であれば 25-18 = 7 行を挿入

よろしくお願いします。
107離島のサンデーPG:2009/10/03(土) 17:23:09
>>106
とにかくデータ行の下に25行の空白行を設けたいってことであってるのかな?
108106にあらず:2009/10/03(土) 17:57:29
横から失礼
>106さんがしたいのは、
25行目から上方向に検査を行い、最初に見つけた(B列の)空白セルのある行から25行目までに空白行を挿入したい
ということだと思います。
例えば、B25セルが空白だった場合は 25−25=0 で空白行の挿入は行われず、
    B24セルが空白だった場合は 25−24=1 で1行挿入する という具合。
109名無しさん@そうだ選挙にいこう:2009/10/03(土) 18:12:55
106です。

>>107さん 108さん ありがとうございます。
すいません。説明が言葉足らずでした。

シートには、2行目からN行目までデータが入力されています。
途中、不規則に空白行があります。

空白行から次の空白行までのデーターが、印刷時複数のシートに分割されないように
というのがそもそもの意図です。1シートのデーター入力行数が25です。

例 22行目 データー有り  23行目 空白行    24行目 データー有り
  25行目 データー有り  26行目 データー有り 27行目 空白行

  23行目(25行目から上方向の最初の空白行)に 25−23=2 行の空白行
  を挿入することによって、1枚目のシートは22行目までデーター有り、23〜25
  行目は空白行。2枚目のシートは(行挿入する前の)24行目から始まる。
  
意図したことは、上記のようなことです。よろしくお願いします。
110108:2009/10/03(土) 18:31:46
>109
>印刷時複数のシートに分割されないように
複数のページに分割されないようにして ということですね。

改ページを設定する方法じゃダメ? 行挿入したら計算式に影響ありませんか?(計算式があるのか知らないけど)
111名無しさん@そうだ選挙にいこう:2009/10/03(土) 18:45:06
106です。
>>108さん
「複数のシート」ではなく「複数のページ」でした。重ね重ねすいません。

「改ページを設定する」ってのは分かりませんです。そういう方法も
あるのでしょうか?

計算式の参照は行方向だけなので、行挿入しても問題ないと思います。
112108:2009/10/03(土) 20:23:06
>111
手作業での改ページはわかりますね?(メニュー−挿入−改ページ)
マクロの自動記録をしてみたら、次のようなコードができました。
※12行目を選択して改ページしたときの内容です。(当方はExcel2003です)

Rows("12:12").Select
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell
Range("A12").Select
こういうこともできるということで。
113離島のサンデーPG:2009/10/03(土) 20:23:29
>>106
連続データが30行(B2:B31まで)あったらどうすんのかな?
114離島のサンデーPG:2009/10/03(土) 20:29:57
> 1シートのデーター入力行数が25です。
あ、ごめん。よく読んでナカッタヨ。
115名無しさん@そうだ選挙にいこう:2009/10/03(土) 21:22:29
106です。
皆様 色々なコメント、ありがとうございます。私の質問自体に、誤りとあいまいな点がありました。
すいませんです。質問自体を訂正・整理して、もう一度UPします。
下記VBA 「25行目から最初の上方向の空白行を選択」のつもり

Sub 空白行選択()

Const FirstRow = 25
Const LastRow = 2
Dim MyRow As Long

MyRow = FirstRow
Do Until Cells(MyRow, 2) = ""
MyRow = MyRow - 1
If MyRow < LastRow Then Exit Sub
Loop

Rows(MyRow & ":" & MyRow).Select
End Sub

ここまでは何とかできたのですが(合ってますよね?)ここに、"25-(上記で検索した最初の空白行の行数)"
の空白行をを挿入したいのですが、 どうすればいいのでしょう?
※上記で検索した最初の空白行の行数が 18であれば 25-18 = 7 行を挿入
116名無しさん@そうだ選挙にいこう:2009/10/03(土) 21:23:37
シートには、2行目からN行目までデータが入力されています。 途中、不規則に空白行があります。
空白行から次の空白行までのデーターが、印刷時複数のページに分割されないように
というのがそもそもの意図です。1ページのデーター入力行数が25です。
例 22行目 データー有り  23行目 空白行    24行目 データー有り
  25行目 データー有り  26行目 データー有り 27行目 空白行

  23行目(25行目から上方向の最初の空白行)に 25−23=2(行)の空白行
  を挿入することによって、1枚目のぺージは22行目までデーター有り、23〜25
  行目は空白行。2枚目のページは(行挿入する前の)24行目から始まる。
意図したことは、上記のようなことです。よろしくお願いします。

>>108さん    手作業の改ページ

<12行目を選択して改ページしたときの内容です。(当方はExcel2003です)

Rows("12:12").Select
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell
Range("A12").Select >

12行目を選択の代わりに、Rows(MyRow & ":" & MyRow).Select とすればいいと言うことでしょうか?
117名無しさん@そうだ選挙にいこう:2009/10/03(土) 21:26:19
↑ すいません 106です。115の続きです。
118108:2009/10/03(土) 21:43:40
>116
12行目だけの 1行挿入 ならそうですが、106さんがしたいのは MyRow行から25行(こっちは固定)まで
の行挿入ではありませんか?
だから、
× Rows(MyRow & ":" & MyRow).Select
○ Rows(MyRow & ":" & 25).Select かと思う。
ただ、これだと25行目が空白だと25:25の1行挿入になってしまい、
"25-(上記で検索した最初の空白行の行数)" の空白行を挿入 と矛盾する(25−25=0で行挿入なし)。
検査は24行目から(上記コードもRows(MyRow & ":" & 24).Select)ではないのかな?
11991:2009/10/03(土) 21:45:50
>>92
ご回答ありがとうございました。
120名無しさん@そうだ選挙にいこう:2009/10/03(土) 21:50:58
>>104
おお、そういう方法もあるのか。
ありがとう
12149(再度質問):2009/10/03(土) 22:27:34
【1 OSの種類         】 WindowsXP
【2 Excelのバージョン 】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 EXCEL 外部プログラム起動

Excel 2007のハイパーリンクで、外部プログラムを起動していますが、
この外部プログラムに引数を渡したいと思っています。その引数の指定方法を教えていただけないでしょうか?

**.exe *** ***

と、スペースで引数を指定すると、" "が"%20"に変換されてしまい、うまく指定できません。
スペースをうまく指定する方法を教えてください。

宜しくお願いします。
122名無しさん@そうだ選挙にいこう:2009/10/03(土) 22:47:45
エクセルで確率を計算したいのですが、
20%の当たりを、5回連続ではずす確率は?
みたいな問題に対する式とかありますでしょうか。
123名無しさん@そうだ選挙にいこう:2009/10/03(土) 22:52:29
>122
20%の当たり なら 80%の外れ
5回連続で外れ なら 80%の5乗 でいいんじゃないですか?
124名無しさん@そうだ選挙にいこう:2009/10/03(土) 23:00:53
>>123
統計関数、の所を探していて混乱してました。
普通の計算ですね・・
ありがとうございます。
125名無しさん@そうだ選挙にいこう:2009/10/03(土) 23:05:16
宿題させんな
126名無しさん@そうだ選挙にいこう:2009/10/03(土) 23:47:26
>>106
1シートのデータ行数が25で固定なら
最初から印刷範囲を設定しておけばいいのでは?
また、改ページが自動で設定されるのがイヤなら
印刷プレビュー → 設定 → ページ設定の次のページ数に合わせて印刷で
横と縦をそれぞれ1に設定すればいい

それともこうゆう事?
・ある列(例えばA列)をチェックして
・空白行があればそこで区切り25行になるようにする
・それを2行目からN行目まで行うと
・1シートのデータ入力数じゃなく、1改ページ当りのデータ数が25
127:2009/10/04(日) 00:25:12
計算で例えばA1から順に1 10 100 1000ってなってて1と10の差(9) 10と100の差(90) 100と1000(900)の差それぞれのを一編に出す方法教えて下さい またこの計算が出来る関数はありますか??
128名無しさん@そうだ選挙にいこう:2009/10/04(日) 00:31:02
宿題させんな
129怐­怐:2009/10/04(日) 01:18:26
>>127
-を使うとよい
130:2009/10/04(日) 02:27:33
手順を教えてもらえません??(>_<。)
131名無しさん@そうだ選挙にいこう:2009/10/04(日) 02:37:42
B2に=A3-A2ていれて
下にフィルコピー
132名無しさん@そうだ選挙にいこう:2009/10/04(日) 10:37:24
106です。

>>118 ありがとうございます。
改ページはうまく行くのですが、印刷した時にデーターのある行までしか印刷できません。
最後の25行目まで(例えデーターが空白であっても)、罫線の枠組みだけでも印刷
に反映したいのですが・・・。

>>126さん ありがとうございます。
1シートのデーター行数は1〜N(多分100ぐらいまで)です。
シートには、2行目からN行目までデータが入力されています。 途中、不規則に空白行があります。
空白行から次の空白行までのデーターが、印刷時複数のページに分割されないように
というのがそもそもの意図です。1ページのデーター入力行数が25です。
例 22行目 データー有り  23行目 空白行    24行目 データー有り
  25行目 データー有り  26行目 データー有り 27行目 空白行

  23行目(25行目から上方向の最初の空白行)に 25−23=2(行)の空白行
  を挿入することによって、1枚目のぺージは22行目までデーター有り、23〜25
  行目は空白行。2枚目のページは(行挿入する前の)24行目から始まる。

よろしくお願いします。
133118:2009/10/04(日) 11:17:28
>132
手作業(もしくはVBA)での改ページしていませんか?
表示形式を通常から「改ページプレビュー」にしてみたらいいです。
改ページの解除はできますか?
それから、行挿入した部分は罫線はどうなってますか? 画面上で表示されていますか?
134>>126:2009/10/04(日) 12:43:31
>>132
印刷範囲は25行目で固定なの?

>例 22行目 データー有り  23行目 空白行    24行目 データー有り
>  25行目 データー有り  26行目 データー有り 27行目 空白行
この例だと、2枚目のページ(行挿入前の24行目)以降は印刷しないの?

135名無しさん@そうだ選挙にいこう:2009/10/04(日) 15:14:22
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 Excel 履歴書 作成

Excelで就職用の履歴書を作ろうとしているのですが、
ネット上でダウンロードできるものではなく、自分でそういったものを作りたいのです。
そういった表を作る上での丁寧な解説などがのったサイトはありませんか?
136名無しさん@そうだ選挙にいこう:2009/10/04(日) 15:16:46
就職できるかどうかはそこからすでにはじまってるんだよ
137135 ◆7M9CriKW0c :2009/10/04(日) 15:19:17
>>136
いやまあ、そういわれてしまうとそうなんですが…

一応、基本操作はマスターしています。
セルの結合とかやればうまくいくのかな、という気はするのですが。
138名無しさん@そうだ選挙にいこう:2009/10/04(日) 15:23:34
>>137
マスターしてるんならできるでしょうに
落ちてる奴改変すりゃすぐできるでしょ
139135 ◆7M9CriKW0c :2009/10/04(日) 15:25:52
>>138
うーむ…それもそうですね、
これも一つの勉強と思って頑張ってみます。
ありがとうございました。
140名無しさん@そうだ選挙にいこう:2009/10/04(日) 15:30:55
・いちから自分で作成できるかどうか
・ネットでテンプレートを検索して応用できるかどうか
・知人につくらせるだけの人脈があるかどうか

どれも無理なら就職は無理よ
141135 ◆7M9CriKW0c :2009/10/04(日) 15:45:37
今、手持ちの履歴書(PDF等ではなく実際の紙)
を参考に作成していますが、なんとか作れそうです。
背中を押してくれてありがとうございました。就職に向けて頑張ります。
142名無しさん@そうだ選挙にいこう:2009/10/04(日) 16:10:58
そういうのはワードで作れよ
143名無しさん@そうだ選挙にいこう:2009/10/04(日) 17:16:14
確かに・・・
エクセルよりはワードで作った方が自分の勉強になるよ
自分はワードだとどこかで爆発しそうだけど
144名無しさん@そうだ選挙にいこう:2009/10/04(日) 17:29:15
昨日隣のおばちゃんが10行くらいの文章Excelで作ってたわw
145名無しさん@そうだ選挙にいこう:2009/10/04(日) 20:54:29
>>143
ワードなんて別に勉強してまで使うもんじゃないでしょ。
ただのワープロだぞ。
146名無しさん@そうだ選挙にいこう:2009/10/04(日) 21:11:14
エクセル>ワードだな
大抵のものはエクセルで作ってるお
147名無しさん@そうだ選挙にいこう:2009/10/04(日) 21:19:15
会社ではワードはある程度使えないと、顰蹙なもんで・・・
自分もエクセルの方が楽だけどさ。
148名無しさん@そうだ選挙にいこう:2009/10/04(日) 21:23:03
>>146
>>147
あほか。文書作成ならワード>エクセルだろ。
常識。
149名無しさん@そうだ選挙にいこう:2009/10/04(日) 21:30:21
俺もエクセル派。エクセルで作る方が早いから
あと複数文書を1ファイルにまとめられるのもいい
数字やグラフが入るとエクセル必須だしな。
よくわからないけど団塊のおじさんは妙にワード使うのが上手い傾向がある
エクセルは全く使えないんだけどw
15058:2009/10/04(日) 21:32:44
>>105
親切な応対ありがとうございます
会社の伝票を会社のプリンターで発行したいのですが
以前に、まとめて500枚くらい印刷してしまうと、プリンターが、正常に動かなくなったことがありましたので・・
それと今回は、取引会社(VBA自体知らない人たち)にも手伝って貰うために、連番の範囲を指定した
ファイルを渡して印刷してもらう事にしました

詳しい動作
1、セル「G12」に連番を書き込み、異なる連番が現れる都度印刷される
2、範囲は 1TO 50 みたいに指定できたら楽です
3、伝票1枚に1つの連番が入り、重複する連番は指定しません

追加できたら
1、連番の先頭に−(ハイフン)を入れられますか?
2、数字→アルファベットの後に「#$%&\」等の記号も追加することは可能ですか?
151名無しさん@そうだ選挙にいこう:2009/10/04(日) 21:36:37
>>149
例えば5行の文章で2行目を修正したい時はどうするの?
152名無しさん@そうだ選挙にいこう:2009/10/04(日) 21:44:36
>150
追加の部分は セルの書式−ユーザー定義で好きなようにできますよ。

G12セルを選択した状態で 書式−セル−表示形式 で ユーザー定義 を選び、種類(T):の欄に
"!#$%&-"@
って指定してみてください。G12セルの内容の前に !#$%&- が付加されます。
15358:2009/10/04(日) 21:55:14
>>152
ハイフンの件はわかりました
!#$%&は
123456789ABCDEFGHJKLMNPQRSTUVWXYZ#$%&\
と言う感じで桁数を増やしたいと言う意味です、
(すみません言葉足らずでした)
154105:2009/10/04(日) 22:01:51
>>150
>2、範囲は 1TO 50 みたいに指定できたら楽です
これは、1〜50て指定したら0001〜001Gてなるようにて事?
どっちか決めてもらった方が作りやすい

>連番の先頭に−(ハイフン)を入れられますか?
>数字→アルファベットの後に「#$%&\」等の記号も追加することは可能ですか?

可能か不可能かでいえば可能だよ
追加する記号が固定なら簡単だし、変化するならその条件が判らないと無理
15558:2009/10/04(日) 22:14:33
>>105
レスありがとうございます
1〜50と設定したら
0000〜001Gがでる様にしてください。

先頭の「-(ハイフン)」もお願いします。

「#$%&\」の4つの記号もお願いします。


156名無しさん@そうだ選挙にいこう:2009/10/04(日) 22:31:05
なんなの?この人↑
15758:2009/10/04(日) 22:51:40
>>156
何度もおじゃましてすみません
自分の中でも仕様が上手くまとまっていなくて
ご迷惑をおかけします
158名無しさん@そうだ選挙にいこう:2009/10/04(日) 23:32:23
↑誰も相手にすんな。
159名無しさん@そうだ選挙にいこう:2009/10/04(日) 23:41:32
105がやってくれるんならいいんじゃないか?
俺はゴメンだが
160名無しさん@そうだ選挙にいこう:2009/10/04(日) 23:41:46
106です。
>>133 >>134 さん ありがとうございます。皆様のアドバイスを参考に、色々やってみた結果
下記のVBAで、何とかなりそうです。

Sub 空白行選択()

Const FirstRow = 25
Const LastRow = 2
Dim MyRow As Long

MyRow = FirstRow
Do Until Cells(MyRow, 2) = ""
MyRow = MyRow - 1
If MyRow < LastRow Then Exit Sub
Loop

If MyRow = 25 Then
Range("A26").Select

Else
Rows(MyRow & ":24").Select
Selection.Insert Shift:=xlDown
Range("A26").Select

End If
End Sub

ありがとうございました。
161105:2009/10/05(月) 00:36:37
>>155 できたよ
Sub 連番2()
Dim lX As Long, sTmp As String, st As Long, en As Long, isChekOK As Boolean

Set BVCol = New Collection
For lX = 0 To Len(cBase)
BVCol.Add lX, Mid(cBase, lX + 1, 1)
Next lX

isChekOK = False
Do
Do
sTmp = StrConv(InputBox("連番の開始する数値を入力してください", "開始値の入力"), vbLowerCase)
If sTmp = "" Then
If vbNo = MsgBox("数値が入力されていません" & vbCrLf & _
"再入力しますか?", vbYesNo + vbInformation, "確認") Then
Set BVCol = Nothing
Exit Sub
End If
ElseIf Not IsNumeric(sTmp) Then
If vbNo = MsgBox("入力された値が数値として認識できません" & vbCrLf & _
"再入力しますか?", vbYesNo + vbInformation, "確認") Then
Set BVCol = Nothing
Exit Sub
End If
End If
Loop While sTmp = ""
st = CLng(sTmp)
162105:2009/10/05(月) 00:38:02
>>161 の続き

Do
sTmp = StrConv(InputBox("連番の終了する数値を入力してください", "終了値の入力"), vbLowerCase)
If sTmp = "" Then
If vbNo = MsgBox("数値が入力されていません" & vbCrLf & _
"再入力しますか?", vbYesNo + vbInformation, "確認") Then
Set BVCol = Nothing
Exit Sub
End If
ElseIf Not IsNumeric(sTmp) Then
If vbNo = MsgBox("入力された値が数値として認識できません" & vbCrLf & _
"再入力しますか?", vbYesNo + vbInformation, "確認") Then
Set BVCol = Nothing
Exit Sub
End If
End If
Loop While sTmp = ""
en = CLng(sTmp)

If st > en Then
If vbNo = MsgBox("開始値より終了値の値が小さい場合の連番は作成できません" & vbCrLf & _
"再入力しますか?", vbYesNo + vbInformation, "確認") Then
Set BVCol = Nothing
Exit Sub
End If
Else
isChekOK = True
End If
Loop Until isChekOK
163105:2009/10/05(月) 00:40:28
>>162 の続き

With Range(cIDCell)
For lX = st To en
.NumberFormatLocal = "@"
.Value = CTxtIndex(lX)
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
DoEvents
Next lX
End With
End Sub

' 引数[index]で指定した数値を、[BVCol]で定義した文字列に変換する
Private Function CTxtIndex(ByVal index As Long) As String
Dim lX As Long, vT As Variant, tTxt As String, cTmp As Collection

Set cTmp = New Collection
lX = index
164105:2009/10/05(月) 00:42:31
>>163 の続き

Do
cTmp.Add lX Mod (BVCol.Count - 1)
lX = Fix(lX / (BVCol.Count - 1))
Loop Until lX <= 0

For Each vT In cTmp
tTxt = Mid(cBase, vT + 1, 1) & tTxt
Next vT

If Len(tTxt) > cBaseN Then
tTxt = Right(tTxt, cBaseN)
Else
Do Until Len(tTxt) >= cBaseN
tTxt = "0" & tTxt
Loop
End If
CTxtIndex = cTopID & tTxt
End Function
165105:2009/10/05(月) 00:45:12
>>161-164
のコードを新しい標準モジュールにコピペしてくれ
166105:2009/10/05(月) 01:43:21
これを忘れてた
↓のコードの後に>>161-164をコピペしてくれ

Option Explicit
'↓連番を入力するセルアドレス
Private Const cIDCell As String = "G12"
'↓連番の先頭に付け足す文字列
Private Const cTopID As String = "-"
'↓変換に使用する文字列リスト
Private Const cBase As String = "0123456789ABCDEFGHJKLMNPQRSTUVWXYZ#$%&\"
'↓連番の桁数[0000]なら4
Private Const cBaseN As Long = 4
Private BVCol As Collection
167離島のサンデーPG:2009/10/05(月) 02:29:32
>>160
解決したようだが、別解として。
Sub 空白行選択02()
Dim MyCnt As Long
For MyCnt = 25 To 2 Step -1
If Cells(MyCnt, 2).Value = "" Then
If MyCnt = 25 Then Exit For
Rows(MyCnt & ":24").Insert Shift:=xlDown
Exit For
End If
Next MyCnt
Range("A26").Select
End Sub
16858:2009/10/05(月) 09:06:51
>>105
ありがとうございます、無事に印刷ができました
169名無しさん@そうだ選挙にいこう:2009/10/05(月) 10:12:35
取引会社に >161〜166 のマクロを入れて渡すのは
どうかと思うけどなあ、他人事だからどうでもいいけど。
170名無しさん@そうだ選挙にいこう:2009/10/05(月) 12:31:23
>58 解決したようだけど一応
Sub hoge()
  Dim Ary39(39) '配列に対応文字格納
  For i = 0 To 9: Ary39(i) = Chr(i + 48): Next
  For i = 10 To 17: Ary39(i) = Chr(i + 55): Next
  For i = 18 To 22: Ary39(i) = Chr(i + 56): Next
  For i = 23 To 33: Ary39(i) = Chr(i + 57): Next
  For i = 34 To 37: Ary39(i) = Chr(i + 1): Next
  Ary39(38) = "\"
  Cells(12, "G").NumberFormatLocal = "@"

  Dim TmpStr, SrcNum, StartNum, EndNum
  StartNum = Cells(1, "A") '開始値がA1にあると仮定
  EndNum = Cells(1, "B") '終了B1と仮定、エラー処理略
  For i = StartNum To EndNum
    TmpStr = "": SrcNum = i
    For j = 1 To 4 '条件により4桁固定
      TmpStr = Ary39(SrcNum Mod 39) & TmpStr
      SrcNum = Int(SrcNum / 39)
    Next j
    Cells(12, "G") = "-" & TmpStr
    ActiveSheet.PrintOut
  Next i
End Sub
171名無しさん@そうだ選挙にいこう:2009/10/05(月) 14:26:39
エクセル2003です

今セルに入っている数字(金額)の表示を、たとえば
1,234,567

1,234 (千円台) や 123 (万円台)
に変更することはできますか?
元の値を弄らずに、表示だけを変更したいのですが・・・
172名無しさん@そうだ選挙にいこう:2009/10/05(月) 14:56:53
質問なのですが、マイクロソフトオフィススペシャリスト講座を
募集しているパソコン教室があるのですが、一ヶ月短期間コース
というのは一体どんなカラクリがあるのでしょうか?
初心者を集めてます。
173名無しさん@そうだ選挙にいこう:2009/10/05(月) 15:39:16
>>171
ttp://www.relief.jp/itnote/archives/000167.php

もしくは excel 表示形式 千円 とかでググってみな
174名無しさん@そうだ選挙にいこう:2009/10/05(月) 15:44:11
>>172
自習
175名無しさん@そうだ選挙にいこう:2009/10/05(月) 17:48:11
>>172
テストの傾向に対して暗記させるだけ
ここの連中でも傾向知らずに受けると落ちると思う
176名無しさん@そうだ選挙にいこう:2009/10/05(月) 17:49:36
一応補足しておくと、それが悪いって言ってるんじゃないよ
ただ正直、ちょっと気に食わないというのはあるがね
177名無しさん@そうだ選挙にいこう:2009/10/05(月) 20:28:18
A1〜A100に果物名が入ってるとします。

B列に重複なしに、一意の果物リストをつくる関数を教えて下さい。
178名無しさん@そうだ選挙にいこう:2009/10/05(月) 20:31:58
>>177

一意のリストを作ったらその後どうしたいの?
179名無しさん@そうだ選挙にいこう:2009/10/05(月) 20:35:55
>>178
果物の金額合計
180名無しさん@そうだ選挙にいこう:2009/10/05(月) 20:36:56
>>179

ピボットテーブル知ってる?
181名無しさん@そうだ選挙にいこう:2009/10/05(月) 20:49:47
>>180
知ってる。
182名無しさん@そうだ選挙にいこう:2009/10/05(月) 21:00:55
シートを追加してリネームするマクロなんですが、今月だったら "OCT 09"(OCTは全て大文字) に
するには、???にどう書けばいいですか?

Sheets.Add.Name = ??? & " " & Right(Format(Date, "yyyy"), 2)
183名無しさん@そうだ選挙にいこう:2009/10/05(月) 21:01:35
ピボットテーブルを作れば、一意なリストの作成と金額の合計がいっぺんにできるよ!
184名無しさん@そうだ選挙にいこう:2009/10/05(月) 21:07:44
>>182
俺ならこう書くけど、

Sheets.Add.Name = UCase(Format(Date, "mmm yy"))

どうしてもその式の???を埋めるような方法じゃなきゃだめ?何かの練習問題?
185182:2009/10/05(月) 21:19:26
>>184
練習問題じゃないです。
Oct 09なら出来たので、OCTのとこだけ聞いたつもりでしたが、そちらの方が
スッキリしてていいですね。ありがdございました(ペコッ
186名無しさん@そうだ選挙にいこう:2009/10/06(火) 16:28:16
質問です。

【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 Excel 開始位置

保存したファイルを開いたときに
普段なら保存した時のセルから開始されると思うのですが
なぜか違う場所から(シートもセルも)開始されてしまいます。

なぜでしょうか?
187名無しさん@そうだ選挙にいこう:2009/10/06(火) 16:55:41
エクセルについて質問です。お願いいたします。

エクセルファイルが3つあるとします。A、B、Cとします。
それぞれのファイルのあるシートだけコピーして、新しいエクセルファイル
を作成する方法はないでしょうか?

つまり、エクセルファイルAのシート2のみを、新しいエクセルファイルDを作成し
ここにコピーする。エクセルファイルBのシート3のみをエクセルファイルDに、
エクセルファイルCのシート1を、エクセルファイルDへコピーする。

という方法はないでしょうか?
エクセルファイルAを、新しいファイルにコピペすると、セルのサイズなどを
もう一度あわせないといけなくて、非常に不便なんです。セルの形ごと
コピーできればいいんですが。
188名無しさん@そうだ選挙にいこう:2009/10/06(火) 17:11:39
>>187
シート名の所右クリックして出るメニューのコピー使えばいいんじゃね?
189名無しさん@そうだ選挙にいこう:2009/10/06(火) 17:14:41
新規ブックにコピーだな
190187:2009/10/06(火) 17:37:45
簡単にできました
ありがとうございました
191名無しさん@そうだ選挙にいこう:2009/10/06(火) 18:25:56
列幅コピペてのもあるけどね
192名無しさん@そうだ選挙にいこう:2009/10/06(火) 18:32:45
2003、別シートのA1セルの値を参照させたいのですが
どうしたらいいでしょうか
193名無しさん@そうだ選挙にいこう:2009/10/06(火) 18:39:54
>>192
=別シート!A1
194名無しさん@そうだ選挙にいこう:2009/10/06(火) 19:40:33
>>193
おお、できました
ありがとうございます
195名無しさん@そうだ選挙にいこう:2009/10/06(火) 22:39:59
随分低レベルな質問になったな。
196名無しさん@そうだ選挙にいこう:2009/10/06(火) 22:49:41

   ̄ヽ、   _ノ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     `'ー '´        
      ○        
       O       
        o  
         。
            ,,,,,,---ー---、、、
          ,.-'";:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:ヽ、
        ,,.;;;::;:;:;:;::;;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;!i`ヽ
      /;:;:;:;:;:;:;:;:;:;:;:;:!!!!!!!!!''""":::;!!!!ノヾ;:;:\
     /;:;:;:;:;:;:;:;:;::!!''"           !;:;:;:;:;ヽ        と
     |;:;:;:;:;:;:;:!'"              ヽ;:;:;:;ヽ       思  
     |;:;:;:;i''"                 i!;:;:;:;|       う 
     |;:;:;:;|                  ヾ;:;:;:|       亀 
     |;:;:;:;|    ,,,;;:iii;;;;;    ,.-==--、. `!;:;|ヽ      井   
      〉;:;:| ,.-''" ̄ ̄ ̄`ヽ⌒|  --。、-、 ヽ-`' |      で 
     i `u i -‐'"ヾ'"  :: ::!      : |  ノ       あ 
      i   |       ノ   ヾ、___ノ  ::|       っ
      | |  ヽ、__,.-i     i 、    :  :|       た
       | |  :   : '" `〜ー〜'" ヽ : :   ::|        
       `i   ヾ '    ____  ;:  ;: :|       
        \     -‐'''"~ ̄ ̄ ̄ ̄  ;  ;: :/-、_      
         ヾ: : .   ` " " "    ,./    `ー-、
        ,,,--'\: :          ,. ,.イ
    _,.-‐'"    |`ヾ;:;:ヽ....、 : : :   / !
_,.--‐'"        |  `ー、;:;:;:;:;:;:;:;:;:;:,.-''"  |
            |   `>ー‐<    /
             !  /    ,.'"\  !
             | /~i   /   `/
197名無しさん@そうだ選挙にいこう:2009/10/06(火) 23:00:08
やめろw
198名無しさん@そうだ選挙にいこう:2009/10/07(水) 12:13:42
>>177
猿並みの式なら
=INDEX(A:A,SMALL((MATCH(A$1:A$100&"",A$1:A$100&"",)<>ROW(A$1:A$100))*1000+ROW(A$1:A$100),ROW(A1)))&""
と打ってCtrl + Shift + Enterだったっけか。
ちょっち違うかな?
199名無しさん@そうだ選挙にいこう:2009/10/07(水) 19:50:05
A3セルに10/7と入れたら、B3セルに2009/09/01と表示させるには
どう書けばいいでしょうか?
200名無しさん@そうだ選挙にいこう:2009/10/07(水) 20:07:30
>199
10/7 と 2009/09/01 はどこがどう対応するんでしょうか?
10/7 と入れたら 2009/10/7 なら話はわかるんですが(というか自動的に日付とみなしてこうなる)。
201名無しさん@そうだ選挙にいこう:2009/10/07(水) 20:11:31
>>199
どういう関連性があるんだ?
先月の月はじめなら
=A1-DAY(A1)-DAY(A1-DAY(A1))+1
=DATE(YEAR(A1),MONTH(A1)-1,1)
とかかな?
色々方法はあるだろうな。
202名無しさん@そうだ選挙にいこう:2009/10/07(水) 20:17:54
>>199
単純で良いなら、
B3セル  =IF(A3="10/7","2009/09/01","")
203202:2009/10/07(水) 20:24:19
↑ただしこれはA3セルの書式設定を文字列とかに変えないとダメなようです
204199:2009/10/07(水) 21:05:03
あぁぁ、、、 素直に書けばよかったかもw
=today() なんだけど、先月の1日をyyyy/mm/dd形式で表示させたいんです。
205199:2009/10/07(水) 21:07:51
>>201
=A1-DAY(A1)-DAY(A1-DAY(A1))+1 だと、1 になりました。

=DATE(YEAR(A1),MONTH(A1)-1,1) だと、#NUM! になりました。
206名無しさん@そうだ選挙にいこう:2009/10/07(水) 21:13:45
連投すんません。

yyyy/mm/dd形式 じゃなくて、yy/mmm形式で、09/SEPにする でした。
207名無しさん@そうだ選挙にいこう:2009/10/07(水) 21:18:57
>>205
=DATE(YEAR(A3),MONTH(A3)-1,1)
じゃねーの
A1とA3を間違えてるんだろう
208199:2009/10/07(水) 21:30:36
>>207
できました。
209名無しさん@そうだ選挙にいこう:2009/10/07(水) 21:30:50
別に間違えたわけじゃないよ。
A1で質問するのが普通だからそう書いたまで。
A1をA3に直すことくらい自分で気がつかないのかな。
210名無しさん@そうだ選挙にいこう:2009/10/07(水) 21:35:16
どんな言い訳してもそれは間違いだろw
>A1をA3に直すことくらい自分で気がつかないのかな。
気が付かない初心者なんだろうに
なんで上から目線なの?アホなの?
211名無しさん@そうだ選挙にいこう:2009/10/07(水) 21:39:06
>A3セルに10/7と入れたら、B3セルに

どう読んでもA1には見えんがなwww
212名無しさん@そうだ選挙にいこう:2009/10/07(水) 21:40:07
>>209
最近よく見かける恥の上塗りの人か
大人なら素直に間違いを認めようぜ
誰だって間違いはするんだ
完璧な人間なんて居ないのさ
213名無しさん@そうだ選挙にいこう:2009/10/07(水) 21:48:19
「あっ間違ったゴメン」 とかって書けばすむことなのにw
214名無しさん@そうだ選挙にいこう:2009/10/07(水) 22:31:43
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 cell("address INDIRECT

例えばD20に、
=CELL("address",C10) 
のような式を入れてそのセルには「$C$10」と返してもらっています。

で、MINやMAXの式で範囲の片方をその返してもらった「$C$10」の番地そのものを使い
たいんですがそのままMIN(D20,・・と入力しても$C$10の中味を参照しにいってしまって
うまくできません。

この場合D20の頭に何を付ければ良いですか?

よろしくお願いします。
215名無しさん@そうだ選挙にいこう:2009/10/07(水) 22:58:08
>>214
>$C$10の中味を参照しにいってしまって
の意味がよく分からなかったけど、やりたいことは
=MIN(INDIRECT(D20), 10, 20, 15)
みたいなことかな・・・
216214:2009/10/07(水) 23:25:05
>>215
ありがとうございます、その通りです。
ちょっと勘違いしてました、カンマ使ってて範囲が指定されなくておかしいなと・・orz

無事うまくいきました。
217名無しさん@そうだ選挙にいこう:2009/10/07(水) 23:25:05
まーた偏執狂がいるなw
218名無しさん@そうだ選挙にいこう:2009/10/07(水) 23:32:45
>>199はいくらなんでもネタだろうよ。
219名無しさん@そうだ選挙にいこう:2009/10/07(水) 23:33:34
>>199じゃなくて>>205
220名無しさん@そうだ選挙にいこう:2009/10/07(水) 23:52:52
205はネタじゃないぞ
A3に10/7、B3にその数式を入れてみろ
221名無しさん@そうだ選挙にいこう:2009/10/07(水) 23:56:09
アホでつか?
222名無しさん@そうだ選挙にいこう:2009/10/08(木) 09:54:29
つぎいこ、つぎ。
223名無しさん@そうだ選挙にいこう:2009/10/08(木) 13:44:35
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 データ順序 変更

積み上げタイプのグラフについての質問です。
データ順序を変更すると、その順序が全ての系列に反映されますが、
これを1系列ごとに変更することって可能でしょうか?
http://www.aoten.jp/snack/excel/s4_10.html
この頁で言いますと、4月は札幌が一番下、5月は福岡が一番下・・・みたいに
それぞれの月で数量の多い順に並べたいわけです。
可能でしょうか?
224名無しさん@そうだ選挙にいこう:2009/10/08(木) 14:56:06
なんかどっかで見たような質問だな
225名無しさん@そうだ選挙にいこう:2009/10/08(木) 17:49:50
>>223
たぶん、できないと思う
226名無しさん@そうだ選挙にいこう:2009/10/08(木) 20:54:08
【1 OSの種類         .】 Windows xp
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 時間処理

2009/1/1、1:00



のように日にちと時間が別セルにある時に、
すべての時間を6時間進めるのはどうすれば良いでしょうか?
よろしくお願いします。
227名無しさん@そうだ選挙にいこう:2009/10/08(木) 21:00:23
=A1+6/24
228名無しさん@そうだ選挙にいこう:2009/10/08(木) 21:05:55
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 おk
【5 検索キーワード     】 for each アスタリスク ファイル名 を含む

マクロを書いたブックの他に、”売上”という文字を含むファイル名のブックが
開いてたら動作するのを作ってるんですが、"*売上*" がダメっぽいので
何て書けばいいのか教えてください。

Sub test()
Dim WB, WB1
 For Each WB In Workbooks
  If WB.Name = "*売上*" Then
   WB1 = WB.Name
  End If
 Next

 If WB1 = "" Then
  Exit Sub
 End If
 
End Sub
229名無しさん@そうだ選挙にいこう:2009/10/08(木) 21:12:51
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 貼り付け 参照

シート1にマスターデータみたいに全部のデータが
A        B
JAN     商品名
49067・・・・  まんじゅう



みたいにあって
シート2に 
JAN 
49068・・

みたいにマスターデータ内のJANだけが飛び飛びで並んでるんですけど
JANの隣のセルにマスターデータから商品名を参照して貼り付けるにはどんな関数でどんな数式つかえばいいですか?
JANの隣のセルにに
230名無しさん@そうだ選挙にいこう:2009/10/08(木) 21:19:27
>>226
A1=2009/1/1 ,B1=1:00  という場合、
A2 =IF(DAY(B1)=DAY(B2),A1,A1+1)
B2 =B1+6/24
で下方へコピー
231名無しさん@そうだ選挙にいこう:2009/10/08(木) 22:38:30
>>226
どこかのセルに6:00と打って、コピー、形式を選択して貼り付けから加算でOK
232名無しさん@そうだ選挙にいこう:2009/10/08(木) 22:41:44
なんだ日付と時刻が別セルか。
上は駄目だな。
同じセルに日付と時刻をまとめてから6時間を足すのが簡単だな。
233227:2009/10/08(木) 22:52:00
>.232

俺もそこは気が付かなんだw

>226

別セルで日付の繰り上がりもしたいのか?
簡単だが説明するのがメンドクサイ。

あと本当にそのキーワードで検索したのか?
それでHitしたサイトの解説が分からないの
ならアキラメロン(AA略
234名無しさん@そうだ選挙にいこう:2009/10/08(木) 22:57:01
【1 OSの種類         .】 WindowsXP SP2
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 Excel 重複


2つの列から重複しているデータを抜き出すにはどうしたら良いでしょうか?

例えば、

 A       B
中村俊輔  長谷部誠
中村憲剛  中村俊輔
遠藤保仁  本田圭祐
長谷部誠  今野泰幸
稲本潤一  中沢祐二

とあったら、

「中村俊輔」と「長谷部誠」を抽出する感じです。
フィルタオプションの設定からやってもうまくいきませんでした。
よろしくお願いいたします。
235228:2009/10/08(木) 23:10:19
ググって自己解決しました。
236名無しさん@そうだ選挙にいこう:2009/10/08(木) 23:19:48
>>234
その検索キーワードでググって解決しない理由がわからないのだが。

例えば、
C1=IF(COUNTIF(B:B,A1),ROW(),"")
D1=INDEX(A:A,SMALL(C:C,ROW()))
237名無しさん@そうだ選挙にいこう:2009/10/08(木) 23:35:46
>>226
A1=2009/1/1
B1=1:00
C1=6時間後の日付
D1=6時間後の時刻

としたい場合

C1の数式=A1+B1+"6:00"
D1の数式=A1+B1+"6:00"
C1の表示形式 yyyy/m/d
D1の表示形式 h:mm
238名無しさん@そうだ選挙にいこう:2009/10/09(金) 00:58:31
>>229
Sheet1にマスター、Sheet2のA2に49067とかあるなら、となりのB2に
=VLOOKUP(A2,Sheet1!A:B,2,0)
みたいでどお?
239名無しさん@そうだ選挙にいこう:2009/10/09(金) 01:09:16
>>234
2つの列の項目名を同じにしてから、フィルタオプションの設定

名前 名前
中村俊輔 長谷部誠
中村憲剛 中村俊輔
遠藤保仁 本田圭祐
長谷部誠 今野泰幸
稲本潤一 中沢祐二

リスト範囲 $B$1:$B$6
検索条件範囲 $A$1:$A$6
みたいにすればB列に中村と長谷部が出る。
240名無しさん@そうだ選挙にいこう:2009/10/09(金) 08:01:33
>>239
分ってるとは思うが、それはExcel2002でしか通用しないよ。
しかもデータが少ないときだけだな。

2003とかなら稲本潤一と稲本潤一朗とかで前方一致で不具合が出るから、検索条件範囲のデータを
'=中村俊介
'=中村憲剛
'=遠藤保仁
'=長谷部誠
'=稲本潤一
としないと。
241名無しさん@そうだ選挙にいこう:2009/10/09(金) 08:23:23
>>226に関しては誤差対策無しで大丈夫かなぁ。
242名無しさん@そうだ選挙にいこう:2009/10/09(金) 08:35:30
241だが、時間だけ進めるなら>>230>>237で大丈夫みたいだな。
何時間何分進めるとかなら誤差対策が必要そうだが。
243名無しさん@そうだ選挙にいこう:2009/10/09(金) 08:40:31
>>240
作業列に="="&A2などとして、その作業列を検索条件範囲にすればよさそうだね。
244名無しさん@そうだ選挙にいこう:2009/10/09(金) 10:28:28
>>226
a1+b1-int(b1)+6/24
でいいんじゃないのか
245名無しさん@そうだ選挙にいこう:2009/10/09(金) 13:05:20
>>243
そういうことだね。
246名無しさん@そうだ選挙にいこう:2009/10/09(金) 15:32:14
各列ごとに、同時に複数の列を挿入することはできますか?
247名無しさん@そうだ選挙にいこう:2009/10/09(金) 16:04:19
最近は頭がうまく働かないという人が多いな。

どうも空気中のオゾンの濃度が上昇してるようで、これが原因みたいなんだな。
オゾンの濃度が上昇すると、人間の呼吸機能が害される。人間の呼吸器の機能が
低下すると、体内に取り込まれる酸素の量が減少する。すると脳にまわる酸素が
不足するようになって、脳の機能が低下する。脳の機能が低下すると頭が疲れやすく
なり、文字とかをたくさん読んだり書いたりすることが難しくなってきたりするし、複雑な
思考をすることも難しくなるんだな。
ちなみに一酸化炭素の致死濃度は1500ppmに対し、オゾンの致死濃度は50ppmで、
単純計算でオゾンの毒性は一酸化炭素の30倍強い。
http://www.showaboss.co.jp/sub2-safety02.htm
http://ja.wikipedia.org/wiki/%E4%B8%80%E9%85%B8%E5%8C%96%E7%82%AD%E7%B4%A0

生活環境基準では0.05ppm(50ppb)が安全基準の上限なんだが、実際にはこの基準を
超える地域というのが最近は結構多い。
http://www.jamstec.go.jp/frcgc/gcwm/jp/japan.html

このオゾン濃度が上昇する原因なんだが、最近はバイオ燃料を自動車で使うことが
原因として指摘されたりしている。
http://tvert.livedoor.biz/archives/50893079.html
http://wiredvision.jp/blog/wiredscience/200706/20070606133755.html

通常のガソリン・軽油は炭素と水素原子だけで構成されるんだが、バイオ燃料(バイオエタノール)の
場合、酸素原子も燃料に含む。そしてその酸素原子がエンジンが吸入する空気中の酸素分子と
結合してオゾン(O3)になるのが原因ではないかと言われている。
248名無しさん@そうだ選挙にいこう:2009/10/09(金) 16:18:06
>>246
できない
249名無しさん@そうだ選挙にいこう:2009/10/09(金) 19:51:02
>>246
列を挿入するんじゃなくて、並び替え使えば出来る。
作業行に連番振って、その連番を右に必要回数コピーして
その作業行をキーにして列単位で並び変えればOK。
最後に作業行を消せばよい。
250名無しさん@そうだ選挙にいこう:2009/10/09(金) 20:10:22
>>248
>>249
ありがとうございます
解決しました。
251名無しさん@そうだ選挙にいこう:2009/10/09(金) 22:06:00
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 ちょっとだけ
【4 VBAでの回答の可否】 可

以下のようなデータで、2行目がタイトル行になっておりオートフィルタが掛かっています。
オートフィルタでB列から0.0000を抽出、D列が0より大きいものを抽出したとき、DとEの値を
BとCへコピペしたいのですが、3行目しかうまくコピペできません。
マクロでやってますが、どうすればいいでしょうか?

   A     B      C      D      E
3  U$   0.0000   0.0000   0.0175   0.0175
4  U$   0.0000   0.0000   0.0000   0.0000
5  U$   0.0282   0.0282   0.0293   0.0293
6  U$   0.0000   0.0000   0.0155   0.0155
7  U$   0.0135   0.0135   0.0135   0.0135


ちなみに、今はForで全ての行をIfで分岐して条件に合致したらコピペ・・・をやってますが、
データ量が多いため、オートフィルタの方法で試してみたいと思っています。
252名無しさん@そうだ選挙にいこう:2009/10/09(金) 22:06:39
エクセル2007で列を挿入しようとすると、オブジェクトがはみ出しますとか出て、
挿入できないんです。
いままでエクセル2000使ってたから、使いにくくて仕方がありません。
どなたか対処法を知っている方見えましたら教えてください。
253名無しさん@そうだ選挙にいこう:2009/10/09(金) 22:19:20
表のいちばん右の列から右端の列までを選択して削除
254名無しさん@そうだ選挙にいこう:2009/10/10(土) 10:35:14
>>251
それはオートフィルタの仕様っぽい
コピーだと非表示のところがコピーされないため、>>251の通り貼り付けると
B3:C4の位置に貼り付けられる。表示されているセルを上に詰めてコピーされてるのかな
ttp://www.moug.net/tech/exvba/0050104.htm
を見る限り有効な方法は思いつかない。

強いて言うならコピー貼り付けでなく
range("a1").value=range("b1").value
みたいにすると値を簡単に移せる

後は配列を覚えるといいかも。
255名無しさん@そうだ選挙にいこう:2009/10/10(土) 11:05:06
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 コピペのみ
【4 VBAでの回答の可否】 可

次のように規則的に3カウントずつ並べていきたいのですがどのようにすればよいでしょうか(´・ω・`)
3個並べて右にずれてまた3個というような繰り返しです。

A1=B1
A2=B2
A3=B3
A4=C1
A5=C2
A6=C3
256名無しさん@そうだ選挙にいこう:2009/10/10(土) 11:14:26
>>255
関数
A1=INDIRECT("r"&MOD((ROW()-1),3)+1&"c"&INT((ROW()-1)/3)+2,0)
下にオートフィル

VBA
Option Explicit
Sub a()
Dim i
For i = 0 To 10
Cells(i + 1, 1) = Cells((i Mod 3) + 1, Int(i / 3) + 2)
Next
End Sub

ピボット
無理w
257名無しさん@そうだ選挙にいこう:2009/10/10(土) 11:24:10
>>256
出来ました!

ありがとうございます(`・ω・´)ゞビシッ!!
258名無しさん@そうだ選挙にいこう:2009/10/10(土) 12:10:09
>>255
前からINDIRECTの好きな先生が住みついてるよなぁ。
=INDEX(B:IV,MOD(ROW()-1,3)+1,INT((ROW()-1)/3)+1)
259名無しさん@そうだ選挙にいこう:2009/10/10(土) 12:49:33
やってること同じじゃないの?
260名無しさん@そうだ選挙にいこう:2009/10/10(土) 13:02:40
>>255
> 次のように規則的に3カウントずつ並べていきたいのですがどのようにすればよいでしょうか(´・ω・`)

本当にやりたいことは3カウントずつ並べることなんだろうか?
もっと上位の概念でやりたいことを質問したほうがいい回答がもらえるよ。
グループ別に集計したいとか、制約を満たす最適解が欲しいとか。
261名無しさん@そうだ選挙にいこう:2009/10/10(土) 14:57:24
またまたINDIRECTを理解できない小僧がキャンキャン吼えてるよ
262名無しさん@そうだ選挙にいこう:2009/10/10(土) 15:10:24
>>255>>258はどう違うの?indirect関数はバグが多いとか?
263名無しさん@そうだ選挙にいこう:2009/10/10(土) 15:35:57
>>260
レスありがとうございます。
本当にやりたいことはちょっと難儀で
似たような3行をひたすら繰り返す形ですね

元データまま

A1=LCLICK 70,230  デスクトップの座標を示している。座標は順番に24通り、24までいったら1に戻る。24通りは作業列に用意
A2=delay 50   常に同じ
A3=send C:\001.txt 002 003と増えていく 制限なし

自分がしたこと
上記3列をコピーして別シートに行と列を入れ替えて貼り付け
オートフィルで右側に必要な分だけコピー
+
>>256さんの関数で1列に並べて完了

出来上がり

LCLICK 70,230
delay 50
send C:\001.txt
LCLICK 78,405
delay 50
send C:\002.txt

300.TXTくらいまで。

こんな感じです(´・ω・`)
264名無しさん@そうだ選挙にいこう:2009/10/10(土) 15:42:27
それは確かキーボードマクロの内容か
まぁそれはいいとして、VBAで↓作った方が早かったね。出来たみたいだしもういいことだけどさ〜
A1=LCLICK 70,230  デスクトップの座標を示している。座標は順番に24通り、24までいったら1に戻る。24通りは作業列に用意
A2=delay 50   常に同じ
A3=send C:\001.txt 002 003と増えていく 制限なし
265名無しさん@そうだ選挙にいこう:2009/10/10(土) 16:04:53
>>263
そんなのソート使えば余裕じゃないの?
indirectやrowはデータへのポインタを意識しなければならない手法で低級なテクニックだよ。
まあ解決してるならどうでもいいことだが。
266名無しさん@そうだ選挙にいこう:2009/10/10(土) 16:15:39
>>256>>258
どうみてもやってることは同じです
本当に(
267名無しさん@そうだ選挙にいこう:2009/10/10(土) 18:12:44
>>266
コピーから値貼りつけするのであればどれでもよいが、式を残すのであれば揮発性関数のINDIRECTやOFFSETは使わないのが常識。
まぁ値貼りつけ前提の式だろうけど。
268名無しさん@そうだ選挙にいこう:2009/10/10(土) 18:22:39
>>255はピボットでも出来なくはないわな。
269離島のサンデーPG:2009/10/10(土) 18:28:42
>>251
Sub Macro1()
Dim WS As Worksheet
Dim LastRow As Long, h As Long
Application.ScreenUpdating = False
Set WS = Worksheets("Sheet1")
With WS
LastRow = .Range("$A$65536").End(xlUp).Row
With Range("A3:E" & LastRow)
.AutoFilter Field:=2, Criteria1:="0.0000 "
.AutoFilter Field:=4, Criteria1:=">0.0000", Operator:=xlAnd
End With
h = 1
For Each i In .Columns(1).SpecialCells(xlCellTypeVisible)
If i = "" And i.Row <> 1 Then Exit Sub
If h >= 3 Then
.Range("B" & i.Row).Value = .Range("D" & i.Row).Value
.Range("C" & i.Row).Value = .Range("E" & i.Row).Value
End If
h = h + 1
Next i
End With
Application.ScreenUpdating = True
Set WS = Nothing
End Sub

こんなコードですまん。
270名無しさん@そうだ選挙にいこう:2009/10/10(土) 18:29:13
書き忘れたが行列入れ替えてからピボットな。
271名無しさん@そうだ選挙にいこう:2009/10/10(土) 19:48:37
>>268
たしかに出来るな。
>>256並み駄目w
272251:2009/10/10(土) 23:20:32
>>254
ありがとうございます。
イコールで数値を合わせる方法もあるんですね。
別の機会に応用してみます。

>>269
ありがとうございます。そのまま使えました。
データは会社から持ち出せないので、13日に試してみます。
273名無しさん@そうだ選挙にいこう:2009/10/11(日) 06:36:39
【1 OSの種類         .】 Windows VISTA
【2 Excelのバージョン   】 Excel2003 SP3
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 エクセル タイム 時間管理

エクセルで自転車の走行記録を付けているのですが
走行時間が60分以内の時と 60分以上の時があるのですが

セルの表示を h"時間"mm"分"ss"秒";@
にして 入力を
1時間以上の時 1:20:34とすると 1時間20分34秒と表示されるのですが
1時間以内の時 0:20:34とすると 0時間20分34秒と表示されます

当たり前といえば当たり前ですが 60分以内の時 20分34秒と表示できるようなテクニックは
あるでしょうか ご存じの方お願いします
274名無しさん@そうだ選挙にいこう:2009/10/11(日) 07:20:24
>>267
INDEXも揮発性関数じゃないか?
275離島のサンデーPG:2009/10/11(日) 09:39:34
>>273
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Hour(Range("A1").Value) >= 1 Then
Range("A1").NumberFormatLocal = "h""時間""mm""分""ss""秒"""
Else
Range("A1").NumberFormatLocal = "mm""分""ss""秒"""
End If
End Sub
276名無しさん@そうだ選挙にいこう:2009/10/11(日) 10:08:40
>>275さん
回答ありがとうございます
しかし マクロに貼り付けが上手くいきません

ツール マクロ マクロ名”時間入力” 作成まで進むと

Sub 時間入力()

End Sub
のウインドウがでるので
その間に
275の本文を入れ 上書き保存して
元のエクセルファイルに戻り ツール マクロ 実行すると

コンパイルエラー End Subが必要です と表示され 上手くいきません
なにかやり方が間違っているでしょうか 済みません
277名無しさん@そうだ選挙にいこう:2009/10/11(日) 10:29:24
>>273
text関数とかどうかな
=IF(A1>=1/24,TEXT(A1,"h時間mm分ss秒"),TEXT(A1,"mm分ss秒"))
>>276
この場合は標準モジュールじゅなくてsheet1に記述する
ttp://www1.axfc.net/uploader/Img/so/61822.jpg
278名無しさん@そうだ選挙にいこう:2009/10/11(日) 12:07:14
質問です。よろしくお願いします。
エクセル2007.

sub jjj()

Dim inputnuma, inputnumb
inputnuma = InputBox("何月?")
inputnumb = InputBox("何日?")
If MsgBox(" ", vbOKCancel, "実行確認") = vbOK Then

end if

ボックスに月日を入力して次に、実行の確認をします。
その際に、  inputnuma 月 inputnumb 日でok?    と表示したいです。
(例えば、、、10月16日でok? という感じ。 )
上記にプログラムに If MsgBox("inputnuma 月 inputnumb 日 でok?" ,
と入力すると そのまんまで inputnuma 月 inputnumb 日 でok?  となってしまいます。

なんとかなりませんか?わかる方教えてください。お願いします。
279名無しさん@そうだ選挙にいこう:2009/10/11(日) 12:54:01
If MsgBox(inputnuma & "月" & inputnumb & "日 でok?" ,
みたいな感じ
変数はダブルクオーテーションでくくらない
280名無しさん@そうだ選挙にいこう:2009/10/11(日) 12:59:38
今EXCELの勉強しているのですが、実際に仕事でexcelを使うとなると
本に載ってる問題のようなものを渡されて「これやっといて」っていう
わけではないですよね?
実際の仕事では、まっさらな状態から自分でやっていかなきゃいけないのですか?
例えば、問題の段階では既にある表を使ってグラフを作ったりするわけですけど
本当の仕事となると、表から自分で作るのでしょうか?
281名無しさん@そうだ選挙にいこう:2009/10/11(日) 13:11:43
ま〜大概は入力作業だな
既にあるフォーマットに在庫なり、日付なりデータを入力していく
それを決まった形式のグラフで毎回同じように作るってパターンが多いと思う

後は多岐に渡りすぎてどういうのがあるとは言えない
ただ表は作れるようになっておいたほうがいいね
セル内で計算して合計を出すのと、罫線。後は表示形式か

他は会社により過ぎてなんとも言えない。困ったときはここで聞いてみては
282名無しさん@そうだ選挙にいこう:2009/10/11(日) 13:18:05
>>281
ありがとうございます。
やるべきことが少しわかってスッキリしました。
今できることを頑張って、困ったときはまた相談させていただきます。
283離島のサンデーPG:2009/10/11(日) 13:36:56
ごめん、ちょっと間違いがあったので修正も兼ねて...
>>276
そうであれば
ツール マクロ マクロ名”時間入力” 作成へと進み

Sub 時間入力()

End Sub
のウインドウがでたら
その間に

If Format(ActiveCell.Value, "h") >= 1 Then
ActiveCell.NumberFormatLocal = "h""時間""mm""分""ss""秒"""
Else
ActiveCell.NumberFormatLocal = "mm""分""ss""秒"""
End If

を貼り付けして
さらにその画面左側のプロジェクトエクスプローラーの中の
実際に時間を入力するシート(たとえばSheet1)を選択してを右クリック
[コードの表示]を選択して
コードウインドウに

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Call 時間入力
End Sub

をそのまま貼り付けて
上のメニューから[デバッグ]→[VBAprojectのコンパイル]を選択してください。

あとはSheet1のA1に時間を入力すると実行されるはずです。
セル範囲とか不明なんでアクティブセルで実行されるようにしといたから。
284離島のサンデーPG:2009/10/11(日) 13:41:44
あ〜、たびたび間違いスマソ

削除: あとはSheet1のA1に時間を入力すると実行されるはずです。
> セル範囲とか不明なんでアクティブセルで実行されるようにしといたから。

>>283 を読み替えて下さい。
285名無しさん@そうだ選挙にいこう:2009/10/11(日) 14:01:35
>>279
できました。ありがとうございました。
286SUBMITできない:2009/10/11(日) 15:32:24
subimitできないんです。

Sub ie_Forms_DataSET() 'データセットのテスト

Dim objIE As Object 'IEオブジェクト参照用

'IEを起動する
Set objIE = CreateObject("InternetExplorer.application") 'IEのオブジェクトを作る
objIE.Visible = True '見えるようにする(お約束)

'.Navigate で 指定したURLを開く
objIE.Navigate "https://wwwi.mbrace.or.jp/mb2ninsyouservlet"

'ページが表示される 完了を待つ
While objIE.ReadyState <> 4 'READYSTATE_COMPLETE = 4
While objIE.Busy = True
DoEvents '特に何もしないで.Busyの状態が変わるまで待つ
Wend
Wend

'データをセットする
'htmlドキュメント フォーム(0番目) アイテム(MEMO)に転記(代入)する
objIE.Document.Forms(0).Item("uid").Value = "○○○○"
objIE.Document.Forms(0).Item("np").Value = "○○○○"

'フォーム(0番目)を .Submit(送信・投稿) する
objIE.Document.Forms(0).Submit '送信処理

End Sub
---------------------------------------------------
287SUBMITできない :2009/10/11(日) 15:34:26
>>286と同じ人間
HTMLソースの頭の部分が
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="HOTALL Ver.7.2W">
<TITLE>・、・ソ。シ・ヘ・テ・ネナ・シイァセレイ靂フ</TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--

となっていて、
ジャバスクリプトで書かれている?みたいですが、
もし、submitできれば、
https://wwwi.mbrace.or.jp/mbw_020.cgi にいくのですが、、
パスワードは入力できたのですが、submitができなく、ページが切り替わりません。

関係してるらしいところらへんのソースは、
function sosin(){
if(haneisuu(document.form1.uid.value) == true) {
if( document.form1.uid.value.length != "" && document.form1.np.value.length != ""){
document.form1.action="mbw_020.cgi";
document.form1.submit();
}
else {
alert(NINSYOU_ALERT_2);
}
}
return false
}

-------------------------------------------------------
VBAで、submitできますか?教えてください。
288名無しさん@そうだ選挙にいこう:2009/10/11(日) 15:47:22
>>273
書式設定で
[>=0.041666]h"時間"mm"分"ss"秒";mm"分"ss"秒"

数字の大小を条件とした書式の切り替えを使った。
289名無しさん@そうだ選挙にいこう:2009/10/11(日) 17:27:39
>>275
前からなにかとSelectionChange使うやつがいるがお前か?
>>288で簡単だが、どうしてもマクロでやりたきゃSelectionChangeイベントじゃなくChangeイベントだろ?
290名無しさん@そうだ選挙にいこう:2009/10/11(日) 17:33:19
>>289
じゃあ自分で書いたら
291SUBMITできない:2009/10/11(日) 18:49:16
だれか、競艇ログインさせてください。
292SUBMITできない:2009/10/11(日) 18:50:28
ログインできるまで粘着します。
293名無しさん@そうだ選挙にいこう:2009/10/11(日) 18:53:48
さっさと逝け
http://namidame.2ch.net/kyotei/

もう来るな。
294名無しさん@そうだ選挙にいこう:2009/10/11(日) 18:57:09
質問ですが
Excel2007でパスワード設定をしています
それを他のPCでたとえば別にバージョンで開くことは可能でしょうか?
また仮にExcel2007が壊れて再インストールしなければいけなくなった場合、
インストールしたバージョンで同じパスワードさえ入れれば別にまた開く事は可能でしょうか?
295名無しさん@そうだ選挙にいこう:2009/10/11(日) 18:58:40
>>294
パスは共通だよ
>>291
笑ったw
面白いから放置させていただきます
296SUBMITできない:2009/10/11(日) 19:00:30
objIE.Document.Forms(0).Submit でsubmitできません。
ソースが
if(haneisuu(document.form1.uid.value) == true) {
if( document.form1.uid.value.length != "" && document.form1.np.value.length != ""){
document.form1.action="mbw_020.cgi";
document.form1.submit();
}
else {
alert(NINSYOU_ALERT_2);
}
}
return false
}
となっているのですが、
どうやったら、SUBMITできますでしょうか?
297名無しさん@そうだ選挙にいこう:2009/10/11(日) 19:25:52
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 抽出、関数

(シート1)


10/1、80、85、88
10/2、77、64、71

(シート2)
10/2、77、64、71

のように、日つけ、金額、金額、金額、という行が毎日一行ずつ追加される表の
最終行(日付が入力された最終行)だけを、別シートに抜き出すにはどうすれば良いでしょうか。
よろしくお願いします。
298名無しさん@そうだ選挙にいこう:2009/10/11(日) 19:40:38
>>297
=INDEX(Sheet1!$A:A,COUNTA(Sheet1!$A:$A))
これでA列の最終行の値。
=INDEX(Sheet1!$A:A,COUNTA(Sheet1!$B:$B))
INDEXはA列じゃなくてB列でもいいかも。
C列も同じように。。。

これは、途中にブランクがあると効かなくなるよ。
A列のデータ数を数えているから。
299名無しさん@そうだ選挙にいこう:2009/10/11(日) 19:51:33
>>289
ActiveCellに入力したのをActiveCellに代入するから
Changeイベントで拾えないからSelectionChange
やってみてから文句家粕
300名無しさん@そうだ選挙にいこう:2009/10/11(日) 20:03:40
>>297
=MAX(ROW(A1:A1000)*(0<>(A1:A1000)))
でshift+ctrl+enterで確定する。ブランクがあっても問題なし
A1000ってのは1000行ぐらいと勝手に決めてるけどシートによって変えてね

配列数式を使う日が来るとは思わなかったぜ
301297:2009/10/11(日) 20:25:42
298さん
ありがとうございます。
実はシート1の日付セルは関数が入っているため、
この方法だと関数が入っていないセルまで進んでしまいます。
関数はカウントしない方法はありますでしょうか?
よろしくお願いします。
302名無しさん@そうだ選挙にいこう:2009/10/11(日) 20:27:19
>>299
釣りか?
入力値によって表示形式変えるんだから、イベントならChangeに決まってるだろうよ。
>>288が書いた方法で簡単だから書かないけどね。
303名無しさん@そうだ選挙にいこう:2009/10/11(日) 20:41:01
>>301
VBA以外だと無理と思う
304名無しさん@そうだ選挙にいこう:2009/10/11(日) 20:43:27
>>301

そもそもやろうとしていることが間違い。
305297:2009/10/11(日) 20:56:46
やりたいことの全体像ですが、
入力シートに入力したデーターを計算し、
日々の計算結果を蓄積するのにシート1を使い、
最新の計算結果だけシート2に表示したいと考えています。
この流れを関数だけで表現するのは無理でしょうか?
306名無しさん@そうだ選挙にいこう:2009/10/11(日) 21:03:45
>>305
それならsumifでも使えば
307名無しさん@そうだ選挙にいこう:2009/10/11(日) 21:04:15
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
A列には日付、B列にはその日の売り上げがあったとして、
Cが月、Dがその月で売り上げがあった日数の合計、
Eがその月の売り上げ合計金額とする場合、うまく数式で表す方法を教えてください。

今現在は自分でB列で、1月の範囲を指定してcountifなどで出していますが、
A列の日付から、自動的にBから指定月の売り上げだけを拾ってくる方法を教えてください。
    A   B   C    D    E
  1 1/1  500   1     5   3000
  2 1/2       2     ・    ・
  3 1/3       3     ・    ・
  4 1/4       4     ・    ・
  5 1/5       5     ・    ・
  6 1/6  1000  6     ・    ・
  7 1/7       7     ・    ・
  8 1/8       8     ・    ・
  9 1/9       9     ・    ・
 10 1/10      10    2   1100
   ・
300 10/1
301 10/2 300
302 10/3 
303 10/4
304 10/5 
304 10/6 
304 10/7 800
304 10/8 
304 10/9 
304 10/10 
308名無しさん@そうだ選挙にいこう:2009/10/11(日) 21:13:16
>>307
A列とB列からピボットがいいのでは?
309名無しさん@そうだ選挙にいこう:2009/10/11(日) 21:16:58
>>307
D1は1でE1は500、ではないのか?
310297:2009/10/11(日) 21:30:29
すみません。どこにsumifを使えば良いのでしょうか?
311名無しさん@そうだ選挙にいこう:2009/10/11(日) 21:35:27
312名無しさん@そうだ選挙にいこう:2009/10/11(日) 22:01:52
変数の質問です。
A = Range("A1").Value のように書く場合と、
Set A = Worksheets("Sheet1") のように書く場合があります。

このスレをはじめ、ネットで紹介されてるのを真似てますが、
Set が必要・不必要の使い分けは、どう覚えればいいのでしょうか?
313名無しさん@そうだ選挙にいこう:2009/10/11(日) 22:03:36
set オブジェクト
でぐぐれ
あとウォッチ式で見たら何となく分かるかもしれない
314名無しさん@そうだ選挙にいこう:2009/10/11(日) 22:09:50
>>302
だ か ら や っ て み な さ い

わかりやすく書いたよ。
315名無しさん@そうだ選挙にいこう:2009/10/11(日) 22:10:59
値か、そうじゃないか・・・って大雑把過ぎる?
316名無しさん@そうだ選挙にいこう:2009/10/11(日) 22:31:31
setに関していえばオブジェクトか否かだろう
ただこれは使っていないと分かりにくい
普通に構造体にでもしておいてくれれば良かったのに
317名無しさん@そうだ選挙にいこう:2009/10/11(日) 22:38:54
>>314
おまえ見込みないからexcelやめろ。
318名無しさん@そうだ選挙にいこう:2009/10/11(日) 22:48:02
かなり前からおかしなイベントマクロよく見たよね。
たしたTargetを使ってなかったんじゃなかったかな?
Targetがなんたるかを知らないのかも知れないな。
319名無しさん@そうだ選挙にいこう:2009/10/11(日) 22:53:37
>>314はActiveCellの代わりにTarget使ってみな?
顔が真っ赤になるはずだから。
320離島のサンデーPG:2009/10/11(日) 23:06:08
>>318
知ってますよ。引数ぐらい。
321名無しさん@そうだ選挙にいこう:2009/10/11(日) 23:09:31
>>320
まー俺は別に動けばなんでもいい派だけど、
皆あなたのやり方は変ですよーみたいな事言ってるんだよ
俺もTarget使うやり方しか知らないのであまり偉そうなことはいえないんだけど
322名無しさん@そうだ選挙にいこう:2009/10/11(日) 23:10:09
>>320
じゃぁなんでChangeイベント使わないんだ?
Target知らないからActiveCellなんて寝ぼけたこと言ってるんだろうよ。
323名無しさん@そうだ選挙にいこう:2009/10/11(日) 23:14:17
ところで>>320はどこの離島なの?
324312:2009/10/11(日) 23:41:11
>>313 >>315 >>316
ググっていろいろ見ました。
値か、そうじゃないか ですねw
325名無しさん@そうだ選挙にいこう:2009/10/11(日) 23:43:32
離島のサンデーPGの「PG」って、、、

ピン芸人?
326離島のサンデーPG:2009/10/11(日) 23:45:45
>>321
ご助言ありがとうございます。
私も動けばなんでもいい派ですが(サンデーPGなんで)
今回の例は質問が特定範囲を指定していないという状況下で
だったらTarget指定したら質問者の実範囲と重ならない場合
動きませんってことになるんじゃないかと思ってActiveCellを使ったまでで
その結果ActiveCellを使ってChangeイベントドリブンできないということを
言ったまでなんです。Target.cellsで動くことはわかります。
327名無しさん@そうだ選挙にいこう:2009/10/12(月) 00:27:56
>>326
あなたがもしブログやってるなら、アドレス貼ってください。
328名無しさん@そうだ選挙にいこう:2009/10/12(月) 00:34:48
>>327
?やってませんが。
329名無しさん@そうだ選挙にいこう:2009/10/12(月) 00:39:48
>>326
おめーはやっぱりなんにも分ってないよ。
だまってActiveCellの代わりにTarget使ってみりゃ分ることだろうに。
330名無しさん@そうだ選挙にいこう:2009/10/12(月) 00:54:52
>>325
間違ってもプログラマーじゃないな。
331名無しさん@そうだ選挙にいこう:2009/10/12(月) 01:13:31
そんなばかにkまってないで仕事しろ
332名無しさん@そうだ選挙にいこう:2009/10/12(月) 01:15:56
ピボットvsVBAの時もそうだが、お前らっていつも喧嘩してるよなw
333名無しさん@そうだ選挙にいこう:2009/10/12(月) 01:29:26
(;´Д`)7
334名無しさん@そうだ選挙にいこう:2009/10/12(月) 07:53:30
まあVBA厨は頭悪いからな。
やつらコードの良し悪ししか興味がない。
335名無しさん@そうだ選挙にいこう:2009/10/12(月) 10:03:22
1万回ループ回してこっちのコードの方が1秒速いとかいってるしな
336名無しさん@そうだ選挙にいこう:2009/10/12(月) 10:20:19
>>335
まったくだ。
ループの回数を減らす方法なら聞いてやってもいいが。
337名無しさん@そうだ選挙にいこう:2009/10/12(月) 11:17:45
良いコード書けるに越したことはないと思うけど、何レスも言い合いするほどのことでもないよね
速さの競い合いは世間話みたいなもんでしょう
338名無しさん@そうだ選挙にいこう:2009/10/12(月) 11:33:48
人のコードに茶々いれる基地外指摘厨みてると笑えるな
339名無しさん@そうだ選挙にいこう:2009/10/12(月) 11:38:15
コードがいいかどうか以前のやつが多過ぎる。
例えば項目別の収支計算とかさせるとすぐにボロが出るからな。
収入から支出を引けばいいんでしょとばかりに組んだはいいが、収入のデータにが無くて支出だけある場合の処理がぬけてたりね。
これ実例だよ。
340名無しさん@そうだ選挙にいこう:2009/10/12(月) 12:27:22
【1 OSの種類         .】 Windows Vista Ultimate
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 cell関数 col 条件付き書式 範囲
現在、A7:E15の範囲で条件付き書式に
[数式が] =CELL("row")=ROW() を設定して
[条件が真のときに使用する書式のプレビュー:] を黄色にして
たとえば
B7が選択されたらA7:E7の範囲が黄色になる
D13を選択されたらA13:E13の範囲が黄色になる
というようなことをしていますが
範囲外のセル、上記例で言うとH7とかF13を選択したときも
範囲の色が変わってしまうのですが
これを範囲以外は色が変わらないようにできますか?
341名無しさん@そうだ選挙にいこう:2009/10/12(月) 12:33:50
要素にばかりとらわれず、やるべきことについて高次のモデルを頭に描けるようにならなければならない。
実装なんかどうでもいいとは言わないが、優先度は低いのは確かだ。
モデルさえ正しければ、できるに決まっていることなんだからな。
342名無しさん@そうだ選挙にいこう:2009/10/12(月) 12:44:01
>>340
CELL関数の第二引数を指定しないと最後に指定したセルが指定されるー
とあるから、340の通りだと条件付書式の再計算を止める方法か。cell関数と条件付書式じゃ無理っぽいな
当然VBAになるけど、条件付書式を使わずにVBAで直接色をつけてしまったほうが早いと思う
343名無しさん@そうだ選挙にいこう:2009/10/12(月) 13:17:53
CELL("col")の値も調べろって話じゃないのか
344名無しさん@そうだ選挙にいこう:2009/10/12(月) 13:26:14
初心者です。
ベテランの方なら即わかると思うのですが、質問させていただきます。
セルB1に=COUNTIF(B5:B60,">3")という計算式を書着込みたいのです。
Range("B1") = "=COUNTIF(B5:B60,">3")"とやると「コンパイルエラー」というのが出ます。
これを回避する方法を教えてください。
よろしくお願いします。
345名無しさん@そうだ選挙にいこう:2009/10/12(月) 13:52:18
>>344
マクロの記録で一発
分からなかったらぐぐってくれ
346名無しさん@そうだ選挙にいこう:2009/10/12(月) 13:52:39
初心者質問ですんません。
Sheets("MENU")にマクロボタンを置いて、アクティブになっています。
(A)はOKなのに、(B)はRangeクラスのメソッドが失敗しました となります。
シートをSelectせずにA1セルをSelectするのは、できないのでしょうか?

(A)
Sheets("10月").Select
Range("A1").Select

(B)
Sheets("10月").Range("A1").Select
347名無しさん@そうだ選挙にいこう:2009/10/12(月) 13:59:14
>>343
俺も思ったんだけど、元々付いている色が消えてしまう
と思ったけど、それでもいいのかな?
>>340
範囲外を選んだときに元々付いている色が消えてもよければ
=(CELL("row")=ROW())*(CELL("col")>=1)*(CELL("col")<=5)
で条件付書式
>>346
sheet内にマクロを書いている場合はそのsheet内しか触れない
そういう場合は標準モジュールにマクロを記述し、callで呼び出す
callの使い方はぐぐればすぐに出てくる
ttp://officetanaka.net/excel/vba/statement/Call.htm
348346:2009/10/12(月) 14:09:29
>>347
俺へのレスですか?
貼られたサイトを見ましたがサッパリわかりません。
シートをSelectせずにA1セルをSelectするのはできないのでしょうか?
349名無しさん@そうだ選挙にいこう:2009/10/12(月) 14:26:40
>>348
ttp://www1.axfc.net/uploader/Img/so/61937.jpg
めんどいから図で説明

何が問題なのかっていうと、
MENUシートの中で10月シートに関する記述はできない(10月シートの選択はできるけど)
346のABの記述どちらも間違いじゃないが、書くところが間違っているって話
後は図の通りやっておくれ
350名無しさん@そうだ選挙にいこう:2009/10/12(月) 14:33:33
>>345
なるほど、やってみたらわかりました。
ありがとうございました。
351346:2009/10/12(月) 14:35:07
>>349
図を見てもわかりません・・・ orz
標準モジュール以外にもマクロを書くんですか?

Private subって何?
ちょっとググってきます。
352346:2009/10/12(月) 14:50:08
ググってきましたが、専門用語?が多すぎて良く分りませんでした。
349さん、図までつくってくださったのに、理解できないおバカですんません。
しばらくSelectを使って書くことにします。
353名無しさん@そうだ選挙にいこう:2009/10/12(月) 14:54:21
>>351
ああ、ごめんそういうことか
最初から標準に書いてたのね

ttp://www.moug.net/faq/viewtopic.php?t=41317
標準モジュールであれば、
Range("A1").Select は、ActiveSheets.Range("A1").Select と書かれているものとみなされます。

ということだそうです
354名無しさん@そうだ選挙にいこう:2009/10/12(月) 15:06:52
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

はじめまして。初心者の質問ですみません。
PC2台保有しており、2台を使いデータをまとめていました。
夜はデスクトップで作業・昼間はノートで作業といったように…
ノートからEXCELデータを添付してデスクトップへメールを送り
この連休中に作業を終わらせました。そして上書き保存。
もう一度確認しようと思いファイルを探したのですが、無い…
受信したメールに添付されていたデータをそのまま編集していて
デスクトップやマイドキュメントに保存せずそのまま上書き保存して
しまっていました。受信したメールを開いても上書き保存する前のデータのまま…
ファイル検索をしても出てこない。上書き保存はしているのでどこかにあるはずなのに…
連休すべて使ってまとめたのに… 誰か助けてください。
355名無しさん@そうだ選挙にいこう:2009/10/12(月) 15:19:40
>>354
ファイル名が判ればウィンドウズの検索機能で検索すればいいんでない?
356名無しさん@そうだ選挙にいこう:2009/10/12(月) 15:21:55
>>354
Windowsの検索機能やExcelの最近使用したファイルの一覧で
探しても見つからないならメールソフトから開いた時に
一時ファイルとして扱われて終了時に消されたとも考えられるが
357名無しさん@そうだ選挙にいこう:2009/10/12(月) 15:31:06
>>354
誰でも一度は通る道だから・・・。 
358名無しさん@そうだ選挙にいこう:2009/10/12(月) 15:36:29
>>354
マイコンピュータを.xlsか.tmpで探して見ては?
拡張子を隠しファイルをonにしてね
無理かなぁ・・
359名無しさん@そうだ選挙にいこう:2009/10/12(月) 15:52:08
上書き保存の時にどこのフォルダに保存しているのかチェックしてみるといい。
検索機能使うより手っ取り早い気がする。
360名無しさん@そうだ選挙にいこう:2009/10/12(月) 16:06:57
>>354
スレチだがw
受信したメールに添付されていたデータをそのまま編集できるの?
俺が使ってるメーラーは、Temporaryフォルダに入れられて編集できず、メーラーを閉じると
そのフォルダ内のファイルも消される。

ファイル検索して見つからないなら、もぅダメぽ・・・
361名無しさん@そうだ選挙にいこう:2009/10/12(月) 16:14:28
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 少々
【4 VBAでの回答の可否】 可

A〜G列までデータが入っており、C列の文字列のうしろに余計な半角スペースがあります。
F列に、=trim(C2)と入れれば余計な半角スペースが無くせて、値をC列に
貼り付ければいいのですが、F列とか他の列を使わずに、余計な半角スペースを
無くす方法はありあmすか?
362名無しさん@そうだ選挙にいこう:2009/10/12(月) 16:23:01
痴漢
363名無しさん@そうだ選挙にいこう:2009/10/12(月) 16:29:18
>>361
本来の用途ではないのですが、C列を選択後、
データ→区切り位置→○ カンマやタブによって〜 …の○にチェックを入れる
→次へ→□ スペース …の□にチェックを入れる→次へ→完了
とすると後ろのスペースは消えます。
364363:2009/10/12(月) 16:32:06
ただし、文字列の途中にスペースがある場合、区切り位置を後ろへ指定する
必要がありますが。
365363:2009/10/12(月) 16:55:48
あ、ごめん、途中にスペースある場合はダメだった。
366361:2009/10/12(月) 17:09:06
>>362-365
ありがd!
痴漢で出来ますた。
367名無しさん@そうだ選挙にいこう:2009/10/12(月) 17:15:55
質問させてください。 よろしくお願いします。
エクセル2007.
VBA

=Application.WorksheetFunction.Average(Worksheets("A").Range(cells(1,1),cells(30,1))

指定範囲のA1 から A30 に 何個か "-" というのがありまして、計算されないのですが解決方法を教えてください。
"-" は空白と同じ扱いにしたいです。(割り算するときのカウントに入れたくありません。)

よろしくお願いします。
368名無しさん@そうだ選挙にいこう:2009/10/12(月) 17:24:40
>367

本当に試したのか???
369361:2009/10/12(月) 18:05:34
再カキコです。
361の例ですが、半角スペースを置換すると、途中にある半角スペースも
削除(というか置換)されてしまいます。(当たり前ですが)
Columns("C:C").Replace What:=" ", Replacement:="", LookAt:=xlPart, _
 SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

他に方法があるでしょうか?
370名無しさん@そうだ選挙にいこう:2009/10/12(月) 18:28:07
367です。
>>368 さん
勘違いでした。
ワークシート名が間違っていました。
本当にすみませんでした。
371名無しさん@そうだ選挙にいこう:2009/10/12(月) 18:29:36
>>367
Sub a()
Cells(2, 2) = Application.WorksheetFunction.Average(Sheets("A").Range(Cells(1, 1), Cells(30, 1)))
End Sub

文字列は割り算から除外されるよ
>>369
fornextで、一番右の文字列が半角スペースならそれを削除
を繰り返すとか
372361:2009/10/12(月) 18:59:32
>>371
データが2〜3万行くらいあって、シート数も決まってないので、For Nextは避けるつもりでいます。
列の数も予測できないので、D列を追加、"=TRIM(RC[-1])を書く、値をC列にコピペ、
D列削除でとりあえずつくります。
373名無しさん@そうだ選挙にいこう:2009/10/12(月) 20:00:52
>>372
シート数が不定ならFor〜Each〜Next
データ数が不定ならUsedRange
という便利な機能がある
374名無しさん@そうだ選挙にいこう:2009/10/12(月) 21:00:06
【1 OSの種類】 Windows Vista
【2 Excelのバージョン】 Excel2000
【3 VBAが使えるか】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 入力規則 リスト 配列 生成

質問ですが、入力規則に使うリストは配列で生成出来ないのでしょうか?例えば時間を6:00から30分刻みで6:30,7:00,7:30〜24:00まで生成するとかして、それを入力規則に使うとかですが。
375名無しさん@そうだ選挙にいこう:2009/10/12(月) 21:22:22
Targetの使い方知らない離島の人、使い方覚えたかな?
376名無しさん@そうだ選挙にいこう:2009/10/12(月) 21:29:55
>>367
>>371
Sheets("A").Range(Cells(1, 1), Cells(30, 1))
って書き方間違いだから気をつけたほうがいい。
Cellsにもシートを指定しないと。
377名無しさん@そうだ選挙にいこう:2009/10/12(月) 22:13:32
excel関係は
http://www.efcit.co.jp/excelyou/

EXCEL ファンクラブで ほぼ全部答えてくれるよ。
凄い反応早い。

ほかのACCESSとかWEBも案外答えてくれる。
378名無しさん@そうだ選挙にいこう:2009/10/12(月) 22:23:18
>>374
一旦文字列に直さないとダメかも
入力規則のリストへの登録の仕方はマクロの記録で
>>375
空気嫁
>>377
ゴミ以下のBBSはご遠慮くださいませ
379374:2009/10/12(月) 22:28:06
>>378
参考になります。ありがとうございます。
380名無しさん@そうだ選挙にいこう:2009/10/12(月) 22:36:43
>>376
勉強になりました。ご指摘ありがとうございました。
381名無しさん@そうだ選挙にいこう:2009/10/13(火) 00:10:54
求人に「excel初級程度使える人」と書いてあったんですけど
初級程度ってどれくらいですか?
382名無しさん@そうだ選挙にいこう:2009/10/13(火) 00:13:24
求人出してる所に聞けや・・・
383名無しさん@そうだ選挙にいこう:2009/10/13(火) 00:31:25
>>381
ワークシート関数の使い方を20個以上暗記してること
384名無しさん@そうだ選挙にいこう:2009/10/13(火) 00:48:38
>>381
書類作成と思う
罫線とグラフ、sum関数とaverage関数作れたら大体okじゃないかな

こう書くと「エクセルで書類を作るのはダメな奴」とか言われるんだろうなー
385名無しさん@そうだ選挙にいこう:2009/10/13(火) 00:54:10
>>384
いや、大丈夫。Wordが腰抜けな分、Excelで作るほうが安全だから。
SUMとかIFとかVLOOKUPあとは実務で憶えればOKだろ。
386名無しさん@そうだ選挙にいこう:2009/10/13(火) 01:02:03
average関数って何?w
仕事で一度も使ったことがない希ガス・・・
387名無しさん@そうだ選挙にいこう:2009/10/13(火) 01:02:27
>>381です。
みなさんありがとうございます。
安心しました。
388名無しさん@そうだ選挙にいこう:2009/10/13(火) 01:03:45
あ、平均値かw
使ったこと無いな・・・www
389名無しさん@そうだ選挙にいこう:2009/10/13(火) 01:12:37
平均以下だもんな
(; ̄Д ̄)
390名無しさん@そうだ選挙にいこう:2009/10/13(火) 01:40:01
平均値なんて、俺も今の仕事だと使わないな。
むかーし、昇級レポートで標準偏差を算出してたときに使ったくらいかな?
もっとも、エクセルで標準偏差ならSTDEVPで済むけどね。
391名無しさん@そうだ選挙にいこう:2009/10/13(火) 06:59:55
>>387
求人の条件でExcelと書いてある場合、一般に>>384の言うような書類作成能力を期待されていると思う。
「エクセルで書類を作るのはダメなやつ」なんだけど、ダメなやつは求人側にもたくさんいる。
392名無しさん@そうだ選挙にいこう:2009/10/13(火) 07:34:06
>>391
だからわざとaverage関数なんて書いたんだけどねぇ
どうやらそこまでの意図は汲み取ってくれなかったようだ。
まぁ、関数より一枚の書類作成能力+入力ができるかどうかでしょ
オッサンとか未だにPCの電源の付け方知らなかったりするんだぜ
393名無しさん@そうだ選挙にいこう:2009/10/13(火) 07:50:12
>>392
averageって何?って聞いてるやつもいるだろ?
Excel以前の問題だよね。
394名無しさん@そうだ選挙にいこう:2009/10/13(火) 08:10:05
勃発の予感
395名無しさん@そうだ選挙にいこう:2009/10/13(火) 08:12:49
(´ω`)
396名無しさん@そうだ選挙にいこう:2009/10/13(火) 08:16:14
Excelは本来書類作成の道具ではない。方眼紙Excelは日本だけで広がっている怪奇現象。
それじゃExcelは何の道具かと言うと、合計を求める道具です。平均や標準偏差も求められるけど。
397名無しさん@そうだ選挙にいこう:2009/10/13(火) 09:41:24
方眼紙はさすがに見たこと無いけど、
エクセルで文書作る会社は良くある
郷に入らば郷に従えってね
398名無しさん@そうだ選挙にいこう:2009/10/13(火) 11:22:33
Yahooの競馬結果が今週より、エクセルへの外部データの取り込みをすると、
このweb クエリによって返されるデータがありません。・・・・と
メッセージが出て取り込めなくなりました。
取り込み出来るようにするには、どうすば、いいのでしょうか?
教えてください。
399299:2009/10/13(火) 11:30:58
>>289
>>302
粕は私でした。
申しわけなかったです。
しばらく山にこもって修業します。
400名無しさん@そうだ選挙にいこう:2009/10/13(火) 11:31:29
>>398
まずはそのページのURLを貼ってくれ
競馬にはまったく興味がないからどのデータが必要なのかわからん
401名無しさん@そうだ選挙にいこう:2009/10/13(火) 11:59:28
402名無しさん@そうだ選挙にいこう:2009/10/13(火) 12:28:37
>>397

> エクセルで文書作る会社は良くある
> 郷に入らば郷に従えってね

バカを真似る必要はない。
例えばわざわざ電卓で計算してからエクセルに入力しているやつもいる。
403名無しさん@そうだ選挙にいこう:2009/10/13(火) 13:39:24
やりたい内容によってワードでやるべき仕事はワードで正しく使いましょう。
エクセルはエクセルで正しく使いましょう。
ワードを正しく使っててもエクセルで間違った使い方してるおっさんも多いんだよな。
いくらエクセルが計算が得意だって無駄な計算させまくりじゃいかんぜよ。
404名無しさん@そうだ選挙にいこう:2009/10/13(火) 14:16:57
>>401
URLの末尾の「/」が勝手に消されてしまうのが原因ぽい。
いったんクエリをディスクに保存して、クエリファイルをメモ帳で編集、
http://keiba.yahoo.co.jp/race/result/0909040508
となっている部分の最後に「/」を書き足して
http://keiba.yahoo.co.jp/race/result/0909040508/
に修正、もういちどファイルを開けば正常に取り込めるようになる。
405名無しさん@そうだ選挙にいこう:2009/10/13(火) 14:18:41
>>401
ページ全体を取り込むのではなく、成績表など必要な部分だけを取り込むようにするという手もある。
406名無しさん@そうだ選挙にいこう:2009/10/13(火) 14:25:31
理想論とか寝言は就職して同じ会社に4年以上勤務できた人だけ言ってね。
仕事のできない人は何言っても説得力がないから。
407名無しさん@そうだ選挙にいこう:2009/10/13(火) 14:37:18
子供の夢壊すなよ。そっとしといてやれ
408名無しさん@そうだ選挙にいこう:2009/10/13(火) 15:32:12
VBAを使ってVBAのコードを書くことは出来るんでしょうか?
これで何がしたいというわけではないのですが、もしできる方法があれば教えてください
409名無しさん@そうだ選挙にいこう:2009/10/13(火) 15:37:03
>>405
成績表など必要な部分だけを取り込むようにするという手もある。

教えて頂けないでしょうか。
410名無しさん@そうだ選挙にいこう:2009/10/13(火) 15:40:14
>>408
作るだけならテキストファイルに書き出して拡張子をbasにする
411名無しさん@そうだ選挙にいこう:2009/10/13(火) 15:44:49
>>409
「新しいWebクエリ」の画面で、取り込みたい部分の矢印をクリックするだけ
ttp://petite-soeur.dyndns.org/cgi-bin/up2/src/ps23286.png
412名無しさん@そうだ選挙にいこう:2009/10/13(火) 16:21:31
>>410
おお、テキストファイルに書き出せばよいのですね
ありがとうございました
413名無しさん@そうだ選挙にいこう:2009/10/13(火) 16:29:42
>>406
定年まで勤めたのにまったく駄目なやつもいるから的外れ。
414名無しさん@そうだ選挙にいこう:2009/10/13(火) 16:35:02
エクセルだけが評価の対象かよwww
415名無しさん@そうだ選挙にいこう:2009/10/13(火) 17:37:32
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 COUNTIF 文字列 変数 EXCEL2000

よろしくお願いします
Sheet1とSheet2がありSeet1のCells(1, 1)に りんご という文字列が入ってます
Sheet2の1列にはCells(1, 1) みかんCells(1, 2)ぶどう…などさまざまな果物名が文字列入ってます
りんごもどこかにあります

Worksheets("Sheet1").Select
Dim 変数箱 As Variant 
変数箱 = Cells(1, 1) 'りんご
Worksheets("Sheet2").Select
Cells(2, 1) = "=COUNTIF(R[-1]," & 変数箱 & ")"

としてもかえってくるCells(2, 1)の値が0になってしまいます
変数箱の中が りんご ではなく 1234 なら問題なかったので

Cells(2, 1) = "=COUNTIF(R[-1],"" & 変数箱 & "")"

"を増やしてもだめでした

どのように記述すればいいのか教えてください
416名無しさん@そうだ選挙にいこう:2009/10/13(火) 18:12:03
>>413
本当にだめなやつは定年前に辞めることになる。
Excelとまったく縁のない仕事の方が多い。
ここまで親切に書かないとわからないのかねえ…
417名無しさん@そうだ選挙にいこう:2009/10/13(火) 18:19:44
>415
.FormulaR1C1
418名無しさん@そうだ選挙にいこう:2009/10/13(火) 19:16:40
ふと気づいた
>>413は信者って奴なのか
419名無しさん@そうだ選挙にいこう:2009/10/13(火) 21:17:02
VBAは最近使えるようになってきた、初心者です。
■本見てると”VB”というのをみるのですが、VBAみたいにエクセル持っていれば使用できるものなのですか??
 あとVBAとの違いを簡単に教えてください。すみませんがお願いします。
420名無しさん@そうだ選挙にいこう:2009/10/13(火) 21:26:44
VBとはビジュアルベーシック
エクセルについてるVBAはVBの一部だよ
VB6までは有料でVBAともかなり似てたんだけど、VB.NET(VB6の次のバージョン)になってからはがらりと変わった
ちなみに無料
プログラミング初心者にはかなりオススメ
421名無しさん@そうだ選挙にいこう:2009/10/13(火) 22:14:31
VBAが「使える」ようになってきたならこんな質問はしないと思うが・・・
422名無しさん@そうだ選挙にいこう:2009/10/13(火) 22:18:09
fornextでも覚えて舞い上がってるところなんでしょう
距離を置いて暖かく見守ってあげましょう
423名無しさん@そうだ選挙にいこう:2009/10/13(火) 22:22:36
>>419
>>本見てると”VB”というのをみるのですが、VBAみたいにエクセル持っていれば使用できるものなのですか??

斬新な発想だwww
424名無しさん@そうだ選挙にいこう:2009/10/13(火) 22:24:41
ここ雑談スレじゃないから。雑談したいなら他所いってね
425名無しさん@そうだ選挙にいこう:2009/10/13(火) 22:29:00
総合だし面倒みよう
426名無しさん@そうだ選挙にいこう:2009/10/13(火) 23:38:52
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 不可(スキル不足ですみません)

関数について全くの初心者なのですが、下記のようなものは関数で作れますか?

答えが正数であれば、切り上げ(ラウンドアップ)、答えが負の数字であれば切り捨て(ラウンドダウン)。
多分、IF関数とを組み合わせれば作れるのだと思うのですが、どうしてもうまくいきません。
教えてもらえないでしょうか。宜しくお願いします。
427名無しさん@そうだ選挙にいこう:2009/10/13(火) 23:56:30
=-INT(-A1)かな
428名無しさん@そうだ選挙にいこう:2009/10/13(火) 23:58:56
A1<0じゃ判定できなかったっけ?
429名無しさん@そうだ選挙にいこう:2009/10/13(火) 23:59:03
=IF(A1>0,ROUNDUP(A1,1),ROUNDDOWN(A1,1))ってことじゃね?
430名無しさん@そうだ選挙にいこう:2009/10/13(火) 23:59:19
>426

=TRUNC(A1)
431430:2009/10/14(水) 00:02:32
正数は切り上げか・・・スマン
432名無しさん@そうだ選挙にいこう:2009/10/14(水) 00:15:58
2行目がタイトルになってるシートがあります。マクロで、オートフィルタの抽出で
コピー&ペーストするとき、該当するデータがあれば問題ないですが、
該当するデータがないときにタイトルをコピーしてしまいます。
どんな対策をすればいいですか?
Range("A3", Range("H65536").End(xlUp)).Copy
433名無しさん@そうだ選挙にいこう:2009/10/14(水) 01:13:51
>>432
いきなりコピーせずにデータがあるかないか判定する
434名無しさん@そうだ選挙にいこう:2009/10/14(水) 01:28:57
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 不可
【5 検索キーワード     】 excel datedif うるう年 バグ

初心者ですいません
仕事の関係で期間を日割りで求める計算式を作成したいのですが、
datedif関数だと、うるう年の関係でバグが起きて日数が1日ズレてしまいます

この問題を解消するためにネットで検索していくなかで、以下のエクセル式を発見したのですが、
これは月単位も入っており、私が求めている「○年と○日」という回答は得られません

  =IF(DAY(開始日+1)=1,
DATEDIF(開始日+1,終了日+1,"y")&"年"
&DATEDIF(開始日+1,終了日+1,"ym")&"ヶ月"
&(終了日+1-EDATE(開始日+1,DATEDIF(開始日+1,終了日+1,"m")))&"日" ,
IF(AND(DAY(終了日+1)=1,DAY(開始日)>DAY(終了日)),
DATEDIF(開始日,終了日,"y")&"年"
&(DATEDIF(開始日,終了日,"ym")+1)&"ヶ月0日" ,
DATEDIF(開始日,終了日,"y")&"年"
&DATEDIF(開始日,終了日,"ym")&"ヶ月"
&(終了日-EDATE(開始日,DATEDIF(開始日,終了日,"m")))&"日"))

可能であれば、誰か教えていただけると助かります
お手数お掛けして申し訳ございません
435名無しさん@そうだ選挙にいこう:2009/10/14(水) 01:31:41
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 不可
【5 検索キーワード     】 文字列操作 Excel
━━
hogeaaa
sagebbb
abcdaaa
dcabbbb
━━

と言う表を入力情報として、"aaa"を
含む行だけ抽出して、

━━
hogeaaa
abcdaaa
━━

と言う出力を得たいのですが、
何かいい手は無いでしょうか


入力と出力は別シートでも問題はありませんが、
入力情報のレコード数が一定ではないので、
出力シートのすべてのセルに
IF(RIGHT(出力シート!A1,3)="aaa",出力シート!A1,"はずれ")
みたいな関数を埋め込んで、フィルタで除外する・・・

と言うようなやり方は避けたいです
436435:2009/10/14(水) 01:34:35
質問文中の関数が間違っていました・・・

IF(RIGHT(出力シート!A1,3)="aaa",出力シート!A1,"はずれ")
ではなく、
IF(RIGHT(入力シート!A1,3)="aaa",入力シート!A1,"はずれ")

です。。。
恥ずかしい
437名無しさん@そうだ選挙にいこう:2009/10/14(水) 02:55:37
>>435
元のデータに対してオートフィルタで「aaaを含む」
結果を別シートにコピペ
438名無しさん@そうだ選挙にいこう:2009/10/14(水) 02:59:40
>>434
ヒント 年数差と日数差を分けて考えるのがポイント

(1) 年数差の求め方
=DATEDIF(開始日,終了日,"y")

(2) 開始日の月日>終了日の月日 である場合の日数差の求め方
=DATEDIF(DATE(YEAR(終了日)-1,MONTH(開始日),DAY(開始日)),終了日,"d")

(3) 開始日の月日<終了日の月日 である場合の日数差の求め方
=DATEDIF(DATE(YEAR(終了日),MONTH(開始日),DAY(開始日)),終了日,"d")

上記をIFで分岐させたり、&でつなげればなんとかなるでしょう。

'というか、その参考にした式が既にバグッてるんだが…
'終了日を2008/2/28とした場合に、開始日に2007/1/29〜2007/1/31の
'どれを指定しても結果が「1年1ヶ月0日」になるぞ。
439名無しさん@そうだ選挙にいこう:2009/10/14(水) 03:10:06
>>434
こうかな? A1=開始日、B1=終了日として
=DATEDIF(A1,B1,"Y")&"年と"&B1-DATE(YEAR(A1)+DATEDIF(A1,B1,"Y"),MONTH(A1),DAY(A1))&"日"
440439:2009/10/14(水) 03:18:55
よく見たら>>439にはバグがあるな。もう眠いから誰か任せた。
441426:2009/10/14(水) 05:41:23
>>426-431さん
ありがとうございます。自宅ではofficeがないので、明日試してみます。
助かりました。
442名無しさん@そうだ選挙にいこう:2009/10/14(水) 06:27:36
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】否


200行ほどの足し算がしたくて201行目にシグマをしたんですが、
結果が"2E+6"と表示されて正しい結果になりません。
計算したり数字は全て4桁から5桁です。

宜しくお願いします。
443名無しさん@そうだ選挙にいこう:2009/10/14(水) 06:43:29
>>442
シグマをしたというセルの表示形式を標準にする。
444名無しさん@そうだ選挙にいこう:2009/10/14(水) 07:38:18
>>442
列幅を広くするんじゃないの
445名無しさん@そうだ選挙にいこう:2009/10/14(水) 08:23:39
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい(初級者)
【4 VBAでの回答の可否】 可

3点アドバイスいただければと思います。
よろしくお願いします。

●他のセルの状態を見て入力(コピーによる上書き含む)を
制限することはできますでしょうか?
(例)
A1セルに入力がないと、B1セルおよびC1に入力ができないようにする。

●セルに設定した入力規則をコピーによる上書き時にも
有効にすることはできますでしょうか?
(例)
・B1セルに「長さが10と等しい」の入力規則を設定。
・A1セルの値は20(長さ2)。
・A1セルをコピーしてB1セルに貼付け。
・入力(ペースト)を抑止。(エラーメッセージ出力)

●入力規則で全角の入力を抑止することはできますでしょうか?
(例)
・C1セルに「リスト(値:1,2,3)」の入力規則を設定。
・C1セルに全角で1を入力。
・入力(ペースト含む)を抑止。(エラーメッセージ出力)
446409:2009/10/14(水) 11:27:44
>>411
ありがとうございます。
447名無しさん@そうだ選挙にいこう:2009/10/14(水) 11:48:39
>>445
自分で試してみたのかい?
色々やってみれば分らなくても出来るはずだが。
まず入力規則に数式を設定出来るだろ?
B:Cを選択して、入力規則で=$A1<>""とでもすりゃいい。
コピー、形式を選択して貼り付けに入力規則もあるはずだ。
全角を抑止ももちろんできるが、日本語入力をオフ(英語モード)にした方が簡単
448名無しさん@そうだ選挙にいこう:2009/10/14(水) 11:56:52
参考までに日本語入力は入力規則のメニューにある。
449409:2009/10/14(水) 11:59:23
>>411やってみましたが・・・
リクエストされたアイテムが見つかりませんでした。HTTP/1.0 404 
となります。


450名無しさん@そうだ選挙にいこう:2009/10/14(水) 12:20:18
>>449
>>404にも書いたように、クエリファイルかスクリプトを修正しないとだめだよ。
そのままだとアドレスの最後の「/」が抜けるから。
451名無しさん@そうだ選挙にいこう:2009/10/14(水) 17:07:00
ttp://gold.tanaka.co.jp/commodity/souba/d-gold.php
胃ヤッホーーーーーーーーーーーーーーーーーーーーーーー
452名無しさん@そうだ選挙にいこう:2009/10/14(水) 17:23:08
誤爆ですすいません
453名無しさん@そうだ選挙にいこう:2009/10/14(水) 17:29:56
俺が買った時よりだいぶ安いんで、ちっとも喜べない
454名無しさん@そうだ選挙にいこう:2009/10/14(水) 20:06:04
Excel2003です

日付の入力で、例えば
A1にH22.12 A2にH21.12 のように年月をたくさん入力した後
昇順の並べ替えしようとしても上手くいきません
どうやったら、昇順に並べ変えられるのでしょうか
455名無しさん@そうだ選挙にいこう:2009/10/14(水) 20:07:31
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 ちょっとだけ
【4 VBAでの回答の可否】 是非w

B2セルに D:\Excel と入れ、その中に test というフォルダを新しくつくり、
集計したファイルをその中に入れたいんですが、2回目に実行すると
「パス名が無効です」と怒られてしまいます。
「既に test フォルダがあったら、次の人どぞ〜」って感じにするには
どうすればいいですか?

Sub test()
  MkDir Range("B2") & "\test"
End Sub
456名無しさん@そうだ選挙にいこう:2009/10/14(水) 20:24:10
>455

on error resume next
必要に応じてエラーコードで分岐させる。
457名無しさん@そうだ選挙にいこう:2009/10/14(水) 20:32:59
>>454
「H21.12」が日付と理解できるのは人間だけで、Excelは単なる文字列型と認識する。
データの全貌がわからないとなんとも言えないけど、とりあえず「H08.06」のように
年、月を必ず2桁で入れるようにすれば整列できるようになる。
458455:2009/10/14(水) 21:12:08
>>456
それをやると、次にエラーが出たときヌルーされちゃうんですけど・・
459名無しさん@そうだ選挙にいこう:2009/10/14(水) 21:16:52
>>458
ちっとは考えろや

On Error Resume Next
MkDir Range("B2") & "\test"
On Error GoTo 0

この3行で1セット
460SUBMITできない:2009/10/14(水) 21:30:51
ジャバスクリプトで書かれている・・・
SUBMITできますか?
461SUBMITできない:2009/10/14(水) 21:33:00
>>286 です。
EXCELから競艇自動投票したい。
462454:2009/10/14(水) 21:41:57
>>458
ありがとうございました
できるようになりました
463名無しさん@そうだ選挙にいこう:2009/10/14(水) 21:46:11
>>455
テストしてないけどこんな感じ

Sub test()
Dim strDIRNAME
strDIRNAME=Range("B2") & "\test"
If Dir(strDIRNAME, vbDirectory) = "" Then MkDir strDIRNAM
End Sub
464名無しさん@そうだ選挙にいこう:2009/10/14(水) 21:56:44
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 xml 編集 XMLスキーマ スタイルシート

XMLスキーマ、スタイルシート つきのXMLファイルをExcelで編集したいんですが、
「XMLシートとして開く」だと新しいブックが開かれてしまい、
それを保存しても元のファイルにあったXMLスキーマやスタイルシートに関する情報が
失われてしまいます。

Excel 2007だと元のファイルがスキーマやスタイルシートに関する情報を保存したまま
編集できたりするのでしょうか?

スキーマ自体やドキュメントは、validateであることを確認しています。
また、スキーマは入れ子等を含まず、ドキュメントに対応付け可能であることも確認しています。
465455:2009/10/14(水) 21:58:23
>>463
test フォルダがあるときはOKですが、無いときは実行時エラー76が出て
Then MkDir strDIRNAM が黄色くなります。

ググってみてるんですが、Dir(フォルダパス, vbDirectory) の 戻り値 って何でしょう?
466名無しさん@そうだ選挙にいこう:2009/10/14(水) 22:14:55
>>465
ごめん変数の名前最後E抜けてた。
Dir(strDIRNAME, vbDirectory) でstrDIRNAME の文字列型の値を返してる。
それが""ならフォルダはないってこと。

Sub test()
Dim strDIRNAME
strDIRNAME = Range("B2") & "\test"
If Dir(strDIRNAME, vbDirectory) = "" Then MkDir strDIRNAME
End Sub
467名無しさん@そうだ選挙にいこう:2009/10/14(水) 22:15:41
>>459さん、素敵・・・・・
468名無しさん@そうだ選挙にいこう:2009/10/14(水) 23:27:35
Excel2003です

年月を入力しようと思い2010/11と入力しエンターを押すと
2010/11/1と入力されてしまいます
年月日のうち日が勝手に入力されないようにするには
どうしたらいいでしょうか
469455:2009/10/14(水) 23:30:17
>>466
いろいろ調べてたら時間が掛かってしまいました。
ご丁寧に回答していただき、ありがとうございました。

>>459
素敵です♥
470名無しさん@そうだ選挙にいこう:2009/10/14(水) 23:35:05
>>468
先頭に ' をつけるといいのでは?
471名無しさん@そうだ選挙にいこう:2009/10/14(水) 23:35:27
>>468
セルの書式でyyyy/m
472名無しさん@そうだ選挙にいこう:2009/10/14(水) 23:54:13
>>468
入力しなければいいと思います
473名無しさん@そうだ選挙にいこう:2009/10/15(木) 00:11:48
>>286
がんばれ!気味ならできる
>>468
>>471がオススメだけど次点で書式設定で「文字列」に設定
474名無しさん@そうだ選挙にいこう:2009/10/15(木) 00:18:05
yyyy/m としても、セルの値自体は 2009/11/01になるのでは?
文字列にすれば、値も 2009/11 になるので、こちらの方がいいような…
475名無しさん@そうだ選挙にいこう:2009/10/15(木) 00:19:46
その辺は質問者次第でしょ
476名無しさん@そうだ選挙にいこう:2009/10/15(木) 00:21:22
>>475

ご冗談をwww
質問者がそんなこと理解してる訳無いじゃんw
477名無しさん@そうだ選挙にいこう:2009/10/15(木) 00:24:09
>>476
うんまぁ俺もそう思うんだけど
質問者はほんとうに「年月日のうち日が勝手に入力されない」ことだけを望んでると思うから
何故俺がそう思うかというと、書式設定の中でそういう設定が無いからね
どっちでもいいんじゃないかな
あまり細かいことを言うとまたスレで大戦が起きるだけのようでな
478名無しさん@そうだ選挙にいこう:2009/10/15(木) 07:15:35
>>468の件はおいとくとして、質問者次第なんていうとえてして悪い方法を採用しがちだよなぁ。
479名無しさん@そうだ選挙にいこう:2009/10/15(木) 08:03:50
すいません、質問させていただきます。

【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 エクセル 最小値 名前

毎日の営業成績管理の表を作成しています。
作成中の表での例えはややこしいですので、最も簡略化した例えで書きますと、

Aさん 80点
Bさん 40点
Cさん 70点
Dさん 40点
Eさん 40点

というテストの点があったとして、最低点を取った人の名前を出したいのです。
MIN関数やRANK関数やINDEXを組み合わせて挑戦してみたのですが、「同点最下位の人」が多数いる場合、
一人の名前(例で言うとAさんの名前のみ)しか出せませんでした。

何かいい方法はありませんでしょうか?
よろしくお願いします。
480名無しさん@そうだ選挙にいこう:2009/10/15(木) 08:06:01
>一人の名前(例で言うとAさんの名前のみ)しか出せませんでした。

↑Bさんの名前のみ、ですね。訂正いたします。
481名無しさん@そうだ選挙にいこう:2009/10/15(木) 08:26:10
>>479

オートフィルタを使う。
作業列を用意して、最低得点の人はそこにフラグを立てておけばよい。
482名無しさん@そうだ選挙にいこう:2009/10/15(木) 08:31:52
>>479

単純に得点でソートするだけでもよい。
関係ない行は非表示にしたらよい。
483名無しさん@そうだ選挙にいこう:2009/10/15(木) 08:38:33
>>479
条件付き書式で色をつけてみた。
http://kabutomo.net/img.php?filename=dc_740042_1_1255563419.png
484名無しさん@そうだ選挙にいこう:2009/10/15(木) 09:40:37
質問させてください。
仕事で使う関数だけ独学で学んだだけなので初心者です。
列ごとの最小値が入力されているセルの色を変えたいのですがどうすればいいでしょうか?
1列や2列などなら条件付き書式で一列づつやり可能なのですが。
列の数が数百とあり一列一列やっていくのは時間がかかるので全てを一度の操作で済ませたいのですがやり方がわかりません。

A 50 30 20 35
B 20 25 30 15
C 90 95 80 85
D 55 60 60 75

仮に上の図ならA列は20が赤くなり、B列は15、C列は80、D列は55が赤くなる
これを一列一列するのではなく一度にやりたいのですが何かよい方法はありますか?

【1 OSの種類         .】 VISTA
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 VBAがわかりません。
【4 VBAでの回答の可否】 否
【5 検索キーワード     】条件付き書式 色 IF 列
485名無しさん@そうだ選挙にいこう:2009/10/15(木) 10:22:17
>>484
A1セルの条件付書式で「数式が」
=MIN(A:A)=A1

後は下のいずれかを実行
・右クリックでオートフイル、「書式のみ」
・コピーして右クリックで形式を選択して貼り付け。「書式」を選択してok

ただ条件付書式のみコピーはできないので、フォントサイズや色が違うとコピーされてしまう
残念ながら会費する方法はVBAしかない。
486名無しさん@そうだ選挙にいこう:2009/10/15(木) 22:01:37
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 初心者レベル
【4 VBAでの回答の可否】 可

Book1は商品の台帳で、約5000行あります。Book2のB列が歯抜けになっており
Book1の商品名に合致した数値を入れるとき、Forで1行ずつチェックしていますが、
多いときには20,000行くらいのシートが50枚くらいあり、時間が掛かっています。
効率よく埋めるには、他にどんな方法でやればいいでしょうか?
以下の例では、Book2のB2へは120.25、B4へは50.02が入ります。

Book1.xls
  A     B     C
 連番  商品名   数値
  1   りんご   120.25
  2   みかん   50.02
  3   ぶどう    83.63
  4   いちご   150.01

Book2.xls
  A    B     C
 連番   数値  商品名
  1   150.01  いちご
  2         りんご
  3   120.25  りんご
  4         みかん
487名無しさん@そうだ選挙にいこう:2009/10/15(木) 22:29:46
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類         .】 WindowsXP Pro
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 行 半分 ずらす などで検索

特定の行だけを半分ずらしたいのですが方法が分かりません
例えば

A  A  A  A
--------------
B  B  B  B
--------------
C  C  C  C

というようなものを

A  A
------ A ---
B  B ---  
------ B ---
C  C ---- 
------ C ---
     ----


というずらし方をしたいのですがどうやるのでしょうか?
488名無しさん@そうだ選挙にいこう:2009/10/15(木) 22:34:19
>>487
不可能
489479:2009/10/15(木) 22:34:39
皆さんいろいろとありがとうございます。
なかなか慣れないもので苦戦しております。

作成中の表は
>>483
の例でいいますと、最終的にはB,C,D列は全部非表示にします。
そして、最低得点者の名前のみを、例で言えばA1に「Bさん」、A2に「Dさん」、A3に「Eさんと」表示したいのです。
490名無しさん@そうだ選挙にいこう:2009/10/15(木) 23:10:13
【1 OSの種類         .】 Windows xp
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 できれば関数で(複数の列の値を変更して直ぐに反映された表を確認したいので)
【4 VBAでの回答の可否】 関数で無理でしたらVBAでも可です。

IF関数を使って24時またぎの表を作ろうと思っていますが24時を過ぎると表示されません。

例)午後19時から午前3時まで、「■」を使った10分刻みの表を作るとします。
下記関数を使用し(予め、ある時刻のセルに■を表示させる関数を入力しておき)
A7に19:00B7に3:00と入れると表示されません…23:50までは正常に表示されます。
何か方法は無いでしょうか、よろしくお願い致します。

使用している関数
=IF(AND(A7<=TIME(23,40,0),B7>=TIME(24,50,0)),"■","")
491490:2009/10/15(木) 23:27:14
10分刻みなのでこうでした
=IF(AND(A7<=TIME(23,40,0),B7>=TIME(23,50,0)),"■","")
492名無しさん@そうだ選挙にいこう:2009/10/15(木) 23:53:35
>>490
A7の方が大きい場合B7は翌日だと判断して1を足す
=IF(AND(A7<=TIME(23,40,0),B7+(A7>B7)>=TIME(23,50,0)),"■","")

本来はこんなことせずに最初から日のデータも入れておいた方が良いと思うけど。
493490:2009/10/16(金) 01:19:40
>>492
汎用的に使いたいので日時を指定せずできればと思っています。
せっかくご教示頂きました関数で試しましたが、これだと常にセルが
塗りつぶされている状態になり、正常に動作しないようですが
ちなみに1を何処に+すればよいでしょうか

完成イメージですが、横に延びるグラフにしたいです。
A7 19:00と入力
B7 3:00と入力
とすると同一行に時刻を埋め込んだセルのみが■■■■■■■■■■というように
塗りつぶされる感じです

R7 =IF(AND(A7<=TIME(23,40,0),B7>=TIME(23,50,0)),"■","")
S7 =IF(AND(A7<=TIME(23,50,0),B7>=TIME(24,0,0)),"■","")
T7 =IF(AND(A7<=TIME(0,0,0),B7>=TIME(0,10,0)),"■","")
U7 =IF(AND(A7<=TIME(0,20,0),B7>=TIME(0,30,0)),"■","")
・・・・
494名無しさん@そうだ選挙にいこう:2009/10/16(金) 06:11:30
>>487
A,B,C間にそれぞれ一行ずつ空けてその後ずらしたい列をカット&コピーで
一行ずらしてやっとけ。
495名無しさん@そうだ選挙にいこう:2009/10/16(金) 07:37:21
>>493
時間*■の個数でいいのかな。めんどくさいから全部作りかえるよ
=REPT("■",ROUND(((B7>A7)*(B7-A7)+(B7<=A7)*(B7+1-A7))*24,0))
>>486
配列に入れて最後にセルに戻す
再計算や描画を一時的にとめる、など
496名無しさん@そうだ選挙にいこう:2009/10/16(金) 08:18:54
【1 OSの種類         .】 WindowsXP home edition
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 参照 挿入 リンク イメージ オブジェクト など

同一ファイル内シート、または別ファイル内シートの中にある一部(セルで指定)を
参照してイメージとして挿入するという機能があったと思うのですが
やり方がわかりません。
色々いじってみましたが
[挿入]の[オブジェクトの挿入]、[ファイルから]という指定がもっとも近い
機能でした。(ドラッグで挿入したイメージをサイズ変更できる)
初歩的ですみませんがよろしくお願いします。
497496:2009/10/16(金) 08:47:26
すみません、自己解決しました。
498名無しさん@そうだ選挙にいこう:2009/10/16(金) 11:17:13
【1 OSの種類         .】 WindowsXP Pro SP2
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 Jan 1月 文字列

"Jan1"という文字列のあるテキストファイルを読み込むと"1-Jan"となってしまいます。

読み込んだあとに文字列に変更しても既に数字データになっているし
テキストファイルを直接"jann1"としてから読み込んだあと
エクセル上で文字列に変更しても、"Jann1"→"Jan1"と置換した時点で
日付属性に戻って"1-Jan"になってしまいます。
(置換オプションで文字列を指定すると、なぜか最初から数字データになります)

一つずつ直接変更すれば文字列のままなんですが、大量にあるため
現実的ではありません。何かよい方法はないでしょうか
499名無しさん@そうだ選挙にいこう:2009/10/16(金) 11:23:25
>>498
書式設定で対象セルを文字列にしてから置換するのがいいかな
500名無しさん@そうだ選挙にいこう:2009/10/16(金) 11:25:58
>>499
文字列にしてあるんですが、不思議なことに置換すると何故か日付に変わってしまうんです。
501名無しさん@そうだ選挙にいこう:2009/10/16(金) 12:04:27
>>500
置換が出来ないぜ・・

テキストファイルは書式設定が無いから、
書式設定を設定しても一旦保存してから開くと必ず解除されるよ

解決策として、A1に入ってるとして、
B1=TEXT(A1,"mmmd")
もしくは
B1=TEXT(A1,"@")
でどうでしょうか?
502名無しさん@そうだ選挙にいこう:2009/10/16(金) 13:13:30
>>501
テキストファイルをエクセルファイルとして保存してやっています。

やはり関数使うしかないですかね。
ただ該当の文字列はランダムに多数存在しているので
結局手作業になってしまうんですよね。
文字列の書式設定が変わらない方法があるといいんですけど。

引き続き模索してみます。レスありがとうございました。
503名無しさん@そうだ選挙にいこう:2009/10/16(金) 15:37:20
>>502
まず新規ワークシートを開いて全セルの書式を文字列にしておく。
テキストファイルをメモ帳で開いてすべて選択→コピー、Excelに貼り付け。
タブ区切りならそのまま貼り付けられるので終了。コンマ区切りなら区切り位置→コンマ。
504名無しさん@そうだ選挙にいこう:2009/10/16(金) 17:02:04
Excel2003について質問なんですが、例えば6月のあるデータと7月のあるデータ
を='6月'!C52+'7月'!C64のような計算式にして導く場合はどうすればいいでしょうか?
収支決算を作りたいので楽な方法がいいです。
505名無しさん@そうだ選挙にいこう:2009/10/16(金) 17:08:45
>>503
実はその方法でもやっぱりダメだったんですが、ふと思いついて
引き続き同じクリップボードを貼り付けてみたらうまくいきました。

元データ
jan1,jax1,jay1
jan2,jax2,jay2
jan3,jax3,jay3

1回目(貼り付け後、区切り位置調整)
1-Jan jax1 jay1
2-Jan jax2 jay2
3-Jan jax3 jay3

2回目(1回目の作業のあとそのまま貼り付け)
jan1 jax1 jay1
jan2 jax2 jay2
jan3 jax3 jay3

これで何とかミスを誘発する手作業無しに行けそうです。
いろいろありがとうございました!
506名無しさん@そうだ選挙にいこう:2009/10/16(金) 17:49:41
>>504
どうしようもこうしようもそうするしかないんじゃいか
シートの内容が分かればindirectとmatch、sumif辺りを組み合わせたりもできるだろうけど
507LUIGI:2009/10/16(金) 18:14:40

【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
http://www.nicovideo.jp/watch/sm6732647
この動画をみて相談したいんですが、
エクセルでフルHDサイズにしたいのですがどうすればいいですか?
エクセルに関する知識は全くないものですから・・・。
こんな簡単な質問ですが、親切な人、誰かお願いします。
508490:2009/10/16(金) 19:21:04
>>495
すばらしいです!できればこれを1セルに1こ■と言う風にして
シフト表を作るとして10分刻みでこんな表にしたいんです。
出勤 退勤 18 19 20 21 22 23 24  1  2  3  4  5 
19:00 2:00    ■ ■ ■ ■ ■ ■ ■ ■
22:00 4:00            ■ ■ ■ ■ ■ ■ ■ 

よろしくおねがいします。
509名無しさん@そうだ選挙にいこう:2009/10/16(金) 20:38:47
>>504
”収支決算シート”を作成してそこにその計算式を入れればどうでしょうか?
510名無しさん@そうだ選挙にいこう:2009/10/16(金) 21:20:59
>>498
エクセルへの読み込み方
まず、エクセルの白紙シートで属性を文字列に変える
読みたいテキストファイルをメモ帳で開く > 全選択コピー > エクセルに貼り付け

置換した時点で属性変えたくないなら、置き換え先の文字の頭に ' を入れる。
"Jann1"→"Jan1"なら
置き換え元 Jann
置き換え先 'Jan
みたいに
511名無しさん@そうだ選挙にいこう:2009/10/17(土) 01:29:57
>>505
横書きの日本文に「,.」を用いるのは朝鮮人だよ。日本語は横書きでも「、。」が正しい。
韓国語では、縦書き文書では「、」が用いられ、横書き文書では「,」が用いられる。
この用い方は統一されているため、縦書き文書に「,」を、横書き文書に「、」を用いるのは誤り。
だから日本語で書くときもカンマピリオドの癖が出るんだろうね。
512名無しさん@そうだ選挙にいこう:2009/10/17(土) 03:16:13
常にセルに=がある前提にしたい。
つまり、=1+1と入れなくて、1+1と入れれば計算されるようにしたいということ。

目的
コピぺして計算するときに、いちいち全てのセルに=を入れていく作業を無くしたい。

【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 =SUM(A1:B2)とかができる程度のレベル
【4 VBAでの回答の可否】 検索して理解できる程度の内容なら可
【5 検索キーワード     】 エクセル イコール  = 前提 据え置き等
513名無しさん@そうだ選挙にいこう:2009/10/17(土) 03:48:30
>>512
逆に先に=をセルに入れておくというのはどうですか?
並びのセルなら一つ=を入れておいてオートフィルタでコピーペーストして
おくとか。
514名無しさん@そうだ選挙にいこう:2009/10/17(土) 03:48:47
>>511

これは朝鮮とか関係ない。
日本語の横書きは句読点の使い方に流派がある。
理系の専門書なんかコンマ派が多いぞ。
515名無しさん@そうだ選挙にいこう:2009/10/17(土) 03:50:05
>>512
WorkSheetChangeで入力された文字列を数式に置き換える
516512:2009/10/17(土) 03:52:01
ありがとうございます。試してみます。
517名無しさん@そうだ選挙にいこう:2009/10/17(土) 04:01:26
>>511

韓国語の横書きでコンマを使うのは日帝残滓でしょう。つまり日本統治の名残です。
韓国人に指摘してあげたらどうでしょう。日本なマネすんなと。
518名無しさん@そうだ選挙にいこう:2009/10/17(土) 04:54:27
519512:2009/10/17(土) 05:01:27
>>513
=をすべてのセルに入力後、コピぺしたところ、数式が上書きされて意味がありませんでした。
オートフィルタを利用したコピぺというのが良く分かっていない可能性が高いので、
オートフィルタ コピーで検索した。
そして、オートフィルタに=を入れてそれらを全セルにぶち込んだが、特に結果が変わらない。
というか、オートフィルタ自体が上書きされて消される。
そして、オートフィルタをセル行・列に入れても、抽出するだけで良く分からない状況です。

できれば、操作含めて教えてください。

>>515は現在検索し、知識追加中です。
どうやら、VBAについては全く分からなかったようで、そこから勉強しています。
また、VBAの使い方までは行きましたが、いまだコードの書き方を理解していません。
このまま知識を蓄えれば行けるんでしょうか?
520512:2009/10/17(土) 05:10:18
http://questionbox.jp.msn.com/qa463848.html
似た内容の質問を発見しました。置換ってこれのことですか?
521512:2009/10/17(土) 05:16:07
で、出来たーーーお休みなさい。どうもありがとうございました。
522名無しさん@そうだ選挙にいこう:2009/10/17(土) 11:51:40
>>511
実は公務員系の一部で横書きがコンマになるソフトがあるんだな、これが
何ていうのかはは知らないけど
>>508
C6から右に数字が入っている前提で
C7=IF(AND(($A7*24)<=IF(C6<12,C6+24,C6),((($B7+1)*24))>=(IF(C6<12,C6+24,C6))),"■","")

523名無しさん@そうだ選挙にいこう:2009/10/17(土) 13:30:53
韓国とかなにいってんの
公務文書とかは書き方が法律で決まってるんだけどな
524名無しさん@そうだ選挙にいこう:2009/10/17(土) 13:33:24
(;゚д゚)ァ
525490:2009/10/17(土) 13:43:12
>>518
>>522

大変参考になりました。ありがとうございました。
これを元に自分でも勉強してみます。
526名無しさん@そうだ選挙にいこう:2009/10/17(土) 16:18:36
横書きのカンマはJISで決まってるし文部省もそういう基準を示してる。
公用文も正式にはカンマだが、だれも守らないだけ。ぐぐればすぐわかることだが。
527名無しさん@そうだ選挙にいこう:2009/10/17(土) 17:41:30
文科省管轄公務員の友人もカンマピリオド使ってたわそう言えば
528522:2009/10/17(土) 18:41:29
テキトー書いて失礼しました。ソフトと思い込んでいましたよ
法律っつーか最近そういう基準があるんだね
529名無しさん@そうだ選挙にいこう:2009/10/17(土) 19:10:36
最近というか、基準が出たのは昭和25年だけどな
530名無しさん@そうだ選挙にいこう:2009/10/17(土) 21:57:09
【1 OSの種類         .】 WindowsVistaUltimate
【2 Excelのバージョン   】 Excel2k
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 excel vba 処理 プロシージャ

複数のプロシジャを次々実行していくようなとき
Call test1
Call test2
Call test3
と書いて実行していますが

シェルスクリプトのように test1 && test2 && test3
のようにシーケンシャルに実行させる方法はあるのでしょうか?
それともフラグを立てて確認するしかないのでしょうか?
531名無しさん@そうだ選挙にいこう:2009/10/17(土) 22:03:13
初歩的なことで質問です。
A1に5.5、A2に5.5、A3に=A1+A2と入れると11になります。
A1とA2を Comma [0] にして表示をそれぞれ6にしたとき、A3の表示を12(6+6なので)に
したいのですが、どのようにすればいいでしょうか?
532名無しさん@そうだ選挙にいこう:2009/10/17(土) 22:10:23
>>531
表示と同じようにroundしてから足す
533名無しさん@そうだ選挙にいこう:2009/10/17(土) 22:13:45
A3 =SUM(ROUNDUP(A1,0)+ROUNDUP(A2,0))
534名無しさん@そうだ選挙にいこう:2009/10/17(土) 22:16:36
=IF(A1/10>=0.5,A1+0.5,A1)+IF(A2/10>=0.5,A2+0.5,A2)
535533:2009/10/17(土) 22:18:01
”up”いらんかった
536名無しさん@そうだ選挙にいこう:2009/10/17(土) 22:56:09
>>531
オプションー計算方法の表示桁数で計算にチェック
ただ、色々と危ない木はするけど
537531:2009/10/17(土) 23:17:36
>>532-536
ありがd!!
=SUM(ROUND(A1,0)+ROUND(A2,0))でうまくいきました。
538名無しさん@そうだ選挙にいこう:2009/10/17(土) 23:29:39
SUMもいらんがな
539名無しさん@そうだ選挙にいこう:2009/10/17(土) 23:32:55
好きにせい
540名無しさん@そうだ選挙にいこう:2009/10/17(土) 23:35:48
好きだ。(はー
541名無しさん@そうだ選挙にいこう:2009/10/17(土) 23:36:19
そう言えば

=sum(A1+A2) とかなんでもsum付けるオヤジが会社にいるけど
いつツッコミ入れればいいのか、考え中
542名無しさん@そうだ選挙にいこう:2009/10/17(土) 23:50:57
複数の数字が順番バラバラにセルの上にあるのですが、
例えば、1がn個 2がn´個と表をまとめたいのですが
どのようなツールをつかえばいいのですかね
ご指導よろしくおねがいします。
543名無しさん@そうだ選挙にいこう:2009/10/17(土) 23:51:01
>>541
さっさとツッコメ
544名無しさん@そうだ選挙にいこう:2009/10/17(土) 23:52:55
>>542
COUNTIF関数
545名無しさん@そうだ選挙にいこう:2009/10/18(日) 00:04:54
ピボット
546名無しさん@そうだ選挙にいこう:2009/10/18(日) 00:13:19
>>544
理解しました。
ありがとうございます。
547名無しさん@そうだ選挙にいこう:2009/10/18(日) 00:35:57
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003

セルの中に数式や、別シートのリンク?(=上期!B5)が書かれています。
数式の結果ではなく、数式そのものを表示させることは出来ますか?
548名無しさん@そうだ選挙にいこう:2009/10/18(日) 01:33:07
>>547
ツール>オプション
表示タブの中の、数式ってのにチェック
549名無しさん@そうだ選挙にいこう:2009/10/18(日) 02:19:28
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 条件 結合 

あるセルにAと入力した場合、他のセルを結合してそこにAと表示させる事は可能ですか?
550名無しさん@そうだ選挙にいこう:2009/10/18(日) 06:56:46
>>549
可能

その程度の事はちょっと試せば判りそうな事だけど、手元にエクセル無いんだ
ろうなと思って手元にエクセルがある私からのレス。
551名無しさん@そうだ選挙にいこう:2009/10/18(日) 07:18:11
>>549
条件によって結合したりしなかったり、というのならVBAが必要
552名無しさん@そうだ選挙にいこう:2009/10/18(日) 08:26:04
>>549
あるセルをA1とB1とする
=a1&b1
=CONCATENATE(a1,b1)
553名無しさん@そうだ選挙にいこう:2009/10/18(日) 09:22:49
>552

まさかそれを「結合」と言うのか?
554名無しさん@そうだ選挙にいこう:2009/10/18(日) 11:12:38
>>553
お、スマン。質問をちゃんと読んでなかった
>>549
>>552は忘れてください
で、セルの結合をした場合、左上のセルの文字列や数式が優先される
ただし範囲内で入力されている箇所が一箇所だけだとそれになる
他のセルを先に消しておくのが早いかな
じゃなきゃ先にコピーしておいて、結合してから元のセルにコピーしなおすなど
555名無しさん@そうだ選挙にいこう:2009/10/18(日) 14:34:31
>549
「あるセルにAと入力した」というイベントから「セル結合+当該セル範囲に参照式設定」を行う
という意味にもとれる。だったらChangeイベントとマクロの自動記録でできたコードをちょっと修正
だけでいいと思う。

それとも単なる結合セルへの参照式設定のことなんだろうか?
556名無しさん@そうだ選挙にいこう:2009/10/18(日) 15:04:33
結合済みのセルに数式を入れる程度のことなら
普通に何も考えずにやってしまうレベルの話だと思わんか
557名無しさん@そうだ選挙にいこう:2009/10/18(日) 17:50:29
>>548
547です。
ありがとうございmあした。
558名無しさん@そうだ選挙にいこう:2009/10/18(日) 21:02:37
またか
559名無しさん@そうだ選挙にいこう:2009/10/18(日) 21:52:55
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel20003
【3 VBAが使えるか    .】 少々
【4 VBAでの回答の可否】 可
【5 検索キーワード     】

行数が一定しないリストで、最右列にあるデータの列番号と行番号を得るにはどうすればいでしょうか?
560名無しさん@そうだ選挙にいこう:2009/10/18(日) 22:36:24
>>559
=MAX(COLUMN(1:1)*(0<>(1:1)))
と入れてCtrl+shift押しながらenter
1:1って部分は1行目から1行目って意味だから2行目なら2:2と買えておくれ
561549:2009/10/18(日) 23:44:48
みなさん有難うございます。
Changeイベントというのが自分には出来そうにないので、今回は断念します。
562名無しさん@そうだ選挙にいこう:2009/10/19(月) 00:40:14
【1 OSの種類         .】 Windows vista
【2 Excelのバージョン   】 Excel xp
【3 VBAが使えるか    .】 多少
【4 VBAでの回答の可否】 可

ハイパーリンクになっているセルについて、表示されている文字ではなくリンク先URL
をコピーして貼り付ける事はできますか?

たとえば"グーグル"と表示されていてクリックするとhttp://google.comに飛ぶ文字列があり
これをコピペすると"グーグル"がペーストされますよね?
そこを、http://google.comのほうでペーストをしたいのです
563名無しさん@そうだ選挙にいこう:2009/10/19(月) 01:12:33
>>562
ハイパーリンクの編集画面からコピペする以外だとリンク先を取り出すのはVBA使わないと無理
たとえばこんな感じ
Range("B1") = Range("A1").Hyperlinks(1).Address
564名無しさん@そうだ選挙にいこう:2009/10/19(月) 14:04:56
【1 OSの種類         .】 Windows Vista
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 エクセル 一文字 変える 計算

シートが1,2,3と三つあり、シート1のA3×シート2のA3の答えをシート3のA3に、ということを、

A3B3C3・・・
A4B4C4・・・
A5B5C5・・・
・ ・ ・
・ ・ ・

↑のように繰り返したいのですが、この場合、シート3のセルに1つずつ地道に入力していくしかないのでしょうか?
何か賢いやり方をご存じの方がいれば、ご教示願います。
565名無しさん@そうだ選挙にいこう:2009/10/19(月) 14:22:56
>>564
オートフィル
でぐぐれ
566名無しさん@そうだ選挙にいこう:2009/10/19(月) 14:33:55
>>564
コピペ
567564:2009/10/19(月) 15:55:38
>>566
10×72のセルを、変える文字以外コピペして、カチカチ入力しました。地獄でした。

>>565
感動しました。エクセルって素晴らしい。
568564:2009/10/19(月) 16:02:19
>>564
>>565
興奮のあまりお礼をするのを忘れてしまいました。
お二方初歩的な質問にも関わらずレスどうもありがとうございました。
569名無しさん@そうだ選挙にいこう:2009/10/19(月) 16:33:33
誰でも最初は初心者だからね〜
がんばってね

エクセルが重くなってくると、テンポラリフォルダを消す+デフラグすると
速度動作が戻ることがある。というか戻った。動作が重いと感じたら試してみてください。
570名無しさん@そうだ選挙にいこう:2009/10/19(月) 17:24:52
>>567
そうじゃなくて。
「変える文字以外」じゃなくて、セルをそのままコピペするんだってば。

たとえば
=A1+A2
みたいな式が入ってたとして、そのセルを隣にコピペするだけで
=B1+B2
に自動的に式が書き変わる。
範囲指定して一気に貼り付ければ、全部のセルに適切な数式が自動的に入る。
571名無しさん@そうだ選挙にいこう:2009/10/19(月) 18:59:44
>>564
シート3のA3をダブルクリックしてセルに = を入力。
シート1のA3をクリックそして * を入力。
シート2のA3をクリック。Enter。

→ シート3のA3に答えがでる。そのセルからしたにオートフィルでおk。のはず。
572名無しさん@そうだ選挙にいこう:2009/10/19(月) 19:04:11
追加
ABCもだしたいなら右に3つ分オートフィルして、
A3B3C3の答えをだして、A3B3C3を選択してそのまま3つまとめて下にオートフィル。
573名無しさん@そうだ選挙にいこう:2009/10/19(月) 21:17:05
すんません、VBAに関して教えてください。
OS: WinXP,Vista
Ver: Excel2003だが、2007にも使える対処法を希望します。

マクロで、#refのセルの扱い方について教えてください。

if range("A1") <> range("A2") then ...

というときに、A1が #ref の場合、比較以前に「型が一致しません」と
なってしまいます。
これを鑑みるに、A1が #ref かどうかという条件をまず入れたいのですが、
この比較ができません。
どのようにするべきでしょうか。
574564:2009/10/19(月) 22:09:53
>>569
いつか私も誰かに教えられるようにがんばります。

>>570
ああ・・・。そういうことでしたか。誤解してしまいました。すみません。

今試したら、ちゃんと書き変わってました。驚きました。エクセル素晴らしいです。

>>571
すごい。これなら自分で入力する文字をかなり減らせますね。これは色々な場面で使えてとても便利に違いない…


本当にみなさんどうもありがとうございました。すっかりオートフィルの虜です。
575名無しさん@そうだ選挙にいこう:2009/10/19(月) 22:16:39
関数を使ってセル内の全ての空白を取る方法ありませんか?
TRIMだと半角一文字の空白が残ってしまいます。
576名無しさん@そうだ選挙にいこう:2009/10/19(月) 22:29:37
>>575
どうしても関数じゃなきゃだめなの?
置換じゃだめなの?
577名無しさん@そうだ選挙にいこう:2009/10/19(月) 22:31:30
つーか、全ての空白は取れんだろ?
釣りか?
578離島のサンデーPG:2009/10/19(月) 22:52:43
>>573
Sub a()
If Range("A1").Text = "#REF!" Then
Debug.Print "A1が#REF!です"
ElseIf Range("A2").Text = "#REF!" Then
Debug.Print "A2が#REF!です"
ElseIf Range("A1") <> Range("A2") Then
Debug.Print "同じではありません"
Else
Debug.Print "同じです"
End If
End Sub
579名無しさん@そうだ選挙にいこう:2009/10/19(月) 23:12:33
>>575
=SUBSTITUTE(SUBSTITUTE(A1," ","")," ","")
580名無しさん@そうだ選挙にいこう:2009/10/20(火) 00:10:31
>>573
エラーってのは特殊な値が入ってるからねー
>>578は個人的には微妙、というか本質的にはダメだろう

ttp://www.asahi-net.or.jp/~ZN3Y-NGI/YNxv98c3.html
など見て、エラー値というものを覚えるといい
これは文字列ではない
581名無しさん@そうだ選挙にいこう:2009/10/20(火) 04:57:56
結果オーライ
582名無しさん@そうだ選挙にいこう:2009/10/20(火) 05:14:53
>>580
ダメ出ししてるくせに、自分では答えられない馬鹿。
句点も打てないお前は、日本語の勉強をしろよ。
小学校すら行けなかったのか?
583名無しさん@そうだ選挙にいこう:2009/10/20(火) 07:11:22
なんでそんなにいかってんだよw
584名無しさん@そうだ選挙にいこう:2009/10/20(火) 07:12:51
>>583
>>580が痛すぎるからだろ
585名無しさん@そうだ選挙にいこう:2009/10/20(火) 07:14:16
そうだねw
↓次の質問どうぞ〜
586名無しさん@そうだ選挙にいこう:2009/10/20(火) 08:11:16
>>584

痛すぎるのは>>578だと思うが。。。
587名無しさん@そうだ選挙にいこう:2009/10/20(火) 08:33:34
EXCEL2003です。VBA使用可。

シート上にある複数のオブジェクト(画像)を全て選択する方法を
教えて下さい。

『[Ctrl]キーを押しながら、全オブジェクトをクリックする』は
除きます。

よろしくお願いします。
588名無しさん@そうだ選挙にいこう:2009/10/20(火) 08:40:34
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

何度も出ている質問かもしれないですがすみません。

バージョン2007?拡張子xlsxのもので作成したファイルをxlsに保存しなおして
それで、VLOOKUPを使おうとしたら、帰ってくる値がデタラメになってしまいます。
範囲指定を絶対参照にしたり、範囲に名前をつけてみたりしたのですが、できません。

どうしたらいいですか?
すみません、よろしくお願いいたします。m(__)m

589名無しさん@そうだ選挙にいこう:2009/10/20(火) 08:50:57
>>586
折角スルーしてんのに相手するなよぉ
>>587
編集→ジャンプ→セル選択でオブジェクト
ActiveSheet.DrawingObjects.Select
>>588
環境がないんで再現できないな
そのファイルをアップロードすることが可能なら原因を探ってみるよ
590588:2009/10/20(火) 08:53:21
すみません!
今、仮のデータで新しいシートでVLOOKをやってみても全然おかしい。orz

どうなってるんだろう。。。
VLOOK自体が出来ない。

ほんとに困った。誰か助けて〜

591588:2009/10/20(火) 08:55:48
>>589さん
ありがとう!

でも、バージョンとかの問題じゃなさそうですよね。。。

592名無しさん@そうだ選挙にいこう:2009/10/20(火) 09:01:31
>>590
使い方間違えてるんじゃない
A1-A3に「あ、い、う」。B1-B3に「1、2、3」
=VLOOKUP("あ",A1:B4,2,0)
=VLOOKUP("い",A1:B4,2,0)
=VLOOKUP("う",A1:B4,2,0)
で試してみて
593588:2009/10/20(火) 09:17:37
>>592

できましたあ!
検索の型に0を入れなかったのです。(>_<)

ありがとうございました。
とても助かりました!!m(__)m




594名無しさん@そうだ選挙にいこう:2009/10/20(火) 09:49:25
ひでぇw
595名無しさん@そうだ選挙にいこう:2009/10/20(火) 09:59:19
俺も同じことやらかしたので批判はできねーんだぜ
596名無しさん@そうだ選挙にいこう:2009/10/20(火) 10:45:22
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 少しなら
【4 VBAでの回答の可否】 なるべく使わずに
【5 検索キーワード     】

私女だけど、入力規則のリストで質問です><

リスト用の定義が2種類(定義A、定義B)があります。
B1でリストを使います。

ここで、
A1が「あ」だったら、定義Aを
A1が「い」だったら、定義Bを リストとして使うことは可能ですか??
597名無しさん@そうだ選挙にいこう:2009/10/20(火) 10:57:42
>>596
A1には「あ」「い」のどちらかを入力
A2=IF(A1="あ","定義A","")&IF(A1="い","定義B","")
B1のリスト元の値=INDIRECT(A2)

元の値にif使えるかと思ったが無理だったな
598596:2009/10/20(火) 11:01:32
>>597
INDIRECTかああああああああああああああああああああああああああああ

その発想はなかった。ありがとう><
599587:2009/10/20(火) 11:37:42
>>589
レスありがとうございます
600名無しさん@そうだ選挙にいこう:2009/10/20(火) 13:07:29
反復計算機能をマクロから呼んで数値計算をしてるんですが、
2日程度ほっておくとリソース不足云々といわれ、止まってしまいます。
データの入っているセルを増やすわけではないし、
どうしてこうなるのでしょうか?また、対処法があれば教えてください。
WindowsXPPro、Excel2007です。
601名無しさん@そうだ選挙にいこう:2009/10/20(火) 13:15:27
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 「右クリックメニューが出ない excel」「xlbファイルがない」など

よろしくお願いします。

先日から、エクセルにて右クリックメニュー及び上部メニューが表示されなくなりました。
右クリック窓が白い影のような状態で表示され、
文字などは見えず、適当な場所でクリックしても反応しない状態です。

この状態は割とあるらしく、xlbファイルが破損などで異常になった場合の症状で、
対処法としてxlbファイルを削除することで治ることが多いようです。

ところが、このxlbファイルが存在しないので困りました。
検索をかけても、直接C:\Documents and Settings\<ユーザー名>\Application Data\Microsoft\Excelにアクセスしても、
存在しないのです。
もちろん両方とも隠しファイルも含まれる・表示されるようにしてあります。

Office自体の再インストール、システムの復元も試しましたが無理でした。
こうなったらリカバリしかないのですが、
諸事情は省きますがシステム導入のためリカバリすると万単位でお金がかかることになってしまうで、
出来ればリカバリをせず解決できればと思い、こちらで質問させていただきました。

解決方法・アドバイスなどがありましたらどうぞよろしくお願いいたします。
602名無しさん@そうだ選挙にいこう:2009/10/20(火) 13:27:17
>>600
俺もよく分からないだけど、
例えば変数Aに1を代入、これをdoloopで延々繰り返すだけでも
メモリはモリモリ増えていく。仕様じゃないかなぁ
>>601
ttp://support.microsoft.com/default.aspx?scid=kb;ja;882248
とか?
拡張子xlbのファイルはエクセル2000にも無かったよ
603601:2009/10/20(火) 13:38:05
>>602
そのサイトを参照してxlbの異常で起きる不具合とあったので、
手順どおりxlbを探してみたのですがなかったのです。

* Excel 2003 の場合 : Excel11.xlb
* Excel 2002 の場合 の場合 : Excel10.xlb
* Excel 2000 の場合 の場合 : Excel.xlb

とあるので、普通は存在してるはずなのですが・・・
何かxlbファイルが構成される条件などがあるのでしょうか。
604名無しさん@そうだ選挙にいこう:2009/10/20(火) 14:33:55
>>603
うちのマシンで探してみたら、Excel11.xlbは
C:\Documents and Settings\ユーザー名\Application Data\Microsoft\Excel
というフォルダの中にあった。
Excel2000もインストールしてあるんだけどExcel.xlbはどこにもなかった。圧縮してあるんだろうか。
605名無しさん@そうだ選挙にいこう:2009/10/20(火) 15:20:56
>>602
ありがとうございます。なんとかメモリの消費を抑える方法を調べてみます。
606名無しさん@そうだ選挙にいこう:2009/10/20(火) 15:26:42
Wordでドキュメントをマクロでいじっていたら、同様にリソース不足になった

その時の対処法は、こまめにセーブするで切り抜けたけど
同様の方法じゃダメかな?
607601:2009/10/20(火) 15:40:01
>>604
わからないですね…

が。
別にユーザーアカウントを作ることでいちおうは解決しました。
ということは、やっぱりdocument and setting/ユーザー名以下のどこかに、原因となるものがあると思うんですが……
608名無しさん@そうだ選挙にいこう:2009/10/20(火) 15:44:57
>>603
ゴメン、隠しフオルダ検索してなかった
確かに>>604さんと同じ場所にあるね。ただしエクセル2000
思いつく方法は管理者権限で探して見る・・とか、別のユーザー名のフォルダを探してみるとか
それともそのファイルが無いことが問題なのかなぁ
あと、拡張子は表示してる?拡張子表示しないと多分検索にはひっかからない
609名無しさん@そうだ選挙にいこう:2009/10/20(火) 16:37:13
さっきまで作業していたエクセルのデータが何故かとづぜん
今日の朝の時点のものに変わりました。
その時はCtrl+S と間違えてCtrl+Wを押してしまいました。
今日のうちに何度も保存をしていたのにそれがなくなってしまって困っています。
データを元に戻す方法はないでしょうか?
610名無しさん@そうだ選挙にいこう:2009/10/20(火) 17:04:28
Ctrl+Wはウィンドウを閉じるシヨートカット

ただ何度も保存をしてるなら別の場所に保存してるんじゃないか?
拡張子「.xls」でファイルを検索してみるとあるかも
611名無しさん@そうだ選挙にいこう:2009/10/20(火) 17:06:45
>>606
ありがとうございます!試してみます。
612601:2009/10/20(火) 19:05:06
>>608
拡張子も表示してますね。
アカウントも管理者権限のあるものしか使ってなかったですし…
とりあえずは新規アカウントということで解決を見せたのでこの質問はこれまでにします。
ありがとうございました。
613名無しさん@そうだ選挙にいこう:2009/10/21(水) 00:43:10
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 エクセル ウインドウ 別 表示


Excel2003で、複数のファイルを別ウィンドウで開く方法を教えてください。

例えばデスクトップ上に Excelの「A」「B」…という複数の
エクセルファイルのアイコンがあったとします。
今までは 各アイコンをダブルクリックすることで、
それぞれ自動的に別ウィンドウが立ち上がっていました。

しかし、ある時突然同じウインドウでしか表示されなくなってしまいました。
もちろん特別な操作や設定の変更はしていません。
(同じ操作をしても別ウィンドウが立ち上がるのではなく、
既に開いているウィンドウの上に重ねて別ファイルのデータが表示される感じです。)

この時、ファイル切替はデスクトップ最下にあるタブを選択・切替すること
でしかできません。(AからBにタブを切り替えると Aは見れなくなってしまいます)
またタブの右クリックで表示されるメニュー(重ねて表示等)は全てグレーアウトに
なっているため どれも選択不可です。

614名無しさん@そうだ選挙にいこう:2009/10/21(水) 00:44:10
【続き】
ネット上で複数解決方法を見つけましたが、
どれも意図するものではありませんでした。


■並べて表示:同じウィンドウの中で 縦や横に各ファイルを並べて表示
→別ウィンドウではない為 問題外

■「ツール」→「オプション」→「全般」→「ほかのアプリケーションを無視する」
→開かれているAで上記操作を行った後、デスクトップのBをダブルクリックで
開くと、別ウィンドウは立ち上がるため「別ウィンドウ」という点では
解消されますが、そのウィンドウ(B)にはデータが表示されていない(灰色の空excel)
また全てのファイルを一旦閉じると、次回以降Aやその他のファイルをダブルクリックしても
デフォルトで空Excelが起動するようになってしまう

■デスクトップ最下のタブで切替
→別ウインドウの表示ではない為問題外。切り替えると他のファイルが見れない

■「スタート」→excel起動、 「ファイル」→「開く」→「ファイル名を指定」
→別ウィンドウで起動するが、手間が掛かる

■excelツールバー「ウインドウ」→「新しいウィンドウを開く」
→「A」「A:2」…というように同じデータのファイルが
別ウインドウで開かれるだけなので問題外

■タスクバーのプロパティから「同様のタスクバーボタンをグループ化」も
試してみましたが、タスクバーの「タブのみ」が別々になったりひとつになるだけで、
ウィンドウは別になりませんでした…

615名無しさん@そうだ選挙にいこう:2009/10/21(水) 00:45:41
【続き2】

尚、ネットで検索した結果の中には
「Excelは元々 一つのウィンドウでしか開かないような仕様になっている」
との情報も見受けられましたが今まで「別ウィンドウで自動的に立ち上がって」いて
ずっと普通に使ってきたので当てはまりません。

ネットで検索したどの方法も、解決になっていないものや
スタートボタンから手順を踏むもの、
いちいちファイル名を指定して開くものなど
非常に手間がかかるものばかりで 大変困っています。


あくまで、今まで使い慣れた「ダブルクリックのみ」で
「複数ファイルを自動的に別ウィンドウ起動」する方法が知りたいです。

この困った状況の原因や、元の使い勝手に戻す為の設定方法をご存知の方、
是非解決方法を宜しくお願いします。 長文にて失礼いたしました。
616名無しさん@そうだ選挙にいこう:2009/10/21(水) 01:12:23
ツール - オプション - 表示 の「ウィンドウをタスクバーに表示」かな?
617名無しさん@そうだ選挙にいこう:2009/10/21(水) 07:20:51
>>613
他のアプリケーションを無視する
って項目が
つーる おぷしょん 全般 にある
618名無しさん@そうだ選挙にいこう:2009/10/21(水) 07:44:28
言いたいことは分かった
もしかしてブックごとに独立したウインドウで開きたいってことじゃね
619617:2009/10/21(水) 07:46:28
おっと失礼これではダメなのだな
俺の環境ではブックBは開くんだけどなぁ
620名無しさん@そうだ選挙にいこう:2009/10/21(水) 07:51:17
>>618
簡単に言うとそうだな
で、それが617のオプションのはずだがうまくいかないらしい。そんな状態にはならないからわかんねーんだなー
621名無しさん@そうだ選挙にいこう:2009/10/21(水) 08:20:07
どんな操作したのか知らんけど、元に戻したいんだったらリカバリしてみりゃいいんじゃねーの?
あんたの元の状態なんてわからんし
622名無しさん@そうだ選挙にいこう:2009/10/21(水) 08:25:22
検索したらこんなのあったよ。ダブルクリックじゃないみたいだけど、
キレてイライラしてるよりはましなんじゃね?

http://www.trickpalace.net/windows/tips/excel.open.window.htm
623名無しさん@そうだ選挙にいこう:2009/10/21(水) 08:32:15
>>617
おい
開けなくなったぞ
624名無しさん@そうだ選挙にいこう:2009/10/21(水) 09:03:03
ショートカット消したりしてないよな
625名無しさん@そうだ選挙にいこう:2009/10/21(水) 13:39:53
>>621
リカバリは無理・・・会社のPCだもんで。

もちろんショートカットも消してない。
626名無しさん@そうだ選挙にいこう:2009/10/21(水) 14:02:24
そもそもその動作自体がデフォルトではない状態なんだよ
カスタマイズした後で不調になられても答えれる人は少ないだろう
さっさとリカバリするかオプションをデフォルトにすればいいと思う

ちなみにリカバリした後ならすぐに
■「ツール」→「オプション」→「全般」→「ほかのアプリケーションを無視する」
でそれまでの状態に戻せる
627名無しさん@そうだ選挙にいこう:2009/10/21(水) 14:49:23
これの下の方みたいなカスタマイズしてたんじゃね?
http://www.asahi-net.or.jp/~ef2o-inue/kankyo/sub02_03_02.html
Officeアップデートで上書きされるらしいから、それで「不具合」起きたんじゃね?
628名無しさん@そうだ選挙にいこう:2009/10/21(水) 15:30:39
オフィスのアップデートもバージョンアップもしてないし、
カスタマイズを加えた訳でもなくて、
Excelの作業中に 途中から動作設定がいきなり変わる事ってあるのかな?

その日の初め(PC起動時)とか MSのパッチ当てた直後とかなら
まだ理解できるんだが・・・
629名無しさん@そうだ選挙にいこう:2009/10/21(水) 16:32:07
>>628
ある
「ツール」→「オプション」→「全般」→「ほかのアプリケーションを無視する」
にチェックが入ってたことと、自動計算が手動計算になってたことはある

どこかでショートカットキーを押したのか、エクセルの機能かは知らん
ただ絶対に自分で操作はしていないのは自分がよく知ってるし、
それは君も同じことだろう
誰が悪いとか言うよりさっさと解決したほうが良いと思ふ
630名無しさん@そうだ選挙にいこう:2009/10/21(水) 16:42:49
【1 OSの種類         .】 WindowsXPSP3
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ 必要なら勉強します
【4 VBAでの回答の可否】 可

こんな感じの形式のデータ部分を”, ”(カンマと半角スペース)
でつなぎ合わせてテキスト形式に出力したいのですが可能でしょうか?

ttp://windyakin.if.land.to/src/up38_1702.png
631名無しさん@そうだ選挙にいこう:2009/10/21(水) 16:44:32
あるわけねーだろ
アホくさ
632名無しさん@そうだ選挙にいこう:2009/10/21(水) 16:49:03
>>631
アホはお前w
ttp://www.relief.jp/itnote/archives/001258.php
エクセルのバグが多いことも知らないの?
>>613
「エクセル ほかのアプリケーションを無視する」
でぐぐれ
似たような症状の報告が多いので片っ端から試してみるほうが早い
633名無しさん@そうだ選挙にいこう:2009/10/21(水) 16:50:40
>>630
直接の解決方法は知らないけど
CSVで保存した後、カンマをカンマ+半角スペースに置換してみるというのはどう?
634名無しさん@そうだ選挙にいこう:2009/10/21(水) 16:55:08
お前がそう思うならそうなんだろ
お前ん中では
635名無しさん@そうだ選挙にいこう:2009/10/21(水) 16:56:03
>>633
おぉ、これで行けそうです
タイトルの中に","があった場合は各々対応しないといけないですがかなり楽に作業できそうです
ありがとうございます
636名無しさん@そうだ選挙にいこう:2009/10/21(水) 20:59:21
いくつかブックを開いていたとき、"MENU" というシート名が入ってるブック名を
TGTという変数に入れたいんですが、うまくいきません。
アドバイスお願いします。

Sub てすと1()

 For Each WB In Workbooks
  For Each WS In Worksheets
   If WS.Name = "MENU" Then
    TGT = WB.Name
   End If
  Next
 Next

 MsgBox TGT

End Sub
637名無しさん@そうだ選挙にいこう:2009/10/21(水) 21:03:10
>>636

俺もまだ駆け出しだが・・・

>   If WS.Name = "MENU" Then

   If WB.WS.Name = "MENU" Then

じゃね?
638636:2009/10/21(水) 21:37:09
>>637
実行時エラー'438':
オブジェクトは、このプロパティまたはメソッドをサポートしていません。

となっります・・・
639636:2009/10/21(水) 21:37:55
x となっります・・・
o となります・・・
640名無しさん@そうだ選挙にいこう:2009/10/21(水) 22:28:52
取り出したWB使わなきゃ
For Each WS In WB.Worksheets
641名無しさん@そうだ選挙にいこう:2009/10/21(水) 22:46:58
>>631
この子っていつも謝らない人だよね・・・
本当に実年齢聞きたい
小学生なら許す。
ただ将来しんどいから、誤れるだけのプライドはもてるようになった方がいいよ、とだけ
部下に謝ると、すごい人望付くよ
642名無しさん@そうだ選挙にいこう:2009/10/21(水) 22:57:14
>>641
誤れる

つまらん釣りはやめろ
643名無しさん@そうだ選挙にいこう:2009/10/21(水) 23:44:04
>>636
うちはあんたが書いたこれでうまくいってるヨン。

Sub てすと1()

For Each WB In Workbooks
For Each WS In Worksheets
If WS.Name = "MENU" Then
TGT = WB.Name
End If
Next
Next

MsgBox TGT

End Sub
644636:2009/10/22(木) 00:09:34
>>640
ありがとうございます。
うまくいきました。

>>643
空白を返してダメでした・・・
645637:2009/10/22(木) 01:11:50
>>640

なるほど・・・orz
646名無しさん@そうだ選挙にいこう:2009/10/22(木) 09:54:12
>>644
空白返すのは名前が不一致
ループの中に次を書いて実行してみ
Debug.Print wb.name & ws.name
647名無しさん@そうだ選挙にいこう:2009/10/22(木) 10:37:15
【1 OSの種類         .】 WindowsVista
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 コメント

セルに埋め込まれたコメントのようなものが編集出来ないのですが
編集するにはどうすればよいのでしょうか。
セルに赤い▲マークがないのでコメントとはちょっと違うみないなんですが・・・
648名無しさん@そうだ選挙にいこう:2009/10/22(木) 11:13:18
>>354
超遅レスだけど、間違いなく消えてるのを確認
98だとC:\windows\temporary internet files\content.ie5\IFid6fig
というファイルに保存されていた。作業を終了させるとそのファイルも消滅
復元 というソフトがあれば解決できたかも・・
>>647
データ、入力規則
にある「入力時メッセージ」だな
649名無しさん@そうだ選挙にいこう:2009/10/22(木) 11:42:47
>>648
そこにありました。
ありがとうございます。
650名無しさん@そうだ選挙にいこう:2009/10/22(木) 12:59:59
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】いいえ
”I4”のセルと”D1〜99”にデータを入力し”I4”と”D列”で演算させたいのですが
式を一つ作ってセルをドラッグすると下記のように”I列”も+1されていってしまいます。
=D1/I4^2
=D2/I5^2
=D3/I6^2
以下のようにしたいのですがなにか簡単な方法はありますでしょうか
=D1/I4^2
=D2/I4^2
・・・・
651名無しさん@そうだ選挙にいこう:2009/10/22(木) 13:08:02
>>650
=D1/I$4^2
652名無しさん@そうだ選挙にいこう:2009/10/22(木) 13:12:32
>>651
ありがとうございます!
653名無しさん@そうだ選挙にいこう:2009/10/22(木) 15:04:37
windowsXP
excel2003
を使用しています

グラフの横軸の目盛りの値を変えたいのですがどのようにすればいいのでしょうか?
お願いします
654名無しさん@そうだ選挙にいこう:2009/10/22(木) 16:19:12
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Excel 折れ線 NA 途切れさせる

IF()で値を抽出した以下のようなデータを
グラフで表示したいるのですが、
無効なデータを""にすると0として扱われ、
NA()にしても#N/Aの前後が繋がってしまいます。
IF()を使用した上で折れ線を途切れさせる方法はありませんか?

10
15
#N/A 又は ""
13
14
655名無しさん@そうだ選挙にいこう:2009/10/22(木) 17:25:59
>>654
=""
を値でコピーしてもつながってしまった。VBAしか無理だろうな
ファイルがどういう風になってるか、そのifの式がどういう値を返すかで
マクロ自体も変わってくる
作るのは問題ないが、ファイルの様式がわからないと作れないのでアップロードをするか
詳細にそのファイルの内容を教えていただきたい
656654:2009/10/22(木) 17:48:02
>>655
以下にアップしたもののSheet2です。
DLキーは 3210 です。
よろしくお願いします。
ttp://www.dotup.org/uploda/www.dotup.org290234.zip.html
657名無しさん@そうだ選挙にいこう:2009/10/22(木) 18:03:48
>>653
その値の部分を右クリック
658名無しさん@そうだ選挙にいこう:2009/10/22(木) 18:16:41
>>656
7時すぎぐらいに作れると思う
とりあえずシート2のN/Aエラーを消せばよいかな?
659654:2009/10/22(木) 18:25:38
>>658
#N/A は消さなくてもいいので、
グラフの方をお願いします。
もちろんグラフを途切れさせるために必要であれば
その限りではありませんが。
660離島のサンデーPG:2009/10/22(木) 19:21:12
>>636
なんかまた書きなぐったような無駄の多いコードですが
これでどうでしょ?

Sub ブック検索()
Dim Wb1 As Workbook
Dim Wb2 As Workbook
Dim Sh As Worksheet
Dim StrWb As String
Dim MyPath As String
Dim ShCnt As Long
Dim TGT As String

Application.ScreenUpdating = False
Application.DisplayStatusBar = True

Set Wb1 = ThisWorkbook

MyPath = ThisWorkbook.Path
StrWb = Dir(MyPath & "\*.xls")
'つづく
661離島のサンデーPG:2009/10/22(木) 19:22:24
>>636
>>660のつづき
Do While StrWb <> ""
If StrWb <> Wb1.Name Then
Application.StatusBar = StrWb & "を開いています。"
Workbooks.Open Filename:=MyPath & "\" & StrWb
Set Wb2 = Workbooks(StrWb)
If Wb2.Sheets.Count >= 2 Then
For Each Sh In Wb2.Sheets
' Debug.Print "シート名は、" & Sh.Name
If Sh.Name = "MENU" Then
TGT = StrWb
MsgBox "ブック名は、" & TGT
End If
Next
End If
Wb2.Close
Else
Set Wb2 = Workbooks(StrWb)
If Wb2.Sheets.Count >= 2 Then
For Each Sh In Wb2.Sheets
If Sh.Name = "MENU" Then
TGT = StrWb
MsgBox "ブック名は、" & TGT
End If
Next
End If
End If
StrWb = Dir()
Loop

662離島のサンデーPG:2009/10/22(木) 19:23:14
>>636
>>661のつづき
Application.DisplayStatusBar = False
Application.ScreenUpdating = True
MsgBox "終了します!"
Exit Sub
Resume
Set Wb1 = Nothing
Set Wb2 = Nothing
End Sub
663名無しさん@そうだ選挙にいこう:2009/10/22(木) 20:35:29
>>659
グラフを希望通りにするにはエラーをクリアするしかない、と思う
とりあえずシート2のA1セルにボタンを付けておいた。単純にエラー値をdeleteキー押して消すのと同じ状態にするマクロが入ってる
これだけじゃ希望通りにならないかな?
ttp://www.dotup.org/uploda/www.dotup.org290823.xls.html

なんでもいいけどエラー値って置換も何もできねーんだな
664名無しさん@そうだ選挙にいこう:2009/10/22(木) 20:39:54
ISERR関数使え。
665d:2009/10/22(木) 21:09:07
>>636
こんな感じかな。^^

Sub てすと1()
  Dim Wb As Workbook
  Dim Ws As Worksheet
  Dim Ff As Boolean
  
  For Each Wb In Workbooks
    For Each Ws In Wb.Worksheets
      If UCase(Ws.Name) = "MENU" Then
        TGT = Wb.Name
        Ff = True
        Exit For
      End If
    Next
    If Ff Then Exit For
  Next

  MsgBox TGT

End Sub
666d:2009/10/22(木) 21:11:50
>>665
忘れ物。(^^ゞ

Dim TGT As String
667名無しさん@そうだ選挙にいこう:2009/10/22(木) 21:25:01
なぁーおまいら、636の事例って640で解決してるんじゃねーの?
668名無しさん@そうだ選挙にいこう:2009/10/22(木) 21:26:51
安価付ける勉強してこいksg!
669離島のサンデーPG:2009/10/22(木) 21:27:17
>>665
>>636の要求仕様満たしてないよ。
いくつかのブックのMENUというシートがあるブック名を変数TGTに入れるんだから
それじゃ拾えないんじゃないのかな?動かしても空白が返るだけだと...
670名無しさん@そうだ選挙にいこう:2009/10/22(木) 21:29:45
>>667
解決してねーから
671離島のサンデーPG:2009/10/22(木) 21:44:16
あ〜、質問は「いくつかのブックを開いているとき」か、>>665スマソ
ちなみに>>660はブックを開いていなくてもブック名が取得できるから。
672名無しさん@そうだ選挙にいこう:2009/10/22(木) 22:40:30
>>668
なぁーおまいら、>>636の事例って>>640で解決してるんじゃねーの?
673名無しさん@そうだ選挙にいこう:2009/10/22(木) 22:42:06
なぁーおまいら、うんこしてこい
674名無しさん@そうだ選挙にいこう:2009/10/22(木) 22:47:37
>>669-670
644で「うまくいきました」と書かれており、解決済みです
675名無しさん@そうだ選挙にいこう:2009/10/22(木) 22:56:54
離島のサンデーPGはプログラム能力が低い上に日本語をあまり理解しないという・・
VBA厨ってバカが目立ちやすいんだよな
なんでだろう
>>673
申した
676名無しさん@そうだ選挙にいこう:2009/10/22(木) 23:05:33
>>669
複数のブックに"MENU"というシートがあれば、Exit Forでループを抜け出してないんだから
最後に抽出したWB.NameがTGTに入るだろ?
677名無しさん@そうだ選挙にいこう:2009/10/22(木) 23:06:57
もしかしてここじゃないのかもしれませんが
Googleマップを最大にエリア拡大して、
プリントスクリーンで画面上に出ている地図情報を画像ファイルで保存してJpgにして
その画像をExcelに貼り付けているのですが、

それをたとえば新宿区全域を貼り付けたい場合
ちょっとずつ移動しては貼り付けてって感じになって
とても大変です

これを一気にまとめて決められた範囲を貼り付けるってのは可能でしょうか?
つまり画面に映っていない部分も
まとめて地図情報を取りだすみたいな感じで

フリーソフトとかでもかまいせん
678名無しさん@そうだ選挙にいこう:2009/10/22(木) 23:11:41
googleさんにスクリプト・プログラムで連続アクセス(短時間で情報とりまくる)するとIP規制くらうから基本的にやらんほうがいい
個人的には体験版アリの地図ソフト+キーボードマクロを組み合わせて使うのがいいと思う
じゃなきゃキーボードマクロをウェイト大きくしてgoogleマップに使うか
679名無しさん@そうだ選挙にいこう:2009/10/22(木) 23:33:24
Sub Macro1()
  Dim KEY1 As String, KEY2 As String, OPRT As String

  For i = 1 To 3
    If i = 1 Then
      KEY1 = "=ELT*"
      KEY2 = "=ELS*"
      OPRT = "xlOr"
    ElseIf i = 2 Then
      KEY1 = "=ECR*"
      KEY2 = "=ECS*"
      OPRT = "xlOr"
    ElseIf i = 2 Then
      KEY1 = "=ERW*"
      KEY2 = "<>*Z"
      OPRT = "xlAnd"
    End If
    Range("A2:G2").AutoFilter Field:=2, Criteria1:=KEY1, Operator:=OPRT, Criteria2:=KEY2
  Next

End Sub

「RangeクラスのAutoFilterメリッドが失敗しました」って出ちゃいます。
どこが良くないのん?
680複乳 ◆MeiY43UMr. :2009/10/22(木) 23:39:30
Operator:=OPRT,
かなぁ。バージョンによっては対応していないようだ
681名無しさん@そうだ選挙にいこう:2009/10/23(金) 00:01:22
>>679
AutoFilterメソッドのヘルプを見ると「Operator 引数には XlAutoFilterOperator クラスの定数を指定します」とあるので

宣言時は
OPRT As XlAutoFilterOperator ←Variantでもいいのかも

値のセットは
OPRT = xlOr ←ダブルクォーテーションで括る必要はない

で試してみて
682名無しさん@そうだ選挙にいこう:2009/10/23(金) 00:22:30
なぜループさせているんだろ・・・
683名無しさん@そうだ選挙にいこう:2009/10/23(金) 00:27:32
データを抽出とか行削除とか想像もつかんのか?
684名無しさん@そうだ選挙にいこう:2009/10/23(金) 00:50:06
最後のがi=3の書きマツガイとしても、必ずi=3のケースになるじゃん
685名無しさん@そうだ選挙にいこう:2009/10/23(金) 00:50:48
あ、見間違えてた。寝るわ
686名無しさん@そうだ選挙にいこう:2009/10/23(金) 00:55:46
>>677
見えてない部分を取り出す方法はないと思う。

「このページのリンク」に出てるURLをよく見ると座標(緯度、経度)が含まれてるでしょ。
うまく計算してページを更新してやれば、自動的に連続したエリアを表示させることは可能。
それを順番に取り込んでいけばいい。自力でやるならVBAが必要。
フリーウェアの質問はWindows板へ。
687名無しさん@そうだ選挙にいこう:2009/10/23(金) 01:02:04
多分まだ途中経過で、本当はループの一回ごとに何かしらやりたいんだろう
688名無しさん@そうだ選挙にいこう:2009/10/23(金) 03:52:21
>>676
>>671に書いてるんじゃないの?
689名無しさん@そうだ選挙にいこう:2009/10/23(金) 06:00:39
なんでみんなループ回すの?
Sub てすと2()
Const S As String = "MENU"
Dim TGT() As String
Dim Wb As Workbook
Dim Ws As Worksheet
Dim i As Long

ReDim TGT(1 To Workbooks.Count)
For Each Wb In Workbooks
  Set Ws = Nothing
  On Error Resume Next
  Set Ws = Wb.Worksheets(S)
  On Error GoTo 0
  If Not Ws Is Nothing Then
    i = i + 1
    TGT(i) = Wb.Name
  End If
Next
If i > 0 Then
  ReDim Preserve TGT(1 To i)
  MsgBox Join(TGT, ",")
End If
End Sub

Workbooks2回使ってるのがちょい気になるけどな。
690名無しさん@そうだ選挙にいこう:2009/10/23(金) 07:24:40
まー、賛否両論あるんだろーが>>636のお悩み解決策は>>640で終わりですね。
>>665 >>689 は書き方の違いの参考にしましょう。
私、個人的にはいちいちブックを開かなくても良い>>660のが良いと思いますが
これは好みの問題ですね。
691名無しさん@そうだ選挙にいこう:2009/10/23(金) 07:50:06
Workbooks.Open Filename:=MyPath & "\" & StrWb
Set Wb2 = Workbooks(StrWb)
ここみると相変わらず上達してねーなぁ。
なんで1行にしないんだか。
692名無しさん@そうだ選挙にいこう:2009/10/23(金) 08:04:07
>>691
そこばっかじゃないな。
似たような記述を2回書く必要がどこにあるんだか。
693名無しさん@そうだ選挙にいこう:2009/10/23(金) 09:12:40
>>690
確かにスマートで好ましいが

今開いてるブック
って条件なんじゃね
694名無しさん@そうだ選挙にいこう:2009/10/23(金) 09:44:29
>>691-692

この子はいつものコピペ房でしょ。
それぞれの意味を理解せずに使用してるからこうなる。

>>689

半年ROM推奨
695名無しさん@そうだ選挙にいこう:2009/10/23(金) 09:56:51
ずいぶん上からみてんな
696名無しさん@そうだ選挙にいこう:2009/10/23(金) 10:54:52
俺のレベルは知らんが>>689は下の部類。
恥ずかしげもなく披露する点では下の下。
697名無しさん@そうだ選挙にいこう:2009/10/23(金) 11:00:59
問題を解決できればいいだろ。コードの良し悪しなんかくだらね。こだわり厨ウゼエな。
698複乳:2009/10/23(金) 11:06:17
回答者のレベルがあがるって意味なら、
色々なコードがでることはいいだと思うよ
699654:2009/10/23(金) 11:21:22
>>663
お礼が遅くなり申し訳ありません。

見てみました。
しかし、完全に消去状態になるということで、
A列を変更した時に操作が必要なようです。
正直に言うと、思っていた挙動ではありませんでしたが、
こちらの作業が増えるだけなので問題ではありません。
ありがとうございました。
ありがたく使わせていただきます。
700複乳:2009/10/23(金) 11:35:05
>>699
完全に消去しないとグラフに反映されないのよ
ifでエラーを回避しようと何しようと数式が入ってるだけでダメ(グラフはつながる)
そういうエクセルの仕様と思ってあきらめてくだせい
701名無しさん@そうだ選挙にいこう:2009/10/23(金) 12:04:58
>>696
お前のレベルは>>689より大分下だよw
702名無しさん@そうだ選挙にいこう:2009/10/23(金) 12:24:36
だな、>>696は下下下の鬼太郎w
703654:2009/10/23(金) 14:01:26
>>700
ただ、VBAでなら途切れさせる(消去する)ことが可能なようなので、
コピーして抽出しているIF()をVBAで組めば
思ったとおりのことができそうですね。
VBAを勉強してみます。
解説ありがとうございました。
704名無しさん@そうだ選挙にいこう:2009/10/23(金) 22:16:55
助けてください
下記のようにA1に1月1日と入力したらB,C,D,E,F,Gセルは自動に翌月の○月1日にするにはどうしたらいいのでしょうか?

  A   B   C   D   E   F   J
1 1/1 2/1  3/1  4/1  5/1 6/1  7/1
705複乳 ◆MeiY43UMr. :2009/10/23(金) 22:27:22
>>704
B1=DATE(YEAR(A1),MONTH(A1)+1,1)
後はB1を右にオートフィル
706679:2009/10/23(金) 22:30:22
679です。

>>680>>681
すごーい!ビンゴです!!
OPRT = xlOrで動きましたよん。

ElseIf i = 2 Then の3つ目のi=2は書き間違いです。
事務所で作ったファイルを思い出しながら書いたので間違っちゃいました(^^;
707名無しさん@そうだ選挙にいこう:2009/10/23(金) 22:34:01
>>704
自動というのは関数?
オートフィルだったら、右クリックしながら引っ張って「連続データ(月単位)」
708名無しさん@そうだ選挙にいこう:2009/10/23(金) 22:44:25
Fの次がJという・・・
709名無しさん@そうだ選挙にいこう:2009/10/23(金) 22:49:49
2003で起動させたいので、よろしく。

【1 OSの種類         .】 Windows xp
【2 Excelのバージョン   】 Excel2003 と2007 とがはいってる
【5 検索キーワード     】 Googleやヘルプでの検索キーワード 思いつかない

昨日まで、ショートカットで起動していたものは2003でしたが、セキュリティの更新が
昨日行われていたためか?、今日は2007の互換モードで開くようになってしまいました。
元のように2003で起動させられるようにしたいのです。が、エクセルプログラムを2003に
しようとショートカットのプロパティを見て、office11のを選んでもoffice12の2007互換モードが
選択されてしまいます。


710名無しさん@そうだ選挙にいこう:2009/10/23(金) 23:16:23
>>705
おかげさまで出来ました。
ありがとうございます、これで作業が楽になります。。

>>707
説明不足ですみません。関数でした

>>708
すみません
711複乳 ◆MeiY43UMr. :2009/10/23(金) 23:34:31
>>709
デスクトップかどこかのエクセルのファイルを右クリック
プロパティ→変更→参照
で古いほうのエクセルがある場所探してそれを「開く」
712名無しさん@そうだ選挙にいこう:2009/10/23(金) 23:48:20
【1 OSの種類         .】 Windows vista
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

表の中から数字を検索(数式や文字を残す)して削除するってのを作ってみたんですが
実行したら=15*24みたいな式が消えずに残っちゃいまして…
当然なんでしょうけど、消えないでほしいのは=F1*G5みたいな式だけなんです
これってどうにかならないんでしょうか?

713複乳 ◆MeiY43UMr. :2009/10/24(土) 00:11:55
>>712
数値だけ消すマクロ
Option Explicit
Dim sex
Sub ClearError()
For Each sex In ActiveSheet.UsedRange
If IsNumeric(sex) Then
sex.ClearContents
End If
Next
End Sub
714712:2009/10/24(土) 01:20:03
>>713
全部消えちゃいましたけど…

Sub Test2()
Dim r As Range
If MsgBox("◆数値を削除しますか?◆", vbYesNo, "削除の確認") _
= vbYes Then
On Error GoTo line
For Each r In Selection.SpecialCells(xlCellTypeConstants, 1)
On Error GoTo 0
r.ClearContents
Next r
Exit Sub
line:
MsgBox "指定範囲内に数値がありません。"
End If
End Sub

今出来てる(というか作ってもらった)のはこんな感じです
また、これだと検索した数値が結合したセル上にあった場合、エラーが発生する事が判明しました
715709:2009/10/24(土) 08:31:47
>>711
回答ありがとうございます。

照会説明が拙かったですが、お答えの方法で選んでもできないので聞きに来ました。
2003と2007とで何故か、優先して選択するものが常に2007に変更されたため、
生じているものと考えております。
この関係の操作を思い出せない、わからないので、困っております。
よろしくお願いします。
716複乳 ◆MeiY43UMr. :2009/10/24(土) 11:46:34
>>714
スマンかった。こういうことかな
Sub Test2()
Cells.SpecialCells(xlCellTypeConstants, 1).ClearContents
End Sub
>>715
私のほうだとこれで大丈夫だったんだよなぁ。この先は他の人に教えてもらうしかないな
とりあえず↓の結果何個か試してみてはいかがでしょうか
ttp://www.google.com/search?client=opera&rls=ja&q=%E3%82%A8%E3%82%AF%E3%82%BB%E3%83%AB+2007+%E3%81%8C%E7%AB%8B%E3%81%A1%E4%B8%8A%E3%81%8C%E3%82%8B&sourceid=opera&ie=utf-8&oe=utf-8
717複乳 ◆MeiY43UMr. :2009/10/24(土) 12:01:22
>>714
選択範囲の中で消したいなら
Selection.SpecialCells(xlCellTypeConstants, 1).ClearContents
を使っておくれ
718名無しさん@そうだ選挙にいこう:2009/10/24(土) 15:19:07
 
719名無しさん@そうだ選挙にいこう:2009/10/24(土) 15:45:55
Sub 2009年度の売上集計() と書いたらコパイルエラーになってしまいました。
調べたら、数字で始まるのはダメぽのようですが、マクロ名に集計したいタイトルを
書いておきたいとき、どんな対策をすればいいでしょうか?
720名無しさん@そうだ選挙にいこう:2009/10/24(土) 15:49:35
>>719
前がダメなら後ろに書けばいいじゃん。(例:売上集計2009()
721複乳 ◆MeiY43UMr. :2009/10/24(土) 15:50:24
どんな対策も数字で始まらないようにするしかない
業務命令でやらされる場合、俺なら「a2009年度・・」というタイトルにするかな
722名無しさん@そうだ選挙にいこう:2009/10/24(土) 15:51:50
>>719
頭に目立たない文字として、句点 "。" をつける。

でも、なぜか半角になんるんだが・・・
723名無しさん@そうだ選挙にいこう:2009/10/24(土) 15:53:12
A009とかw
724719:2009/10/24(土) 15:55:05
>>720-723
即レス感謝です。
参考にします。
725複乳 ◆MeiY43UMr. :2009/10/24(土) 23:25:29
>>722
"゜"だと不正な文字といわれるね。
コンパイラの仕様としか言いようが無いな。もしかしたら1bit目に制御文字でもあるのかもねぇ
726名無しさん@そうだ選挙にいこう:2009/10/25(日) 02:34:21
リストボックスAを通常グレーアウトさせておいて、
チェックボックスAをONにしたら、リストボックスAも選べるようになるように
するにはどうすればいいでしょうか。
727離島のサンデーPG:2009/10/25(日) 04:06:35
>>726
Private Sub CheckBox1_Click()
With ListBox1
.Clear
.AddItem ("みかん")
.AddItem ("りんご")
.AddItem ("ばなな")
.MultiSelect = fmMultiSelectMulti
If CheckBox1.Value = True Then
.Enabled = True
.ForeColor = &H0
.BackColor = &HFFFFFF
Else
.Enabled = False
.ForeColor = &H999999
.BackColor = &HCCCCCC
End If
End With
End Sub
728離島のサンデーPG:2009/10/25(日) 05:47:44
>>712
Sub test()
Dim MyVal As String
Dim MyReg As Object, MyPat As String, s As Range
Set MyReg = CreateObject("VBScript.RegExp")
MyPat = "[=\/\(\)\-\+\*]"
With MyReg
.Pattern = MyPat
.Global = True
For Each s In ActiveSheet.UsedRange
MyVal = .Replace(s.Formula, "")
If IsNumeric(MyVal) = True Then
Debug.Print s.Address
Range(s.Address).ClearContents
End If
Next
End With
Set MyReg = Nothing
End Sub
729名無しさん@そうだ選挙にいこう:2009/10/25(日) 09:26:31
変数にmyをつける人は多いが先頭を大文字にする人は
初めてみた気がする・・・
730名無しさん@そうだ選挙にいこう:2009/10/25(日) 12:53:01
行番号と列番号を16進で0からFに設定するにはどうすればいいの?
731名無しさん@そうだ選挙にいこう:2009/10/25(日) 13:29:50
>If CheckBox1.Value = True Then
>If IsNumeric(MyVal) = True Then
上はプロパティがTrueなら、と明示する意味で
わからんでもないけど、下はなんかモヤモヤする。
732複乳 ◆MeiY43UMr. :2009/10/25(日) 13:41:32
>>730
ttp://www.relief.jp/itnote/archives/000925.php
これとROW()やcolumn()を組み合わせる。
アドイン入れないならfloor()とmod()を組み合わせると思うけどやりたくないな

VBAなら
ttp://www.bekkoame.ne.jp/~poetlabo/COMP/Excel/TIPS/Hex.htm
733離島のサンデーPG:2009/10/25(日) 13:44:20
>>731
ならなんで別案出さないの?
734名無しさん@そうだ選挙にいこう:2009/10/25(日) 13:50:50
別案つか、ふつう
If IsNumeric(MyVal) Then
735名無しさん@そうだ選挙にいこう:2009/10/25(日) 13:52:54
NOW()で現在の時刻を取得してそこに数時間後の曜日と時刻を表示させたいのですがうまくいきません。


数式:NOW()+TIME(M5,0,0)
書式:(aaa) h"時"mm"分";@

のように式を作った場合、M5の値が23までは問題ないのですが25を超えるとTIME関数の値が24で引かれた値になってしまいます。
単純に「〜時間を足す」処理はどのように行えば良いでしょうか?
736離島のサンデーPG:2009/10/25(日) 14:02:46
>>734
ブール型ってみんな。初期Trueなの? なんか明示しないと気がすまないんで。
737名無しさん@そうだ選挙にいこう:2009/10/25(日) 14:32:23
初期値は関係ない。
もし Isnumericの戻り値がTrueなら 比較式True=True はTrue
もし Isnumericの戻り値がFalseなら 比較式False=True はFalse
無駄でしょ?

>>735
NOW()+M5/24
738名無しさん@そうだ選挙にいこう:2009/10/25(日) 14:38:47
ありがとうございました
739離島のサンデーPG:2009/10/25(日) 14:39:17
>>737
なるほどね。=入力すると入力候補?でTRUE FALSEって出るもんだから
明示するのが正解だと思ってた。参考になりますた。
740名無しさん@そうだ選挙にいこう:2009/10/25(日) 17:01:54
EXCEL2007、VistaUltimateです。

コントロールのボタンの色(文字の背景)を指定するには、どうすれば良いのでしょうか。
[コントロールの書式設定]の中にないのですが・・・
741複乳 ◆MeiY43UMr. :2009/10/25(日) 17:40:30
>>740
2003だと
右クリック→プロパティ
のbackcolor
書式設定の中のプロパティじゃないよ
742名無しさん@そうだ選挙にいこう:2009/10/25(日) 17:45:57
毎月の変動が激しい数値をグラフ化したい場合、Excelでどのグラフを使えばいいでしょうか?
また1ヶ月ごとのグラフにしたいのですが2000年からすべてグラフ化しようとすると1画面に収まりきりません
その場合のいい対処法などはないでしょうか?
743740:2009/10/25(日) 17:51:10
>>741
レスありがとうございます。

右クリックでプロパティが出てこないんですけど。
744名無しさん@そうだ選挙にいこう:2009/10/25(日) 18:08:30
Excelのシートで
たとえば
巨神中洋国広
中巨広国洋神
巨中洋広神国


こう言ったデータが各行にあった場合
国の部分を一括置換で赤く置換して太字にする事って可能でしょうか?
できればマクロを使わずにがいいのですが
無理であればマクロでも可です。
745名無しさん@そうだ選挙にいこう:2009/10/25(日) 18:20:58
>744

置換→オプション
746名無しさん@そうだ選挙にいこう:2009/10/25(日) 19:38:38
>>729
ホントか?
過去ログ見たことも無いのかな。
俺は変数のうち、Fox〜Nextとかで使うInteger以外は全て大文字だけど。
747名無しさん@そうだ選挙にいこう:2009/10/25(日) 19:47:10
>>744
条件付書式?
じゃなくて、本当に置換?
置換だったらオプション使えばOK
748名無しさん@そうだ選挙にいこう:2009/10/25(日) 19:50:51
>>747
ごめんなさい
オプションで太字を指定して
置換前の文字列を「国」にしても
シート全体の全ての文字が太字になってしまいます

あくまでも「国」という文字だけを太字にしたいのですが
749名無しさん@そうだ選挙にいこう:2009/10/25(日) 20:13:29
>>748
ちゃんと置換元「国」 書式セットなし
     置換後「国」 書式:太字・赤字
にしてる?
750名無しさん@そうだ選挙にいこう:2009/10/25(日) 20:19:37
>>749
はい、しています
ちなみにExcel2007

749のやり方で置換したら全体が太字で赤くなります
国だけではなく、神巨広洋中などシート内にある、すべての文字が赤くなります
751名無しさん@そうだ選挙にいこう:2009/10/25(日) 20:22:03
じゃあごめん、分からないや。少なくとも2003ではきちんと該当文字のみ置換できるよ。
752複乳 ◆MeiY43UMr. :2009/10/25(日) 20:48:28
>>743
ttp://www1.axfc.net/uploader/Img/so/63267.jpg
こんな感じにならないかなぁ
753名無しさん@そうだ選挙にいこう:2009/10/25(日) 21:05:06
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 今まで使ったこと無いがぐぐればわかりそう
【4 VBAでの回答の可否】 可
あるデータの近似曲線を2次関数で作成したのですが、
この近似曲線の数式を表示させるとy=ax^2+bx+cとなります。
この近似曲線の頂点(最小値)を求めるのに効率的な方法はありますか?
実際にy=ax^2+bx+cのxを微小に変化させ、
yの値をExcelで計算すればそれなりに頂点に近い値は求まりそうなのですが、
もっと正確に効率よく値を求めたい場合どのようにすればよいでしょうか?
754名無しさん@そうだ選挙にいこう:2009/10/25(日) 21:18:01

 ┌──────────────────────┐
 │                                      |
 │ ピボット厨が回答できそうな質問もお待ちしてます!! |
 |                                      |
 └―――──――─────────────――┘
               ヽ(´ー`)ノ
                  (  へ)
                   く
755複乳 ◆MeiY43UMr. :2009/10/25(日) 21:32:49
>>753
ソルバー
>>754
その内繰るんじゃない?
756名無しさん@そうだ選挙にいこう:2009/10/25(日) 21:40:52
>>754
集計と無関係な質問ばかりだからね。
きみは>>753に回答してやってはどうかね?得意のVBAで。
757名無しさん@そうだ選挙にいこう:2009/10/25(日) 21:43:33
>>755
ソルバーでも悪くはないんだが、二次曲線の極値くらい中学生でも求められる。
それよりVBA厨がどんな回答するかを拝見したかったんで邪魔しないでほしかった。
758複乳 ◆MeiY43UMr. :2009/10/25(日) 21:45:45
私もVBA厨だけど、この場合はどう考えてもソルバー使うでしょ
759753:2009/10/25(日) 21:55:01
自己解決しました。
結局a、b、cの各係数を、excelで公式の通り数式を書いて導出し、
a、b、cの値を使って-(b^2-ac4)/a4を計算するようにしたセル群を、
必要な数だけコピペすることにしました。
お手数をおかけしましたすみません。
760名無しさん@そうだ選挙にいこう:2009/10/25(日) 21:55:12
>>758
笑わせるのはやめてくれ。
VBAばかりやってないで中学校の教科書をもう一度読みなさい。
761名無しさん@そうだ選挙にいこう:2009/10/25(日) 22:07:34
結局ピボット厨もVBA厨も回答できませんでしたとさ♪
762名無しさん@そうだ選挙にいこう:2009/10/25(日) 22:11:54
>>761
おいおい。答えられないのはVBA厨だけだって。間違えんなよ。
このスレの回答者は最低でも義務教育は終えてるんだろうな?
心配になってきた。
763名無しさん@そうだ選挙にいこう:2009/10/25(日) 22:16:19
>>762
えっ
>>753->>762のどのレスが回答?
764名無しさん@そうだ選挙にいこう:2009/10/25(日) 22:18:54
>>763
回答はしていないよ。
簡単だと言っている。
君もしかしてわからない人?
765名無しさん@そうだ選挙にいこう:2009/10/25(日) 22:20:15
>>764
ああ、結局分かってないってことですねw
766名無しさん@そうだ選挙にいこう:2009/10/25(日) 22:20:54
>>765
君高校受からないぞ。
しっかり勉強しろよ。
767複乳 ◆MeiY43UMr. :2009/10/25(日) 22:22:23
荒らしたみたいですまんかった
768名無しさん@そうだ選挙にいこう:2009/10/25(日) 22:24:40
>>767
お前も二次関数の極小値について調べて置くように。
もとはといえばお前が頭悪いのがきっかけなんだ。
769複乳 ◆MeiY43UMr. :2009/10/25(日) 22:27:51
そうだなぁ
しかし中学の頃あんなにやったのに、こうも忘れるもんとはねぇ
770名無しさん@そうだ選挙にいこう:2009/10/25(日) 22:31:03
VBAばかりやってると頭悪くなるぞ。
しっかりピボットテーブルの勉強をしなさい。
771複乳 ◆MeiY43UMr. :2009/10/25(日) 22:33:05
何この人気持ち悪い
772名無しさん@そうだ選挙にいこう:2009/10/25(日) 22:37:44
>>771
まあそれくらいしか言いようがないだろうな。
恥ずかしいな。お前。
773名無しさん@そうだ選挙にいこう:2009/10/25(日) 22:51:52
>>770
ピボットで頭が良くはならんよ。
逆に頭が良くない人でも使えるのがピボットだ。
頭の良い人はピボットと同じ処理くらいはVBAで出来るだろうが、ピボットが楽だからピボット使うだけだな。
774名無しさん@そうだ選挙にいこう:2009/10/25(日) 22:55:39
ピボットをソートに置き換えてみよう。

ソートで頭が良くはならんよ。
逆に頭が良くない人でも使えるのがソートだ。
頭の良い人はソートと同じ処理くらいはVBAで出来るだろうが、ソートが楽だからソート使うだけだな。

まあ当たり前だな。
しかしこの当たり前ができないのがVBA厨。
775名無しさん@そうだ選挙にいこう:2009/10/25(日) 23:12:41
エクセル2003のピボットなんですが
データエリアに、2種類の値を横並びに入れて
その合計を、ピボットの機能で行ごとに出したいのですが
うまくいきません、どうすればいいですか?
今はピボットの表の右の列にsumを入れて出してます

列エリア 日時
行エリア 空白
データエリア データ1とデータ2(集計は合計だったり平均だったりその時によって違う)
そのままにしてると縦にデータ1とデータ2が並ぶのでデータエリアを移動させて2列のデータになるようにする
で、データエリアの3列目にデータ1とデータ2の合計値を出したいということです

説明が分かりにくかったら補足します
よろしくお願いします
776名無しさん@そうだ選挙にいこう:2009/10/25(日) 23:14:37
建築関係の仕事で、見積書・台帳をExcelで作ってます
1現場に1ファイル
1つのファイルに金額を変えた見積書を3つと台帳と現場指示書とファックス表紙が入っています
そのファイルを顧客ごとにフォルダを分けて管理してますが、どうにも使い勝手がよくありません
これをデータベース化したいのですがなんとかならんでしょうか?
accessもありますが2つのソフトを同時起動させて中の数値がリンクするならよいのですが、できたらExcelのマクロでしたいです
777名無しさん@そうだ選挙にいこう:2009/10/25(日) 23:29:10
どっちよ?
778名無しさん@そうだ選挙にいこう:2009/10/25(日) 23:34:21
>>775
使用前使用後、つまりこういうデータからこうなるってのを書いた方がいいぜ。
779776:2009/10/25(日) 23:36:23
エクセルだけで管理したいです
当方はVBAの知識まったくありませんし、マクロもくんだことありません
780名無しさん@そうだ選挙にいこう:2009/10/25(日) 23:38:49
>>775
ウィザードで複数のワークシート範囲にすりゃ出来るだろ?
781名無しさん@そうだ選挙にいこう:2009/10/25(日) 23:38:57
>>775

>>775
データエリアに2種類の値を入れているということだが、元データの形式を変えてみてはどうか?
こんなデータを
商品 4月売上 5月売上
A   80    60
A   60    55
B   80    80
B   85    88

こんなデータに
商品 月 売上
A  4月 80
A  5月 60
A  4月 60
A  5月 55
B  4月 80
B  5月 80
B  4月 85
B  5月 88

データ形式の変更にはVBAを使うといい。
782776:2009/10/25(日) 23:41:39
>>778
データベースというものをよくわかっていませんので無理なものは無理と教えてもらえたら助かります

日付別・顧客別・現場別・施工内容別・見積もりだけなのか実際工事したのか
これらで検索が便利になるようにしてほしいです
783名無しさん@そうだ選挙にいこう:2009/10/25(日) 23:42:57
>>776
データベース化することでどんなことを実現したい?
784名無しさん@そうだ選挙にいこう:2009/10/25(日) 23:45:04
>>782
そういうことならデータをリスト形式で入力していけばいい。
後は検索、ソート、オートフィルタ,ピボットテーブルを使う。
785名無しさん@そうだ選挙にいこう:2009/10/25(日) 23:46:00
ごめんなさい、安価見間違えた
786名無しさん@そうだ選挙にいこう:2009/10/25(日) 23:46:15
タブがうまく表示されるか知らんが

項目A 項目B 項目C
あ 1 1
い 1 1
あ 1 1
い 1 1
う 1 1
あ 1 1
う 1 1

ピボットテーブルウィザードで複数のワークシート範囲にすりゃ

合計 / 値 列ラベル
行ラベル 項目B 項目C 総計
あ 3 3 6
い 2 2 4
う 2 2 4
総計 7 7 14

こうなるぜ。
787名無しさん@そうだ選挙にいこう:2009/10/25(日) 23:47:36
酢満、タブは無視されたか。
788786:2009/10/26(月) 00:00:56
>>775
>>786がタブが消えて分りづらいので書きなおし。

商品  4月売上  5月売上
A     80    60
A     60    55
B     80    80
B     85    88

ピボットテーブルウィザードで複数のワークシート範囲にすりゃ

合計 / 値    列ラベル
行ラベル  4月売上   5月売上 総計
A       140     115     255
B       165     168     333
総計     305     283     588

こうなるぜ。
>>781の言うVBAなんか全然必要茄子。
789781:2009/10/26(月) 00:12:08
>>788
あ。ほんとだ。勉強になった。
ありがとう。
790名無しさん@そうだ選挙にいこう:2009/10/26(月) 02:36:51
ピボットはエクセル初級者、VBAは中級〜上級者だと思うがなw

集計するにもピボットは規則正しいデータがあってこそ活用できるが、集計するには
ダメダメな並びのデータも集計できるのがVBA。

要はアレじゃね?
791名無しさん@そうだ選挙にいこう:2009/10/26(月) 06:52:21
ケースバイケース。
何度も回すんだったらマクロもいいと思うけど、
その場限りの集計も多いんだから、ピボットは非常に有効

というわけで、集計はどっちでも好き。どっちも使う。
792名無しさん@そうだ選挙にいこう:2009/10/26(月) 08:24:30
>>790

> ピボットはエクセル初級者、VBAは中級〜上級者だと思うがなw

本来そうあるべきと思うんだが、世間じゃ逆になってないか?
ピボット使えないVBA厨多すぎ。

入門書は関数よりも先にピボットを教えてやってほしい。
793名無しさん@そうだ選挙にいこう:2009/10/26(月) 08:38:39
>>790

>ダメダメな並びのデータも集計できるのがVBA。

ダメダメなデータだという自覚があればいいのだがな。

ところで最近はVBA厨も正規化とかの言葉は覚えてきたようだな。
1〜2年前は野生のVBA厨がごろごろいて入れ食いだった。
794名無しさん@そうだ選挙にいこう:2009/10/26(月) 08:58:28
ピボットは中級じゃね
VBAはかなり使えるが、未だに使えない
795複乳:2009/10/26(月) 09:03:36
ピボットって妙に専門書でも敬遠されてるよね。何でだろう?
でかい会社は覚えるまでも無く専用ソフトがあるんだけど、
小さい会社では絶対に必要だと思うんだけどな
>>791
どっちも使うんだけどねぇ。なぜかピボット厨はそれを無視して話を進めたがる
使って欲しくないのかな?
796名無しさん@そうだ選挙にいこう:2009/10/26(月) 09:45:12
>>794
今調べてみて、ワシもそう思った>ピボット
1回きりの処理ってあまり無いので、使うことが無かったのかな
#件数が数シートになるものが多いし
#DBに入れてからSQLで傾向見たりするからかも
797名無しさん@そうだ選挙にいこう:2009/10/26(月) 11:29:53
世の中には普通ピボットでやるべき仕事を関数、それもsumproductや配列数式でやる自称仕事人もいる。
もうアボカド、グァバかと。
798名無しさん@そうだ選挙にいこう:2009/10/26(月) 13:09:36
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002(親のPCには一応2003)
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 最大値の抽出 項目

A列に項目名、B列に数値
ここからB列の数値が最大のA列の項目を抽出したいのですが可能でしょうか?


A      B
1月  1,000,000
2月  900,000
3月  1,150,000
4月  400,000
5月  770,000

上記の場合「3月」という結果を抽出したいのですが……
799名無しさん@そうだ選挙にいこう:2009/10/26(月) 13:31:27
可能です
大丈夫!
800複乳:2009/10/26(月) 13:32:26
>>798
関数
=IF(COUNTIF(B:B,MAX(B:B))>1,"最大値が二つ以上あります",INDEX(A1:B100,MATCH(MAX(B:B),B:B,0),1))
801名無しさん@そうだ選挙にいこう:2009/10/26(月) 15:24:41
>800
ありがとうございます!できました。
本来のやつはもう一寸項目が多いので何とか応用できるよう調べてみます。
詰まったらまた来ますね。なるべくこないよう頑張ってみますが(`・ω・´)

>799
いぢわる……
確かにどうやれば出来るかとは書きませんでしたけど><。
802名無しさん@そうだ選挙にいこう:2009/10/26(月) 15:29:24
>>801
すまん悪かった
以前、「可能でしょうか?」って質問に、方法まで書いたら余計なこと書くなと罵倒されたんでな
これからは、何を書いても罵倒しないからって前置きしてくれれば方法も書くよ
803名無しさん@そうだ選挙にいこう:2009/10/26(月) 16:14:16
うざ
804775:2009/10/26(月) 21:06:40
>>781
ありがとうございます。
もともと1時間ごとに変化する量を自動観測機器で計測していて、その機械から出力されるCSVをエクセルに読み込んだものです。
時系列グラフを描いたり、その他の用途にも使うのでデータ形式を変えるの面倒かなと。
まあ、それほどマクロを使いこなせないというのもありますが…。
マクロを組むのに頭悩ませる時間があるなら、Sum入れちゃったほうが早いんですよね…。


>>788
ありがとうございます。
範囲がひとつしかなくても複数のワークシート範囲ってできるんですね。
しかも集計が変わってるし。勉強になりました。
805名無しさん@そうだ選挙にいこう:2009/10/26(月) 21:59:23
【1 OSの種類         .】 Windows vista 
【2 Excelのバージョン   】 Excel2007 
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否 
【5 検索キーワード     】 最大値の抽出 結果 抽出


A    B    C    D
12    20   30   50
30   10   20   50
2   3     5    8
2    30    7   37
 
Dの列に、A+B、B+C、A+C の中で合計が最大となる値が入るようにしたいのですが。
806複乳 ◆MeiY43UMr. :2009/10/26(月) 22:08:14
>>805
D1=MAX(A1+B1,B1+C1,A1+C1)
後は下にオートフィル
807名無しさん@そうだ選挙にいこう:2009/10/26(月) 22:13:03
=SUM(A1:C1)-MIN(A1:C1)
808複乳 ◆MeiY43UMr. :2009/10/26(月) 22:21:09
うまいことやるねぇ
809名無しさん@そうだ選挙にいこう:2009/10/26(月) 23:35:27
マクロ初心者です。
ファイルを2つ開いてて、マクロを書いた方をBook1、他をBook2としたとき、
Book1はThisworkbook.nameで指定できますが、Book2は何て書けばいいのでしょうか?
810名無しさん@そうだ選挙にいこう:2009/10/26(月) 23:48:53
ありがとうございました。
811名無しさん@そうだ選挙にいこう:2009/10/26(月) 23:50:49
excel2007でグラフ作成をしてexcel97-2003形式で保存してます。
これを相手側がexcel2003で開いて見ている状況なんですがグラフのラベル部分に
ズレが出てしまいます。単純なグラフは問題ないのですがグラフをいくつか重ねる
など複雑なグラフの場合にズレがでてしまうようです。
自分なりに考えた打開策は以下の2つです。

1、グラフを図として張り付ける。(画像化!?)
2、涙を飲んでexcel2003を購入する。(officeの共存化)
できればどちらも避けたいので他に良い案はないでしょうか?ご教授のほどよろしくお願い致します。
812名無しさん@そうだ選挙にいこう:2009/10/26(月) 23:58:49
>809

つマクロの記録
813複乳 ◆MeiY43UMr. :2009/10/27(火) 00:02:17
>>809
ブック名がbook2なら
Workbooks("Book2").Activate
ブック名が分からないなら
vba 開いてるブック 名前 辺りで検索
>>811
グラフのずれは仕様
グラフを作らずに渡して相手に作ってもらうか、画像としてコピーするか
お金がもったいないならOOoを使うって手もあるかも?
ttp://ja.openoffice.org/
エクセルによく似たソフト。グラフがずれない保障は無いけど
個人的には頻度が高くないなら画像としてコピーするのが早いと思う
814名無しさん@そうだ選挙にいこう:2009/10/27(火) 00:05:29
>>811
名前が決まっていないなら、名前を取得するとか・・

thisじゃないなら、thatwork・・・なんて馬鹿な事を考えてしまった・・寝よう
815名無しさん@そうだ選挙にいこう:2009/10/27(火) 00:05:52
そしてレス番間違えた。>>809だし
816名無しさん@そうだ選挙にいこう:2009/10/27(火) 00:20:50
Otherworkbook.nameでいいんじゃね?
マクロ使ったことないけど
817名無しさん@そうだ選挙にいこう:2009/10/27(火) 00:25:24
シート1のA1・A2・A3……にある数値を、
シート2のA1・A3・A5……という風に1行おきに貼り付けたいのですが、何か言い方法はないでしょうか。
数式を普通に貼り付けると、貼り付けた側の行を持ってきてしまうので上手くいきません。
excelは2003です。
よろしくお願いします。
818複乳 ◆MeiY43UMr. :2009/10/27(火) 00:33:02
何か簡単なやり方あったんだけどな。忘れた。
>>817
VBAは使えますか
819名無しさん@そうだ選挙にいこう:2009/10/27(火) 00:35:46
>>818
ごめんなさい、使えません
820複乳 ◆MeiY43UMr. :2009/10/27(火) 00:43:14
>>819
別に謝らなくても。
シートはsheet1とsheet2、後は完全に例題どおりならsheet2のA1に
=IF(MOD(COLUMN(),2)=1,INDIRECT("Sheet1!r1c"&(COLUMN()+1)/2,0),"")
と入れて右にオートフィル
ただこれ応用は難しいと思うから、使えなかったらシート名とセル番地教えてくれたら作り直すよ
821名無しさん@そうだ選挙にいこう:2009/10/27(火) 00:44:48
>>817
=IF(MOD(ROW(),2)=1,INDIRECT("Sheet1!A"&INT(ROW()/2+1)),"")
822名無しさん@そうだ選挙にいこう:2009/10/27(火) 00:45:58
>>817
=IF(MOD(ROW(),2)=1,INDIRECT("Sheet1!A"&ROW()/2+0.5),"")
823名無しさん@そうだ選挙にいこう:2009/10/27(火) 00:46:42
遅かった orz
824名無しさん@そうだ選挙にいこう:2009/10/27(火) 00:54:59
>>820
ありがとうございます!
コピー元はシート名が「入力用」、B列の2行目から文字が1行ずつ入っています。
貼付け先はシート名が「印刷用」、BCDEの結合セルの4行目から1行おきに文字を貼り付けたいです。
ちなみなんですが、間の5行目・7行目……にはすでに文字が入力されているのですが、それを消さずに貼り付ける事はできますか?
825名無しさん@そうだ選挙にいこう:2009/10/27(火) 01:02:23
>>824
=IF(MOD(ROW(),2),INDEX(Sheet1!A:A,ROW()/2+0.5,1),"")

1行置きに選択とか貼り付けをしたいなら作業列に=MOD(ROW(),2)と入れて
オートフィルタで1の行だけを表示させてから貼り付け
826複乳 ◆MeiY43UMr. :2009/10/27(火) 01:04:51
oh・・横じゃなくて縦だったか。ゴメンナサイ。寝不足は良くないね。寝よう
>>824
F4=IF(MOD(ROW(),2)=0,INDIRECT("入力用!B"&INT((ROW()-3)/2)+2),"")
下にオートフィル、とりあえずF10までとする
F4からF10をコピー
B4に貼り付けるときに「形式を選択して貼り付け」→貼り付け「すべて」演算「加算」
にして貼り付け
うまくいくかな?いかなかったらまた明日
827複乳 ◆MeiY43UMr. :2009/10/27(火) 01:06:10
あ、全部印刷用シートで作業してね
ちなみにF4に張るときは4行目ならG4でもT4でも好きなところでオッケー
828名無しさん@そうだ選挙にいこう:2009/10/27(火) 01:07:08
>>824
数式はこれ
=IF(MOD(ROW(),2),"",INDEX(入力用!B:B,ROW()/2+0.5,1))

偶数行に貼りたいときは>>825の方法で、オートフィルタで0の行を選んで貼り付ければいい
829名無しさん@そうだ選挙にいこう:2009/10/27(火) 01:11:47
丁寧にありがとうございます。本当に助かりました。
明日試してみます。
830名無しさん@そうだ選挙にいこう:2009/10/27(火) 02:19:23
エクセル2003 ピボットテーブル勉強中です。

ピボットテーブルで、データ欄の集計を「合計」とか「平均」とか変えられますが、
集計が「合計」のときに、総計欄に平均値を出したり、
集計が「平均」のときに、総計欄に合計値を出したりするやり方がわかりません。
普通にやると、「合計」のときは総計欄も合計になって、「平均」のときは総計欄も平均値になってしまいます。
よろしくお願いします。
831名無しさん@そうだ選挙にいこう:2009/10/27(火) 05:05:20
>>817

作業列に連番をふってからソートすればよい。

2 1
5 2
8 3
  1
  2
  3
と入力してからB列でソート
結果
2 1
  1
5 2
  2
8 3
  3
となる。
832名無しさん@そうだ選挙にいこう:2009/10/27(火) 09:22:51
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 少し
【4 VBAでの回答の可否】 可
【5 検索キーワード     】

私女だけど、抽出マクロについて教えてください><

【グループA】
あ 1
い 0
う 2

【グループB】
か 0
き 1
く 2


↓0以外のひらがなを抽出して、別シートに


【グループA】
あ 1
う 2

【グループB】
き 1
く 2

と表示にしたいんです><
そういうマクロ教えてください><関数でもでますか?><
833複乳:2009/10/27(火) 09:48:57
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 少し
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 ピボットテーブル 最大値

月   金額
1月   7
2月   12
3月   5

と2列4行の表があります
金額の最大値と月を、ピボットテーブルで
求めたいのですがやり方がわかりません
どなたか教えてください
結果は↓のようにしたいです

月   金額
2月   12
834複乳:2009/10/27(火) 10:08:01
>>832
オッサンが女とか言うのやめれw

マクロの記録でオートフィルタした後、可視セルをコピー
↓は可視セルのみコピーするマクロ
Cells.CurrentRegion.SpecialCells(xlCellTypeVisible).Select
Selection.Copy


2列目が0の行を削除↓シートごとコピーしてから使うといいと思う

Sub Macro1()
gyo = Range("A65535").End(xlUp).Row
For i = 1 To gyo
Cells(i, 2).Select
If Cells(i, 2).Value = 0 And Cells(i, 2).Value <> "" Then
Rows(i & ":" & i).Delete Shift:=xlUp
i = i - 1
End If
Next
End Sub
835名無しさん@そうだ選挙にいこう:2009/10/27(火) 10:25:14
>>833
おい
おい複乳
絞るぞ
836複乳:2009/10/27(火) 10:27:35
>>833
本当にできないんです。教えて下さい
837名無しさん@そうだ選挙にいこう:2009/10/27(火) 10:45:10
>>834
ありがとう。。。試してみるね!
もう濡れ濡れです><
838複乳:2009/10/27(火) 10:49:59
>>837
腸液垂らすなケツ拭け
839名無しさん@そうだ選挙にいこう:2009/10/27(火) 11:32:05
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 windows7 excel スナップ ウィンドウ など

Windows7ですが他のアプリはウィンドウ上部をドラッグして
ウィンドウサイズの調整や移動などができる7のスナップ機能が使えるのですが、
Excelのみ最大化した後はドラッグでウィンドウを離せません。
わたしのだけ?
840名無しさん@そうだ選挙にいこう:2009/10/27(火) 11:36:05
【1 OSの種類         .】 WindowsXP sp3
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Excel 2007 改行 削除 置換 出来ない

セル内の改行コード削除はCtrl+J入力後に置換ですが、2007に
変えてずいぶん久しぶりに使用したところ出来ません。
試しに新規シートであああ、aaaとセル入力、各ALT+Enter改行しましたが、
Ctrl+J→全て置換でも「置換対象のデータが見つかりません」
となります。
841名無しさん@そうだ選挙にいこう:2009/10/27(火) 11:38:51
>>840
試したらちゃんと置換できた
842名無しさん@そうだ選挙にいこう:2009/10/27(火) 11:44:08
>841
有り難うございます。さっきピンときてセキュリティソフトを疑ったところ、
ESETの「ドキュメント保護」機能が悪さをしていたようです。

以前もKasperskyがAccessでのテーブル操作に干渉したことがあったので
気が付きました。お手数かけました。
843名無しさん@そうだ選挙にいこう:2009/10/27(火) 13:28:40
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】抽出 エクセル 関数
質問です。
・やりたい事は、ある座標系プログラムのコードに対応する数値のみを抽出したいです。
・コード数 22個(全てアルファベット)
【例】
 ↓プログラム     A   B   C  ・・・合計22個
「A200 B300 C400」  200  300  400

【プログラム例】
・A100 C200 T300 F400 X1200 W40 V33 H18 D101・・・
このようなプログラムが1行づつに区切られて、200行ほど続きます。
各コードはランダムに配列されることがあります。
1行に同じコードが複数回使われることがあります。
ワードパット等からコピーしてエクセルに貼り付ける形で使用します。

一応、MID、LEN、VALUE等を使用してある程度規則的なコードの
数値は抽出できるようになりましたが、不規則なコード
例)A10 B20 C1000 B10 A30(始めに出たコードA、Bが飛んでまた出る)
の抽出に手間取っています。
細かく分割して抽出していけば可能かもしれませんが、もう列のシート
も限界になってしまいました・・・。容量も重たいです。

関数でもっと効率の良い方法、又はそれがなければVBAでもかまいません。(勉強します)
教えてください。
844名無しさん@そうだ選挙にいこう:2009/10/27(火) 13:40:44
>>843
いきなりプログラムとかコードとか言われても、言葉の定義がわからん
つまりセル名が並べて書いてあって、そのセルの内容を取り出したいってこと?
845名無しさん@そうだ選挙にいこう:2009/10/27(火) 13:59:15
【1 OSの種類 .】 WindowsVista
【2 Excelのバージョン.】 Excel2000
【3 VBAが使えるか.】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 Excel 月初

例えばA1に10と入れたらB1に2009/10/1とするにはどうすればいいのでしょうか?
846名無しさん@そうだ選挙にいこう:2009/10/27(火) 14:17:45
>>844
ごめんなさい。分かりにくいですよね。
「プログラム」とは、抽出元のアルファベットと数値の羅列文。
「コード」とは、そのアルファベットのみのことを指してます。
質問内の「A200」や「B300」はセル番地のことではなく、X200,Y300,Z400のような座標値を表してます。

「X200 Y300 Z400・・・」
↑この文から、Xの後に続く数値「200」、Yなら「300」、Z「400」と数値のみ抽出したいです。
847複乳:2009/10/27(火) 14:19:09
>>843
頭文字一文字のぞきたいだけなら
=RIGHT(A1,LEN(A1)-1)*1
で。ちなみに*1をしないと数値にならずに文字列扱いされる可能性があるため
>>845
=DATE(2009,A1,1)

="2009/"&A1&"/1"
848名無しさん@そうだ選挙にいこう:2009/10/27(火) 14:19:24
>845

B1=IF(A1=10,"2009/10/1","")
849複乳:2009/10/27(火) 14:20:13
>>843
念のため補足だけどA1に「X200」とか入ってるって意味ね
数式自体はB1にでもA2にでもどこでも好きなとこへ入れてください
850>>845:2009/10/27(火) 14:28:17
>>848
説明足らずでスンません。
A1=10なら2009/10/1
A1=2なら2009/2/1
A1=12なら2009/12/1
てな具合でIFでやろうとするとかなりのネスト必要ですよね...
851複乳:2009/10/27(火) 14:32:36
>>850
>>847も見てね><
852名無しさん@そうだ選挙にいこう:2009/10/27(火) 14:34:25
>>849
回答ありがとうございます。わざわざVALUE使わなくていいんですね。
一つの文に複数のアルファベットと数値が入ってる場合はどうでしょう?
853複乳:2009/10/27(火) 14:52:21
>>852
例えば「X200Y150」みたいな感じにつながってるのを200と150だと結構めんどくさい
「X200,Y150」みたいにわかれてるならそれほどでもない
「1A2B5C0」を「1250」でも同じ
どんな感じ?
できれば実例を挙げてくれると後々楽かも
854名無しさん@そうだ選挙にいこう:2009/10/27(火) 14:52:34
>>852
取り出した数値はどのセルへ入れるの?
855名無しさん@そうだ選挙にいこう:2009/10/27(火) 14:55:16
>>852
説明がわかりにくすぎる
こんなふうに具体例を書け

(例)
A1に「X100 Y200」と入っている
取り出した「100」をB1に入れる
取り出した「200」をC1に入れる
856複乳:2009/10/27(火) 14:55:24
ああごめん>>843が実例でいいのか
VBAで組んでみましょうか
857複乳:2009/10/27(火) 15:39:14
>>843
オッケーできたぞ
ワードパットからA1に貼り付けたらこのマクロを使ってみてくれ
スペースを元に区切り位置を設定
後はコードを元にアルファベットを空白に置換している。暇なら内容を読んでみるといい

Sub fukunyu()
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array _
(20, 1), Array(21, 1), Array(22, 1))
Cells.Select
For i = 65 To 90
Selection.Replace What:=Chr(i), Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Next
End Sub
858複乳:2009/10/27(火) 15:39:57
>>843
オッケーできたぞ
ワードパットからA1に貼り付けたらこのマクロを使ってみてくれ
スペースを元に区切り位置を設定
後はコードを元にアルファベットを空白に置換している。暇なら内容を読んでみるといい

Sub fukunyu()
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array _
(20, 1), Array(21, 1), Array(22, 1))
Cells.Select
For i = 65 To 90
Selection.Replace What:=Chr(i), Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Next
End Sub
859複乳:2009/10/27(火) 15:40:57
連投スマンカッタ
860複乳:2009/10/27(火) 17:11:49
>>833誰かお願いします
できなくて泣きそうです
861名無しさん@そうだ選挙にいこう:2009/10/27(火) 17:21:45
なんでピボットテーブルやねん
オートフィルタだろjk
862複乳:2009/10/27(火) 17:48:55
ピボットの勉強中なのです
関数とVBAばっかり使いすぎてさっぱり使えないや
863843:2009/10/27(火) 17:55:23
>>854ー855
度々説明不足ですみません!
言いたいことは>>855さんので合っています。
補足で
◆A2に「X200Y300」(間に空白、コンマ無し)
※以下A列に22種類のアルファベット+数値を含んだ文がランダムに混ざって200行程並びます。1行には5種類くらいです。
◆B1「X」、C1「Y」、D1「Z」・・・(22種類のアルファベット)◆B2より1行目の各アルファベットに対応した値のみを返したいです。

>>857
ありがとございます!
今出先なので、帰ったら実行します!
中身は読んでもちんぷんかんぷんですが、これを足掛かりに勉強しますね!
864名無しさん@そうだ選挙にいこう:2009/10/27(火) 18:11:25
>>863
1行の中でアルファベットが重複していた場合はどうするの?
セルA2に「A1B2A3」と入っていたとして、「A」に対応する数字は「13」でいいの?
865複乳:2009/10/27(火) 18:16:21
>>863
間に空白がないと>>857は使えないなぁ
まぁアルファベットを空白に置換すればすむけどさ
2.3行ほど実際のものをみせてくれると嬉しい

アルファベットは必ず一文字?
866名無しさん@そうだ選挙にいこう:2009/10/27(火) 18:25:00
>>865
おまえは最初の質問をよく読め
867名無しさん@そうだ選挙にいこう:2009/10/27(火) 18:28:06
>>860
値フィールドの集計を「最大値」にすれば「12」は表示できるが
その値が属する月だけを表示させるのは無理だな
868843:2009/10/27(火) 18:35:48
>>864
その場合は、Aの項目を2つにして「A/1」に「1」、「A/2」に「3」を返したいです。

>>865
例)
A2>G90X10Y20Z30S120F40
A3>G91X20Z40M8S100M9M108
A4>G1X30Z10G97L2P1020
といった感じです。
869名無しさん@そうだ選挙にいこう:2009/10/27(火) 18:44:38
>>868
おまえは説明がヘタすぎ
「項目を2つにする」の意味がわからん

1行目のどこかに「A/1」ってのが最初から入ってんの?
それとも重複が見つかったら自動的に追加してくの?
こういうこと?

     A.    B     C    D
--------------------------------
 1 |      |  A  | A/1 | A/2
--------------------------------
 2 | A1   |  1  |     |
--------------------------------
 3 | A2A3 |     |  2  |  3
870名無しさん@そうだ選挙にいこう:2009/10/27(火) 18:50:42
条件後出ししすぎw
871名無しさん@そうだ選挙にいこう:2009/10/27(火) 19:11:08
どうせおまえらヒマなんだから あーだこーだいわずにだまって聞いてやれw
872複乳 ◆MeiY43UMr. :2009/10/27(火) 19:30:37
>>843
ほらできたぞ禿
1列目はテキトーに削除してくれ
あと1行目にタイトルがあると思うんだが、それはコピーしておいて最後に貼り付けするなりして
対策してくれ

Option Explicit
Dim i
Sub fukunyu()

Cells.Select
For i = 65 To 90
Selection.Replace What:=Chr(i), Replacement:=" " & Chr(i), LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Next

Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array _
(20, 1), Array(21, 1), Array(22, 1))
Cells.Select
For i = 65 To 90
Selection.Replace What:=Chr(i), Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Next
End Sub

873複乳 ◆MeiY43UMr. :2009/10/27(火) 19:31:26
>1列目はテキトーに削除してくれ
の1列目はA列のことな。
874複乳 ◆MeiY43UMr. :2009/10/27(火) 19:34:18
>>867
ありがとうございます!
既に最大値表示されてたとは気づかなかったぜ
875名無しさん@そうだ選挙にいこう:2009/10/27(火) 19:35:07
Excelって当たり前のソフトすぎて、
真面目に勉強したことなくいつも手なりでやるか、必要になった時にネットでTips的な操作を調べてやってるんだけど、
何か本を一冊買って、一度がっつりと勉強したほうがいいでしょうか?
876複乳 ◆MeiY43UMr. :2009/10/27(火) 19:43:29
ネットで十分
ピボットテーブルとVBA(マクロの記録程度)覚えてると便利
後は関数の説明を読むだけでいいから読んでおくと、いざという時役に立つ。かも
http://www.eurus.dti.ne.jp/~yoneyama/Excel/kansu/itiran.html
あとオプションもどういう項目があるか見ておくといい
後は表示形式、シリアル値のこと知っておけば、何とかなるんじゃないかなぁ
877名無しさん@そうだ選挙にいこう:2009/10/27(火) 20:04:36
たとえばスーパーマリオのワールド・面のように1−1から8−4まであったとして
A1にワールドA2に面を手入力するとします
で、C1からC32までのセルにそれぞれ各ワールド・面の違う数値が入っているので
A1とA2の入力結果を元にA3にC1からC32の数値を自動で選んで表示させる
こういうやり方はできるでしょうか?
たとえが悪くて伝わるかどうかわからないんだけど…
878名無しさん@そうだ選挙にいこう:2009/10/27(火) 20:08:54
できる
879名無しさん@そうだ選挙にいこう:2009/10/27(火) 20:16:14
すみません、是非教えてください
もしくは解説しているサイトがあれば紹介してください
880複乳 ◆MeiY43UMr. :2009/10/27(火) 20:21:46
>>879
A3=INDIRECT("r"&(A1-1)*4+B1&"c3",0)
>>878
やり方教えてやれよw
881名無しさん@そうだ選挙にいこう:2009/10/27(火) 20:46:31
>>880

ありがとうございます
いまから置き換えてやってみます
882843:2009/10/27(火) 21:15:30
>>869
説明ベタでお手数掛けます・・・
1文に複数重複時は、1行目の項目セルに足りない項目を手入力で追加して(A/1、A/2の様に)
対応出来ればと考えてました。

>>872
今実行してみました!
A2>G99G97G0U2Z188M8S1400T499M4
これでテストしてみて結果
B2>99
C2>97
D2>0
E2>2
F2>188
G2>8
H2>1400
I2>499
J2>4
という出力結果になりました。
いろいろお騒がせしてすみません。
複乳さん並びに
相談にのって下さった方々ありがとうございました。
面白いのでいろいろやってみます。
883複乳 ◆MeiY43UMr. :2009/10/27(火) 21:26:19
おめでとう、うまくいったようで良かった。実はかなり心配だった
884名無しさん@そうだ選挙にいこう:2009/10/27(火) 23:18:05
【1 OSの種類         .】 XPSP3
【2 Excelのバージョン   】 Excel2007

8-21というようにページ表現をして、そのまま表示させたいのですが
8月21日、と自動で変換されてしまいます
セルの書式設定で標準、を選び入力し直しても結局8月21日になってしまいPCを窓から投げたくなります
どうやればそのまま表示できるんでしょうか?
885名無しさん@そうだ選挙にいこう:2009/10/27(火) 23:21:35
セルの書式設定で文字列
886名無しさん@そうだ選挙にいこう:2009/10/27(火) 23:24:56
>>885
ありがとうございます
これで下を歩く人の頭にPCが当たることは無くなると思います
887名無しさん@そうだ選挙にいこう:2009/10/27(火) 23:42:24
>>877
=INDEX(C1:C32,(A1-1)*4+A2)
888名無しさん@そうだ選挙にいこう:2009/10/27(火) 23:50:18
質問
初心者です。
Windows7にoffice2000を不正インストールすると
IDだか認証だかですぐパレちゃうんですか?
889複乳 ◆MeiY43UMr. :2009/10/28(水) 00:03:46
>>888
問題ないです!今すぐインストールしてください!!!
と言って信じるんですか?知識の無い方は不正しない方法を考えましょう
PC一台に一つのインストール、OOoを使うなど回避方法はいくらでもあるはずです
ヤフオクも安いですが海賊版とのうわさもあります
890名無しさん@そうだ選挙にいこう:2009/10/28(水) 00:09:40
8月21日と一旦認識してしまうと、文字列にしても直らない・・・って辛い仕様
891名無しさん@そうだ選挙にいこう:2009/10/28(水) 00:25:25
>>890
まだやってるのか?w
んじゃ、shift+7で「'」を入力して8−21って入力して味噌

'8−21 ←こんな感じ
892名無しさん@そうだ選挙にいこう:2009/10/28(水) 01:19:16
>>813
回答ありがとうございました。グラフのズレは仕様なんですね。グラフの画像化で頑張ってみます。
ただ使用頻度が高いのでエクセル2003の購入も考えてます。
OEM版は違うPCでインスコするとマイクロソフトからペナルティー貸せられるからNG。
でもオクやアキバなどではなぜあんなに売られているのでしょうか?
何か抜け道的な技があるのでしたら教えていただきたいです。
893名無しさん@そうだ選挙にいこう:2009/10/28(水) 01:27:48
>>892
売ったり買ったりするだけなら違法じゃないから。
それをインストールして使うとライセンス違反。だから店には責任はない。取り締まることもできない。
894名無しさん@そうだ選挙にいこう:2009/10/28(水) 04:56:07
>>889
>PC一台に一つのインストール
プリインストール版とかOEM版はそうだが、通常の製品版は一つのソフトで
メインPCとサブPCにインストール出来ますよ。
895894:2009/10/28(水) 05:05:08

結果、通常の製品版は2台までokってこと。
896名無しさん@そうだ選挙にいこう:2009/10/28(水) 07:43:43
2台とはいっても、デスクトップ1、ノート1 じゃなかった?
897名無しさん@そうだ選挙にいこう:2009/10/28(水) 09:35:15
デスクトップ1台ノート1台の構成に限るとかそんな縛りあるの?ノート2台でメイン、サブとかはだめなの?
898名無しさん@そうだ選挙にいこう:2009/10/28(水) 09:54:33
ここにちゃんと書いてある
製品版は2台にインストールしてもいいけど、1台は必ず日常的に持ち歩いてないとダメ
ttp://support.microsoft.com/kb/881466/ja

俺はデスクトップPCをRV車に載せて持ち歩いてるぜ、ってんなら2台目もデスクトップでもいい。
899名無しさん@そうだ選挙にいこう:2009/10/28(水) 10:38:45
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000or2003
【3 VBAが使えるか    .】 いいえ
文字の入力の事なんですが
ABCDEFGといった文字の前後に半角スペースを入れたいのですが始めの方は付きますが後ろが幾ら入力しても駄目です。
表示上反映されない??
_ABCDEFG_こんな感じにしたいです。_は半角スペースとお考え下さい。
900複乳:2009/10/28(水) 10:46:40
>>899
=" "&A1&" "
901名無しさん@そうだ選挙にいこう:2009/10/28(水) 10:49:14
見えないだけでしよう
902899:2009/10/28(水) 10:56:22
すいません。情報不足でした。
画面上や印刷したときに反映して欲しいです。
演算や集計に使用するのでは無く名札的なものを作りたいのですが決まった幅で均一にしたいと
またセルを複数個結合していて横は、”均等割り付けインデント”設定です。
ちょっとややこしいですが(変?)これで作れとの指示なもんでなんとかお知恵を拝借願います。
903899:2009/10/28(水) 11:05:15
すいません。解決しました
904複乳:2009/10/28(水) 11:07:51
”均等割り付けインデント”にしようと思い均等割付にした後
インデントをつけると勝手に左詰めになった
と思ったら解決してた
905名無しさん@そうだ選挙にいこう:2009/10/28(水) 11:37:23
>>875
VBAで作り始めた頃、マクロの記録とかで調べながらつくり終わって
ふと本屋で手に取った本に、自分が調べたことが、ほぼ書いてあった
ことがあったw
906名無しさん@そうだ選挙にいこう:2009/10/28(水) 12:10:02
>>905
結果から見ると無駄に思えるかもしれないが確実に肥やしになっ
907名無しさん@そうだ選挙にいこう:2009/10/28(水) 12:56:18
>>897
ノート2はNGって言われたことある。実際入れてないからわからないけど、ノート2とかデスク2とかにインスコしたら認証はじかれるのかなあ?
908名無しさん@そうだ選挙にいこう:2009/10/28(水) 13:09:06
【1 OSの種類         .】 WindowsXP SP3
【2 Excelのバージョン   】 Excel2003

データサイズの大きくなったブック(約40MBワークシート1枚)のシートを、新規ブックを作りコピーして保存したら
データサイズが半分になりました。これはどういう理由でしょうか。
そのワークシートには、数式と文字列しか入っていません。エクセルの設定はデフォルトです。

以下の質問サイトの、質問してる人と同じ状況のように思います。
http://questionbox.jp.msn.com/qa5266889.html
909908:2009/10/28(水) 13:13:59
間違えました・・・

以下の質問サイトの、回答のリンク先では解決しませんでした。
http://questionbox.jp.msn.com/qa5266889.html
910名無しさん@そうだ選挙にいこう:2009/10/28(水) 13:24:05
>>908
データを削除すると、そこは隙間が空いたままになる。
次にデータを入れる時、その隙間を使わずに、また後ろに付け足していく。
だから編集しているうちにどんどん大きくなる。
それを新規ブックにコピーすると、きっちり詰まった状態で作り直されるから小さくなる。

実際は、データ量を節約するための工夫が色々あるんだけど、(例えば列全体に書式を設定した方が、
セル1個ずつ指定するより小さくなるとか) だいたいはそういうことだと思っておけばいい。
911名無しさん@そうだ選挙にいこう:2009/10/28(水) 13:32:05
>>910
なるほど、勉強になりました。
どうもありがとうございました!
912複乳:2009/10/28(水) 17:12:45
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否
【5 検索キーワード     】エクセル カメラ機能 倍率 変わる
図のリンク貼り付け(カメラ機能)を使うとページの倍率が変更されてないのに印刷時のサイズが大きくなります。

具体的には、ある表を印刷する際、113%にするとA3ちょうどに収まる設定なのですがリンク貼り付けをすると
なぜかはみ出ます。105%に落とすとほぼ同じ大きさになります。
今両方で確認したのでバージョン違い・プリンタの設定が違うなどということはありません。
印刷プレビューでもはみ出ますが、印刷範囲の設定をした時の点線は同じ位置にあります。
図や図形を貼り付けてもサイズは変わりませんでした。本リンク貼り付けをしたときだけ大きくなります。
原因が分かる方、教えてください。よろしくお願いします。
913名無しさん@そうだ選挙にいこう:2009/10/28(水) 19:26:11
ビルゲイツは学生時代に常に数冊の本を持ち歩いていて、少なくとも年間300冊以上は読んでいた
それが原因で学校の連中に「prn(印刷物を意味するprintからきた侮蔑する言葉)」
とあだ名を付けられたんだが
ビルゲイツはいい年になった今でも当時のあだ名をひどく嫌っているらしく
windowsで新しいフォルダを作るときに「prn」という名前を付けられないようにした
914名無しさん@そうだ選挙にいこう:2009/10/28(水) 19:36:43
コピペ乙
concon問題とかナツカシス
915名無しさん@そうだ選挙にいこう:2009/10/28(水) 19:38:42
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 簡単なものなら
【4 VBAでの回答の可否】 可
【5 検索キーワード     】ファイルの種類 TMP ファイル

ファイルを作り保存すると、TMP ファイルという物が同じフォルダーの中に出来てきます。
最初はあまり気にならなかったのですが、ファイルが増えるにつれ邪魔になります。

通常のファイルのプロパティを見ると、ファイルの種類「Microsoft Excel ワークシート」と成っていますが、
ファイルの種類「TMP ファイル」と書いてあります。

ファイル名(Excelファイル)と、もう一つ 「ファイル名.xls~RF181538245」 こんな感じで意味不明な数字が足されて出来ます。
どこをいじったら、こうなったのか思い当たりません。
元々、隠しファイルであるものなのか、判りにくいかも知れませんが、宜しくお願いします。
916名無しさん@そうだ選挙にいこう:2009/10/28(水) 20:16:12
教えてください。
以下のようなデータで、A列B列が一致している(りんご りんご のように)行数だけを数えたいのですが、どのようにすればよろしいでしょうか。

   A B
1 りんご バナナ
2 りんご りんご
3 りんご みかん
4 みかん りんご
5 りんご りんご
6 りんご バナナ
7 みかん みかん
8 バナナ みかん
9 りんご りんご
10 バナナ バナナ
917複乳 ◆MeiY43UMr. :2009/10/28(水) 20:44:59
>>915
一時保存ファイルだな。通常は作業が終わったら消える
作業の途中で強制終了したりすると残るもので、ファイルが正常なら消しても問題ないと思う
>>916
C1に=a1=b1
下までオートフィル
D1=COUNTIF(C:C,TRUE)
918名無しさん@そうだ選挙にいこう:2009/10/28(水) 22:01:50
>windowsで新しいフォルダを作るときに「prn」という名前を付けられないようにした

スゲー、初めて知ったw
919名無しさん@そうだ選挙にいこう:2009/10/28(水) 22:09:22
>>916
=SUMPRODUCT((A1:A10=B1:B10)*1)-COUNTBLANK(A1:A10)
ブランクが入らないなら、-COUNTBLANK(A1:A10)はいらないけど・・・
920名無しさん@そうだ選挙にいこう:2009/10/28(水) 22:09:27
>>917 ありがとん
では、これがフォルダに残るということは、何かしらエラーがあるということなのでしょうか・・・
再インストールすれば治るのか、正直邪魔なので。
確かに、正規ファイル開いても別段問題なさげです。

明日の昼休みにでも再インストールやってみます。
ありがとうございました。
921名無しさん@そうだ選挙にいこう:2009/10/28(水) 22:12:52
B列にファイル名、C列にシート名を書いたリストをつくり、B列の任意のセルを選んでボタンを押したとき、
そのファイルを開くことは出来たんですが、シートの選択はどう書けばいいの?

Sub B列のファイルを開く()
  F_NAME = ActiveCell.Value
  Workbooks.Open Filename:="C:\Yui\" & F_NAME
  Sheets(S_NAME).Select
End Sub
922複乳 ◆MeiY43UMr. :2009/10/28(水) 22:13:31
>>920
ttp://oshiete1.goo.ne.jp/qa1839202.html
かなぁ
とりあえず「エクセル TMPファイル」辺りでぐぐって調べてみるといいかも
もし増えないようなら消しちゃってもいいかもね
923複乳 ◆MeiY43UMr. :2009/10/28(水) 22:23:51
>>921
S_NAMEは変数?シート名?
シート名なら
Sheets("S_NAME").Select
こう
変数に格納してるのなら、変数に上手く入ってない可能性が
ウォッチ式を使ってみては
924複乳 ◆MeiY43UMr. :2009/10/28(水) 22:26:26
>>921
ああ、ごめん問題を読んでなかった
同じ行でC列のを取得したいならoffset
F_NAME = ActiveCell.Value
S_NAME = ActiveCell.Offset(0, 1).Value
925名無しさん@そうだ選挙にいこう:2009/10/28(水) 22:29:58
>>923
いや、変数に上手く入ってない可能性じゃなくて、その変数に入れるやり方を知りたい訳でして・・・

B列にファイル名、C列にシート名を書いたリストがあって、B列にアクティブなセルがあったとき、
その右隣にあるC列のセルに書いたシート名をS_NAMEという変数に入れたいんです。
926名無しさん@そうだ選挙にいこう:2009/10/28(水) 22:31:54
>>924
あ、できました。
ありがとうございます。
927名無しさん@そうだ選挙にいこう:2009/10/28(水) 23:01:13
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003

次のようなCSVを開いて加工したあとに、ダウンロードした月をブック名に入れたいのですが、
コンパイラエラーになってしまいます。どこが悪いのでしょうか?

DT303S_ENG200910281117.CSV
CSVの中に年月日(20091028)と時分(1117)が書かれている.
CSVの種類によって、最初の文字数が変わるので "_" の位置から8番目が月になる.
この例では、月度=10 にしたい.

月度 = Mid(WB.Name, Find("_", WB.Name, 1) + 8, 2)
928複乳 ◆MeiY43UMr. :2009/10/28(水) 23:09:14
>>927
月度 = Mid("DT303S_ENG200910281117.CSV", WorksheetFunction.Find("_", "DT303S_ENG200910281117.CSV", 1) + 8, 2)
ワークシート関数のFINDを使いたい場合はWorksheetFunction.Findとする
vbaのfindはちと使い方が違う。
929名無しさん@そうだ選挙にいこう:2009/10/28(水) 23:35:17
VBAで文字列内の検索はInstr関数
930名無しさん@そうだ選挙にいこう:2009/10/28(水) 23:35:30
>>928
VBAでWorksheetFunction.Findなんか使っちゃいかん。
ちゃんとInStrが用意されてる。
931名無しさん@そうだ選挙にいこう:2009/10/28(水) 23:36:32
ちょっと遅かったか。
932名無しさん@そうだ選挙にいこう:2009/10/28(水) 23:39:25
なんや質問者がFind書いてたからか。
933927:2009/10/29(木) 00:05:20
レスどうもです。

月度 = Mid("DT303S_ENG200910281117.CSV", WorksheetFunction.Find("_", "DT303S_ENG200910281117.CSV", 1) + 8, 2)

↑はおkでしたが、↓は「実行時エラー13 型が一致しません」でダメぽですた。

月度 = Mid("DT303S_ENG200910281117.CSV", InStr("_", "DT303S_ENG200910281117.CSV", 1) + 8, 2)
934複乳 ◆MeiY43UMr. :2009/10/29(木) 00:29:49
>>933
引数の順序や内容は関数ごとに全然違うと思って毎回調べた方がいい。ぐぐれ
まぁ今回は↓
月度 = Mid("DT303S_ENG200910281117.CSV", InStr(1, "DT303S_ENG200910281117.CSV", "_", 1) + 8, 2)
935複乳:2009/10/29(木) 10:04:45
>>912分かる方いませんか。
936名無しさん@そうだ選挙にいこう:2009/10/29(木) 13:37:57
同じ症状だ
937名無しさん@そうだ選挙にいこう:2009/10/30(金) 13:07:05
【1 OSの種類         .】 WindowsXP Pro SP3
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 できれば「否」
【5 検索キーワード     】 Empty ワークシート関数 代入

別のセルにある値を参照して代入する際、対象が未入力セルだと数値の0に変換され代入されてしまいますよね。
この「未入力」の状態を表す関数なり変数がわかりません。(ないのかもしれません)
セルに対して「未入力」を代入できる数式の書き方があればぜひ教えて下さい。

VBAなら判別も代入も出来る事はわかっているのですが、
作成時VBA縛りがある場合やそのためだけにマクロ警告出したくない場合もありますし、
ワークシート上だけで実現出来るならそれが一番いいなと思い質問しました。

一応=Nullとか、=Emptyでいけないかと考えましたが通りませんでしたw
以上よろしくお願いいたします。
938複乳:2009/10/30(金) 13:51:06
>>937
残念、vbaしか無理です
939名無しさん@そうだ選挙にいこう:2009/10/30(金) 13:57:32
>937

ISNUMBER等
940名無しさん@そうだ選挙にいこう:2009/10/30(金) 15:44:03
IF(A1="", ……
じゃダメなのか?
941名無しさん@そうだ選挙にいこう:2009/10/30(金) 18:26:19
ゼロ値のチェック外したんじゃダメ?
942937:2009/10/30(金) 21:06:04
数々の返答ありがとうございます。

>>938
単純に"Blank"を代入する術はない、という事ですね。
ありがとうございました。

>>939
IS系のワークシート関数で判定すべし、という方法でしょうか。
この場合はIsBlank関数ですかね。ありがとうございました。

>>940
その式でもIsBlank関数同様に用件を満たせますね。
用法としてはおそらくこうなりますよね?
=IF(A1="","",A1)
相手A1がBlankではなくとも、どっちにしろ値が""であるならこれでいいはずですね。
ありがとうございました。

>>941
ごめんなさい。
どういう意味でしょうか?

いろいろな考えが見えて勉強になります。
自分の質問を改めて整理し直してみると判定方法のほうではなく、
値としてBlankを渡せないか?という事を質問したつもりだったのです。
申し訳ありません。
943937:2009/10/30(金) 21:09:49
ごめんなさい、私はそもそも重大な勘違いをしていた事に気が付きました。

そのセルに数式を書く前提ではもうすでに「Blankにはなり得ない」ですね・・・orz
ワークシート関数で実現すること自体が不可能ですよね、これ。
ほんとズコーって感じです。スレ汚し申し訳ありませんでした。

これを実行したかった理由は、こうしてBlankを参照したセルをさらに参照した時、
ここでもIsBlank関数がTrueを返すような状態、つまり限りなく大元のセルに近いコピーセルを作れないかという考えからでした。

普通はBlankを判定して""に置き換えますよね。
すると元々ある空文字列のセルと区別不能になってしまったり、
Sum関数等でエラーになってしまったりするので影響する部分には手直しが必要になりますよね。

ですが結局は""への代替がもっとも簡単かつ、問題があっても対処が楽な方法のようですね。
ありがとうございました。

PS.もし仮に値として「セルオブジェクト」を代入出来るとしたら実現できる、かもしれないと今妄想しましたw
944名無しさん@そうだ選挙にいこう:2009/10/30(金) 21:40:29
最初から>939でFAだと思うんだが・・・
945名無しさん@そうだ選挙にいこう:2009/10/30(金) 21:48:57
>>937は何言いたくて書いてんの?
946複乳 ◆MeiY43UMr. :2009/10/30(金) 22:17:39
tes
947名無しさん@そうだ選挙にいこう:2009/10/30(金) 22:33:45
tes
948複乳 ◆MeiY43UMr. :2009/10/30(金) 22:39:35
>>936
対策等分かりますか、分かりませんか
949名無しさん@そうだ選挙にいこう:2009/10/30(金) 22:50:38
スミマセン
どなたか数値の色を変えただけでIFの論理式に組み込む事は出来ますか?
例としてセルA3にはA1とA2の合計値が入っていて、セルA1の数値の色が赤に変わったら、セルA4にセルA1が表示されて、セルA3は空白になるとか・・・
別にIFじゃなくともいいんですけど、VBAでしか無理ですか?関数でなんとか出来ないでしょうか・・・
950名無しさん@そうだ選挙にいこう:2009/10/30(金) 22:55:22
まあ、落ち着け
951複乳 ◆MeiY43UMr. :2009/10/30(金) 22:57:02
>>949
メニューの書式→条件付書式
背景色と文字色を設定できる
952名無しさん@そうだ選挙にいこう:2009/10/30(金) 23:07:25
で?
953名無しさん@そうだ選挙にいこう:2009/10/30(金) 23:09:03
>>949
文字の色を調べるワークシート関数はない
954名無しさん@そうだ選挙にいこう:2009/10/30(金) 23:09:32
>>951
スミマセン
もう少しkwsk・・・
色を変えても表示されません
955複乳 ◆MeiY43UMr. :2009/10/30(金) 23:10:50
寝不足でワケワカランことをかいてしまった
スマンかった
956複乳 ◆MeiY43UMr. :2009/10/30(金) 23:12:24
>>954
>>953が正しいよ
957名無しさん@そうだ選挙にいこう:2009/10/30(金) 23:14:24
>>949
自分の書いた質問をもう一度見直してみれ。もっと具体的に解るように書けや粕。
958名無しさん@そうだ選挙にいこう:2009/10/30(金) 23:14:27
>>953
やはりVBAしか無理って事ですよね?
959複乳 ◆MeiY43UMr. :2009/10/30(金) 23:21:04
そうだよ
960名無しさん@そうだ選挙にいこう:2009/10/30(金) 23:25:07
>>959
やはりそうでしたか・・・教えて頂きありがとうございました。
勤務時間表を作っていたのですが、入力する表の列に定時の時間と時間外の時間も入力しなくてはならなくて、その合計値を定時と時間外に分けるにはどうすればいいか困っていたんです。
961937:2009/10/30(金) 23:26:54
>>945
> 値としてBlankを渡せないか?という事を質問したつもりだったのです。

>>944
いいえ、振り返って考えれば完璧なFAは>>938でした。
はじめの質問の文章ではまるっきり伝わっていないですね。
重ね重ねすいませんでした。937としてはこれにて失礼します。



>>958
以前調べましたが、純粋にワークシート関数では取得出する術がないようです。
どうしても何が何でもVBA抜きでという事ならば、Excel4MacroのGet.Cell関数で取得出来た気がします。
VBAからじゃないと4Macroの使い勝手ってすこぶる悪いんで全くお勧め出来ませんけども。
962名無しさん@そうだ選挙にいこう:2009/10/30(金) 23:28:32
>>960
VBAを使うか、表のデザインを変えて定時と時間外を別々に入れるとか、
時間や時間帯が決まってるなら計算式でなんとかするとか、方法はいくらでもあるから、
もうちょっと詳しい条件を書いてみ?
963名無しさん@そうだ選挙にいこう:2009/10/30(金) 23:29:42
>>961
教えて頂きありがとうございました
とても参考になりました。
964名無しさん@そうだ選挙にいこう:2009/10/31(土) 00:31:56
中途半端な知ったかぶりが一番始末に終えない・・・>>937

何がしたいのかさっぱりワカラン。
日本語の勉強から始めた方がよかろう。
965名無しさん@そうだ選挙にいこう:2009/10/31(土) 00:34:46
>>962
レス遅れてスミマセン
表の形式は変えてはいけないようです。
そしてとても複雑なのですが、A列は職種No.、B列は社員No.、C列は遅刻・早退D列は仕事内容、E列勤務時間を入力、F列は仕事内容、G列は勤務時間、H列は仕事内容、I列は勤務時間、J列は定時時間合計、K列は時間外、Lは定時時間合計と時間外の合計
というシートが3枚あります。
何故3枚のシートがあるかと言いますと、それぞれ仕事の部署に分けているんです。
そして入力の基本なんですが、うちは職種が変わるたびに社員No.が重複しても行を変えて入力しています。しかし、社員No.が一緒かつ職種が一緒で仕事内容が違っていれば社員No.の行(G列そしてI列)に入力します。
E列G列I列に入力した数値の合計を定時時間合計に出すのですが・・・数値が8以上なら8.00と表示して、それ未満ならE列G列I列の合計、なんですがC列に数値を入力したらその数値を差し引いた数値を表示するんです。
そして定時時間合計が8以上の場合は時間外に越えた分だけ表示するのですが、C列に数値があった場合には、定時時間合計が8を越えてなくってもC列の数値と定時時間合計を足して8を引いた数値を表示出来ればありがたいです。
これからが一番厄介なんですが、時間外だけ他の部署に移動という場合もあってもう最悪・・・
時間外だけなんですけど勤務時間に数値を入力し、これだけは時間外に表示・・・という無茶苦茶な事なんです。
だからせめて色だけでも変えたらエクセルの方もわかってくれるんじゃないかと思って質問したんです。
966名無しさん@そうだ選挙にいこう:2009/10/31(土) 02:10:02
>>955
だよね。
967名無しさん@そうだ選挙にいこう:2009/10/31(土) 02:22:16
>>965
んなぁこと知るかぁ〜〜












by Excel
968名無しさん@そうだ選挙にいこう:2009/10/31(土) 06:35:14

XPで、Excel 2007を使用しています。

評価項目 A B C D

例     10 20 60 20
例     50 0 32 30


といったようにデータをいれて、ABCDフィルタつけました。

このとき、たとえば評価項目Bについて降順について並べ替えをすると、
数値だけが並びかえられてしまいます。
これを行ごと並べ替えられるように設定したいのですが、どうすればいいでしょうか?
969名無しさん@そうだ選挙にいこう:2009/10/31(土) 06:51:15
>>968
並び替える箇所だけを選択してやってみたらどう?
970名無しさん@そうだ選挙にいこう:2009/10/31(土) 09:35:07
>>965
なんか簡単にできそうな感じがするが、読みづらくて考える気が起きない。
勤務表にちゃんとしたルールがあるなら、関数だけでできるでしょ。
971複乳 ◆MeiY43UMr. :2009/10/31(土) 10:49:09
>>965
ファイルをアップロードすれば作ってやらんでもない
あと色づけで解決というのは考えないほうがいい
>>968
ABCD列全てを選択してからデータ→並べ替え(2003の場合)
972916:2009/10/31(土) 15:19:23
<<917, 919

遅くなりましたが、ご回答ありがとうございました。
973名無しさん@そうだ選挙にいこう:2009/10/31(土) 16:50:22
レス遅れました

>>970
そうですか・・・いつも電卓で計算して手入力しています。

>>971
すいませんがアップロードの事がよくわからないんです。
別シートにピボットで集計してそれから・・・とか考えてみたのですが、結局集計しても意味がないですしね・・・
いつも通り電卓で計算して全部手入力します
お騒がせ致しました。すいませんm(__)m
974名無しさん@そうだ選挙にいこう:2009/10/31(土) 17:59:14
>965 これでどうでしょうか。
J列の計算式=MIN(8/24,SUM(E2,G2,I2))-C2
K列の計算式=IF(SUM(E2,G2,I2,C2)>8/24,SUM(E2,G2,I2,C2)-8/24,0)
携帯から書き込みはツライ
975名無しさん@そうだ選挙にいこう:2009/10/31(土) 19:52:50
>>973

集計結果に対して複雑な業務ルールを適用するのは、けっこう難しいでしょ。
請求額と支払額の差額から、運賃が支払われていないことを見つけたりというような仕事を、人間はなんとなくやってのけますが、こういうの機械には難しいことなんです。

あなたの場合、勤務時間の集計をもとに8時間を越えた場合などいろいろ複雑な仕分けをしようとしていますが、発想を変えてはどうでしょう。
つまり、勤務時間を記録する時点で、時間外なのかそうでないのかを仕分けしてしまうのです。
そうすれば後は機械的に集計するだけですみますよ。
976名無しさん@そうだ選挙にいこう:2009/10/31(土) 22:10:20
たしかに、必要性も何も考えずに漠然とやってることって多いからな。
977名無しさん@そうだ選挙にいこう:2009/10/31(土) 22:21:00
アドバイスありがとう

>>974
関数を使った数式ありがとう
参考にさせて頂きます

>>975
とても参考なります。
人間の考える部分も必要ですよね。
仕訳が難しいですが、頑張ってみようと思います。
978名無しさん@そうだ選挙にいこう:2009/10/31(土) 23:31:33
次スレは?
979複乳 ◆MeiY43UMr. :2009/10/31(土) 23:56:14
>>973
そうか・・
まぁ、アップロードは10分でできるだろうが、毎回その業務をやるのが楽というならそうするのが良い
と言って放置するのも忍びないので
[email protected]
に送ればある程度協力します。怖いなら別に送らなくて良い。
>>978
いつも980か990で立ててる
というのもアレなので立てるか
980複乳 ◆MeiY43UMr. :2009/10/31(土) 23:58:52
・・立てられなかった・・テンプレだけは用意した。誰かお願いします↓
▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★1 質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★2 要望は具体例や図を使って明確かつ具体的に。
★3 質問前に>>2-20あたりの注意書きやQ&Aを必ず読むこと。
★4 質問テンプレ(雛形)は必須じゃないけど、
   OSやExcelのバージョン、VBAの可否など(下記テンプレ1〜4の情報)は必須情報。

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

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

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

前スレ
Excel総合相談所 87
ttp://pc11.2ch.net/test/read.cgi/bsoft/1254055959/
981名無しさん@そうだ選挙にいこう:2009/11/01(日) 00:44:25
>>980
立てといた。
Excel総合相談所 88
http://pc11.2ch.net/test/read.cgi/bsoft/1257003834/
982複乳 ◆MeiY43UMr. :2009/11/01(日) 01:33:39
>>981
ありがとうございます。
テンプレも追加しておきましたのでこのスレは気づいた人が埋めてください
983名無しさん@そうだ選挙にいこう:2009/11/01(日) 07:37:18
>>979
ウザ
984名無しさん@そうだ選挙にいこう:2009/11/01(日) 08:21:59
このウザって書くやつみると部外者の俺でもいつもむかつくんだが、こいつなんとか始末できないかね。
985名無しさん@そうだ選挙にいこう:2009/11/01(日) 08:55:41
>>984
「ウザ」をNGワードにすればいいじゃない
986名無しさん@そうだ選挙にいこう:2009/11/01(日) 09:49:04
始末ってw
987複乳:2009/11/01(日) 09:54:46
>>983
埋め立てご苦労様です!
988複乳:2009/11/01(日) 09:56:32
>>984
>>983はスレを荒らす方向に持っていって埋め立てる算段だったんだろう
根はいい奴なんだよ
989複乳:2009/11/01(日) 10:02:43
生め
990複乳:2009/11/01(日) 10:05:17
埋め
991名無しさん@そうだ選挙にいこう:2009/11/01(日) 10:08:16
お節介も
992名無しさん@そうだ選挙にいこう:2009/11/01(日) 10:10:04
993名無しさん@そうだ選挙にいこう:2009/11/01(日) 10:11:31
994名無しさん@そうだ選挙にいこう:2009/11/01(日) 10:11:46
995名無しさん@そうだ選挙にいこう:2009/11/01(日) 10:12:42
996名無しさん@そうだ選挙にいこう:2009/11/01(日) 10:15:52
997名無しさん@そうだ選挙にいこう:2009/11/01(日) 10:22:58
998名無しさん@そうだ選挙にいこう:2009/11/01(日) 10:24:12
999名無しさん@そうだ選挙にいこう:2009/11/01(日) 10:25:38
>>1000ならMS倒産
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。