2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

Excel総合相談所 83

1 :名無しさん@そうだ選挙にいこう:2009/06/10(水) 19:12:43

Excelに関する質問は、ここで!

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

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

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

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

前スレ
Excel総合相談所 82
http://pc11.2ch.net/test/read.cgi/bsoft/1241825062



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



3 :名無しさん@そうだ選挙にいこう:2009/06/10(水) 19:14:48
★ルールを無視すると…
 >>1-2あたりのルールに従うか否かは自由だけど、従わないと以下のような不利益があるよ

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

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

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


★VBAについて
 VBAとは、『Visual Basic for Application』の略で
  Application
  ├Workbooks
  |└Workbook
  |  ├Worksheets
  |  |└Worksheet
 というApplication以下のオブジェクトを、VB言語で操作するものを指します。 
 例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、
 セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。


4 :名無しさん@そうだ選挙にいこう:2009/06/10(水) 19:16:18
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)

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

 ▼操作
  ・ ファイラーの右クリックメニューからの新規作成で、Excelで設定したシート数のブックを作る (任意のシート数のテンプレートを作成)
  ・ 複数シートを選択して入力規則やシートの保護を設定する (VBA)
  ・ オートコンプリート機能を、別列や離れたセルで動作させる (VBA)
  ・ 選択範囲から一部を除く、Ctrlを押しながらの複数選択で一部を取り消す (VBA)
  ・ 優先キーを3つ以上指定しての並べ替え (優先度の低い方から順に並べ替える)
  ・ 1セルを分割 (分割したいセル以外を結合)


5 :名無しさん@そうだ選挙にいこう:2009/06/10(水) 19:17:16
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)

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

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

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

 ▼グラフ
  ・ 棒グラフでひとつだけ突出したデータがあった場合に波線を入れて位置を合わせる
   (オートシェイプなどで見た目だけそうなるように弄る、別アプリでグラフを作り、オブジェクトとして挿入)
  ┌┐
  〜〜
  ||


6 :名無しさん@そうだ選挙にいこう:2009/06/10(水) 19:18:07
上記 「Excelで出来ないこと、仕様上の制限」 は、一般的に出来ないとされていること、出来ないと思われるものです。
間違いがある可能性もあるので、上記に挙がってるもので「コレはこうすれば出来るよ」というものがあったらご指摘ください。
Excel2007についても未確認な項目が多いので変更点が有ればご指摘下さい。

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

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

7 :名無しさん@そうだ選挙にいこう:2009/06/10(水) 19:23:34
多数のブックを開いてシートを追加しながら集計し、R列の最下行+1に集計結果を書いています。
このとき、各シートをクリックしたらすぐに集計結果が確認できるよう
次のような荒業で見栄えを整えています。

Application.ScreenUpdating = True
Range("R65536").End(xlUp).Offset(1, 5).Select 'シートのレイアウト(見栄え)
Range("R65536").End(xlUp).Select 'カーソルを集計結果のポジションへ
Application.ScreenUpdating = False

これだと、当然ながら画面がチラチラするので改良したいのですが、
何か良い方法があるでしょうか?

8 :名無しさん@そうだ選挙にいこう:2009/06/10(水) 19:38:16
>>7
msgboxとかのほうがいいんじゃないの
若しくは集計用のシートでも作って、そこにリンクさせるか

9 :名無しさん@そうだ選挙にいこう:2009/06/10(水) 20:53:58
>>8
意味が分かりません。
msgboxなんか付けて週百回もOKをクリックしてたら、処理に10分くらい掛かると思います。
画面をチラチラさせずに、カーソルの位置とシートのレイアウトを統一したいんです。

10 :名無しさん@そうだ選挙にいこう:2009/06/10(水) 20:54:56
× 週百回
○ 数百回

11 :名無しさん@そうだ選挙にいこう:2009/06/10(水) 21:19:29
いろいろ調べたのですがいい物が見あたらないので・・・

【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 画像パス 画像を自動挿入

シート2に画像のアドレスを入力してゆきます。
シート1の指定した場所にシート2のアドレスを参照してその画像を適度な大きさに
変換して貼り付けて置くことは可能でしょうか?
シート2のアドレスを変更するとその画像も自動的に変わるようにしたいです。

出来ればVBA無しでくめれば最高なのですが、教えていただけますでしょうか?


12 :名無しさん@そうだ選挙にいこう:2009/06/10(水) 21:22:51
_

13 :名無しさん@そうだ選挙にいこう:2009/06/10(水) 21:49:09
>>11
無理

14 :名無しさん@そうだ選挙にいこう:2009/06/10(水) 21:51:36
>>7
ScreenUpdatingをfalseのまま処理すりゃいいじゃん

15 :名無しさん@そうだ選挙にいこう:2009/06/10(水) 22:13:35
>>14
falseのまま処理したら、selectしても動きません。
やってみれば一目瞭然です。

16 :名無しさん@そうだ選挙にいこう:2009/06/10(水) 22:37:26
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 ちょっとだけ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 オートフィルタ コピー

データをY列で並び替えてから、オートフィルタでB列とN列の空白セルを除きます。
Y列のトップ5(タイトル行を除いて上から5行)を選んで他のシートにコピーするとき、
空白があると5行がコピーできません。
Worksheets("HND").Range("A2:Y6").Copy _
Destination:=Worksheets("HVC").Range("A2")

ググって探して真似てみたけど、どうしてもうまくいきません。
Worksheets("HND").Range("A2:Y6").SpecialCells(xlCellTypeVisible).Copy _
Destination:=Worksheets("HVC").Range("A2")

どこを直せばいいの?(´Д⊂)ウワーン

17 :名無しさん@そうだ選挙にいこう:2009/06/10(水) 22:54:12
>>15
Sub Macro1()
Sheets("Sheet1").Select
Application.ScreenUpdating = False
Application.Goto Reference:=Range("R65536").End(xlUp).Offset(1, 5), Scroll:=True
Range("R65536").End(xlUp).Select
Sheets("Sheet2").Select
Application.Goto Reference:=Range("R65536").End(xlUp).Offset(1, 5), Scroll:=True
Range("R65536").End(xlUp).Select
Application.ScreenUpdating = True
End Sub
動くけど
それとも何?selectしたら画面を動かしたいの??
それならRange("R65536").End(xlUp).Offset(1, 5).Select 'シートのレイアウト(見栄え) がいらん

18 :名無しさん@そうだ選挙にいこう:2009/06/10(水) 23:45:38
>>17
Scroll:使って、「ScreenUpdatingをfalseのまま処理」と書いておきながら「動くけど」はねーだろwww
ま、いいや

19 :名無しさん@そうだ選挙にいこう:2009/06/11(木) 00:43:04
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 少し
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 ハイパーリンク

セルにハイパーリンクでFTPサイトをリンクしたのですがクリックすると
「インターネットサイトのレポートによると、リクエストしたアイテムが
見つかりませんでした。(HTTP/1.0 404)」となってしまいます。
IEのバージョンは7です。
ハイパーリンクではftpサイトに接続することはできないのでしょうか?
アドレスは、ftp://xxx:yyy@ftpサイト て感じで設定しています。
よろしくお願いします。



20 :名無しさん@そうだ選挙にいこう:2009/06/11(木) 02:08:30
>>19
IEにURLを入れると見れるけど、Excelのハイパーインクだとダメってこと?

21 :名無しさん@そうだ選挙にいこう:2009/06/11(木) 06:30:27
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 ?
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】エクセル 印刷範囲 設定

A1にAと入ればB2:D10、Bと入ればB20:D30というように印刷範囲を変えたいです。
上記の検索でこのページを見つけ試しましたが、出来ませんでした。
http://xl-kobeya.seesaa.net/article/8843049.html

検索ワードにマクロを入れるとボタンを作る方法を見つけましたが、
ボタンではなく、特定のセルに入った文字列により変えたいです。

どうかご教示ください。

22 :名無しさん@そうだ選挙にいこう:2009/06/11(木) 06:56:05
>>21
Aのとき
Sub Macro1()
ActiveSheet.PageSetup.PrintArea = "$B$" & (Asc(Cells(1, 1)) - 95) & ":$D$" & (Asc(Cells(1, 1)) - 86)
End Sub

>B2:D10、Bと入ればB20:D30
範囲間違ってない?どういう基準で範囲が変わるのかよく分からない
変えれそうなら(Asc(Cells(1, 1)) - 95) と (Asc(Cells(1, 1)) - 86)を
(Asc(Cells(1, 1)) - 86)*2とかにかえて試行錯誤してみてください
無理ならレスください


23 :名無しさん@そうだ選挙にいこう:2009/06/11(木) 09:24:11
>21
A1の値が"A"の場合とそうでない場合の2通りだけなら以下の手順でできます。3通り以上のときも
工夫すれば対応できると思う。(IndexとかMatchとか)

B1セルに計算式 =IF(A1="A","範囲A","範囲B") を入れておく。
あとはhttp://xl-kobeya.seesaa.net/article/8843049.htmlのページを参考に
B2:D10の範囲を 範囲A、B20:D30の範囲を 範囲B と名前を設定する。
メニューバーの[挿入(I)]-[名前(N)]-[定義(D)] から
Print_Aria ←半角で大文字小文字間違えないように
の参照範囲を =INDIRECT(Sheet1!$B$1) とする。

自分の環境はWindowsXp(sp3),Excel2003ですが、ちゃんとできました。
もし、うまくいかないときは、Excelを終了・起動してみてください。


24 :名無しさん@そうだ選挙にいこう:2009/06/11(木) 11:26:25
>>20
はい。そういうことです。
http://サイト だと IEのアドレスにコピーされて接続できるのですが、
ftp://ID:パス@ftpサイトだとIEすら起動しないのです。
ftp://ftpサイトでも同じです。

Excelの仕様ということであればどうしょうもないのですが、
設定等で回避できるようなら教えてください。


25 :名無しさん@そうだ選挙にいこう:2009/06/11(木) 11:52:14
>>24
ftpサーバーが存在しない、セキュリティソフトがftpアクセスを弾いているなどの理由でアクセスできない
とかいうことは無いですか


26 :名無しさん@そうだ選挙にいこう:2009/06/11(木) 13:24:03
インターネットオプションは?
FTPフォルダビューを有効にする

27 :名無しさん@そうだ選挙にいこう:2009/06/11(木) 14:23:31
>>25
ftpサイトのアドレスは、間違っておりません。

>>26
有効になってます。

IEでアドレスたたくときちんと表示されますし、、、

皆さんのPCでは、問題なくハイパーリンクでIEが起動してftpサイトに
アクセスできるということですか。。。


28 :名無しさん@そうだ選挙にいこう:2009/06/11(木) 14:46:56
Excel2007を使ってます。

入力規則機能を使って
ドロップダウンリストから選択して入力してもらうようにしてます
そこで例えば、リストから○を選択すると背景が青
×を選択すると背景が赤になるように設定できないものでしょうか?

29 :名無しさん@そうだ選挙にいこう:2009/06/11(木) 15:14:47
>28
条件付書式を利用します。
当方はExcel2003のため、リボンメニューについてはわからないのであしからず。

30 :名無しさん@そうだ選挙にいこう:2009/06/11(木) 15:25:49
>>29
ありがとうございます。


31 :名無しさん@そうだ選挙にいこう:2009/06/11(木) 15:34:47
エクセル2000使ってます
誤って上書き保存してしまった場合戻す方法教えてください。
お願いします

32 :名無しさん@そうだ選挙にいこう:2009/06/11(木) 15:55:55
上書きしちゃったらどうにもならないです
スッパリあきらめたほうが早いです

33 :名無しさん@そうだ選挙にいこう:2009/06/11(木) 16:10:40
>>32
ありがとうございます。

34 :名無しさん@そうだ選挙にいこう:2009/06/11(木) 16:56:20
【1 OSの種類         .】 WindowsXP Pro SP3
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい (まぁ少しは)
【4 VBAでの回答の可否】 否

WebからデータをExcelに貼りつけているのですが、これに関して質問です。

1 データを保存しようとする度に下記のメッセージが表示されます

プライバシーに関する注意:このドキュメントには、マクロ、ActiveXコントロール、
XML拡張パックの情報、またはWebコンポーネントが含まれています。これらにはドキュ
メント検査機能で削除することができない個人情報が含まれる場合があります。

出さないようにする方法はありますか?

2 http://table.yahoo.co.jp/t?s=USDJPY=X&g=d
でコピーしている最中に関係ない下の方のテキストボックスまで貼りつけてしまった
のですが、これって削除はどのようにすれば出来るのでしょうか?
貼りつけた範囲を含む所を選択して削除しても肝心のテキストボックスやリストボッ
クスの部分は削除できませんでした。




35 :名無しさん@そうだ選挙にいこう:2009/06/11(木) 17:41:29
>>34
1 Excelのオプション→セキュリティセンター→セキュリティセンターの設定→ドキュメント固有の設定
  →チェックを外す

2 一番簡単な方法はそのシートを削除して新しいシートに貼り直す

36 :名無しさん@そうだ選挙にいこう:2009/06/11(木) 19:07:59
>>35
1はでなくなりました。
2は、、、やはりそれが一番簡単なんでしょうね w

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


37 :名無しさん@そうだ選挙にいこう:2009/06/11(木) 19:44:26
>>34
2番目

まずExcelのオプションで「複数オブジェクトの選択」コマンドをツールバーに登録。
そして「[開発]タブをリボンに表示する」もチェックしておく。
ここまでが準備。最初に1回やるだけでいい。

手順の1. 開発タブを開き、デザインモードをONにする。

手順の2. さっき登録した「複数オブジェクトの選択」アイコンをクリックすると選択モードになる。
「すべて選択」→「OK」→Deleteキー

これで、テキストボックスなどの部品類が全部いっぺんに削除できる。

38 :名無しさん@そうだ選挙にいこう:2009/06/11(木) 19:47:43
2003までみたいに範囲ドラッグでコントロール選択ってのはできなくなったん?

39 :16:2009/06/11(木) 20:15:38
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 ちょっとだけ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 オートフィルタ コピー

データをY列で並び替えてから、オートフィルタでB列とN列の空白セルを除きます。
Y列のトップ5(タイトル行を除いて上から5行)を選んで他のシートにコピーするとき、
空白があると5行がコピーできません。
Worksheets("HND").Range("A2:Y6").Copy _
Destination:=Worksheets("HVC").Range("A2")

ググって探して真似てみたけど、どうしてもうまくいきません。
Worksheets("HND").Range("A2:Y6").SpecialCells(xlCellTypeVisible).Copy _
Destination:=Worksheets("HVC").Range("A2")

どこを直せばいいの?

40 :34:2009/06/11(木) 20:38:43
>>37
ありがとうございます。こんなやり方があるんですね。ビックリしました。

>>38
それで済んだら楽だったんですけどね w

41 :名無しさん@そうだ選挙にいこう:2009/06/11(木) 20:53:37
>>39
分からん
Selection.AutoFilter
でオートフィルタ解除
若しくは
Sub a()
Range("d1").Formula = Range("c1").Formula
End Sub
みたいにするか

42 :名無しさん@そうだ選挙にいこう:2009/06/11(木) 20:54:29
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 関数 

りんご 100円
みかん 120
バナナ 150
メロン  110
桃    130

1位 ???   ???円
2位 ???   ???円
3位 ???   ???円

これでX番目の「項目」と「値段」を自動的に表示させるには何の関数を
(組み合わせて)使えばいいのでしょうか?LARGE関数は項目までは
抽出できないみたいですし・・・。宜しくお願い致します。

43 :名無しさん@そうだ選挙にいこう:2009/06/11(木) 20:59:48
>>39
こんなんでどうだ?

Sub 可視セルのみコピー()
  r = 6
  While Range("HND!A2:A" & r).SpecialCells(xlVisible).Count < 5
    r = r + 1
  Wend
  Range("HND!A2:Y" & r).Copy
  Range("HVC!A2").PasteSpecial
End Sub

44 :名無しさん@そうだ選挙にいこう:2009/06/11(木) 21:07:14
値段が同じくだものがなければLOOKUPで

45 :名無しさん@そうだ選挙にいこう:2009/06/11(木) 21:15:49
>>42
「円」は必ず書式設定でセルに反映させること、「りんご」はA1に入ってる前提で、いきます
C1=RANK(B1,$B$1:$B$5)
C5までオートフィル
A7=一位、A8二位A9三位
B7=INDEX($A$1:$A$5,MATCH(1,$C$1:$C$5,0),1)
B8=INDEX($A$1:$A$5,MATCH(2,$C$1:$C$5,0),1)
B9=INDEX($A$1:$A$5,MATCH(3,$C$1:$C$5,0),1)
C7=VLOOKUP(B7,$A$1:$B$5,2,0)
C9までオートフィル

vlookup、RANKは覚えておいた方がいいかも
本当はindex+matchがいいんだけどやや扱いにくい

46 :名無しさん@そうだ選挙にいこう:2009/06/11(木) 21:20:04
パソコン初心者ですが表計算の資格を取るためにパソコンを購入しようと思っています

最低Excel2007が使えればいいんですがどのメーカーさんのを買えば入ってますか?
全てに入っているものなんでしょうか?それともソフトのような物を購入するのでしょうか?

パソコンの知識が全くないのでわかりません…

47 :名無しさん@そうだ選挙にいこう:2009/06/11(木) 21:24:55
>>46
「Office入り」というのを選ぶとExcelとWordが入っている。
どこのメーカーでもOfficeあり、なし、両方用意してるから、Officeありのを選ぶこと。
あとは、まあどれを買っても同じ。好きな色で決めればいい。
ただ、あんまり安いのは動作が重いので仕事で使うにしろ勉強に使うにしろ能率が悪くなる。
目安としては、だいたい10万円でテレビ機能のないやつを買っとけばいい。

48 :名無しさん@そうだ選挙にいこう:2009/06/11(木) 21:28:24
>>47
わかりました!ありがとうございました!

49 :名無しさん@そうだ選挙にいこう:2009/06/11(木) 21:28:38
>>46
価格コムで調べればいくらでも出てくるだろ

大手メーカーのならだいたいOffice Personal 2007は入っているはず

ノートならこんなのとか
ttp://kakaku.com/spec/K0000030170/

50 :名無しさん@そうだ選挙にいこう:2009/06/11(木) 21:41:05
>>45
うおお、ありがとうございます!ちょっとレッスンしてみます。
また何かありましたら宜しくお願い致します。m(_ _)m

51 :16=39:2009/06/11(木) 21:42:55
>>43
ありがとうです。
Do Whileは使ったとこがあるけど、Wendは初めて見ました。
勉強します・・・

>>41
ありがとうです。
43さんのが、そのものズバリです。

52 :名無しさん@そうだ選挙にいこう:2009/06/11(木) 22:40:02
エクセル関連の掲示板を見てると「selectするな」って書いてる人がいます。
マクロの自動記録するとselectばかりしてますが、selectしては
いけない理由って何でしょうか?

53 :名無しさん@そうだ選挙にいこう:2009/06/11(木) 22:46:47
>>52
1.速度的に不利、メンテナンス性も大きく損なわれる
2.コードの行数が少なくなる=マクロ全体の可読性が高まる


54 :名無しさん@そうだ選挙にいこう:2009/06/11(木) 22:54:37
>>52
自動記録は最適化されてないから無駄が多い。
その中でも一番無駄な部分がいちいちSelectするところ。

55 :名無しさん@そうだ選挙にいこう:2009/06/11(木) 23:09:03
>>53
速度を測ったこともあるんですが、2秒が3秒になったところで不利とも思えないし、
selectで改行した方が、視覚的に分りやすいのに?

>>54
張り詰めて仕事をするより、無駄口を叩きながらの方がいいでそ?
無駄って、マイナス要因ばかりじゃないと思うんだけどね。

56 :名無しさん@そうだ選挙にいこう:2009/06/11(木) 23:35:37
>>55
2秒が3秒なら問題になることも少ないだろうが、
世の中には何時間もかかるマクロもあるんだぜ?
2時間が3時間じゃ無視するわけにいかん。

57 :名無しさん@そうだ選挙にいこう:2009/06/12(金) 00:12:42
>>56
VBAで速度にこだわるのは滑稽。

58 :名無しさん@そうだ選挙にいこう:2009/06/12(金) 01:22:25
目的の処理を行うのにselectする必要ないのにselectされると見難いんだよ普通に
オッサンがだらだら意味不明な前置きしてんのと一緒だな
簡潔に目的の処理を書けというのは当たり前すぎる


59 :名無しさん@そうだ選挙にいこう:2009/06/12(金) 01:53:12
すいません、日数×時間=総時間を出したいのですが、
例えば3(日)×2.30(2時間30分)で"分"を60で繰り上げして=7.30という答えを導き出したいのですが、
この"分"の部分を60で繰り上げるにはどういう数式にしなければいけないんでしょうか?
Excelのバージョンは2000です。

60 :名無しさん@そうだ選挙にいこう:2009/06/12(金) 05:45:52
時間の部分を2:30:00にすれば、答えが7:30:00になる。

61 :名無しさん@そうだ選挙にいこう:2009/06/12(金) 05:50:04
縦に 「りんご, ぶどう, もも, バナナ, もも, バナナ, もも, バナナ, ぶどう, ぶどう」 と並んでるのですが,
出現回数ランキングを「1位 バナナ 200回 2位 もも 180回 ・・・」のように作るにはどうすればいいでしょうか.
出現する項目の種類が多いので,COUNTIFを使ってはできないと思うのですが・・・
関数だけでできればお願いします.

62 :名無しさん@そうだ選挙にいこう:2009/06/12(金) 06:01:19
>>57
ハズレ

単体アプリケーションとしてVBアプリに速度を求めるのは滑稽だが
VBAでは事情が違う

VBAはあくまでも「Excelの操作の効率化」の為のモノだから
速度に拘るというか、速いにこしたことはないのは当然の摂理

アプリケーション製作用プログラム言語と
アプリケーション操作用マクロ言語を同列で考えちゃいけないよ

63 :名無しさん@そうだ選挙にいこう:2009/06/12(金) 06:39:16
>>62
意味不明

64 :名無しさん@そうだ選挙にいこう:2009/06/12(金) 07:37:17
selectは絶対に悪だから使うな、というわけではない
俺もマクロの最後にA1セルを選択したりすることはある
特にコマンドボタンに登録したマクロだと、フォーカスがコマンドボタンに残るからね

でも基本は>>53の二行目だろうね
記録したマクロをそのまま使うなんてそうそうないことだし、
手を加える時にいらない処理はどんどん削る。また人によっては削る行為(最適化)自体に快感を伴う場合もあるんじゃないかな
まーそうやって最適化してれば、後で手を加えるときに楽なんだよ。
教えられてそうするわけじゃない、学習した結果の行為

65 :名無しさん@そうだ選挙にいこう:2009/06/12(金) 07:42:14
>>61
ピボットテーブル作って加工すれば?

66 :名無しさん@そうだ選挙にいこう:2009/06/12(金) 07:52:36
>>64
速度の話じゃなくなってるね。

67 :名無しさん@そうだ選挙にいこう:2009/06/12(金) 09:58:05
【1 OSの種類         .】 Windows Vista
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Excel2007 テーブル リスト

Excel2007でデータの管理をしようということになり、
2007から導入されたデータベース機能の「テーブル」を使おうと思っています。

現在、シートA、B、Cに、それぞれテーブルA、B、Cがあるのですが、
テーブルBのある列の入力規則にリストを使い、
そのリストのデータ元をテーブルAのある列にしたいと考えています。

そこで質問なのですが、

(1)別のテーブルのデータを元に、リストを作るのは可能でしょうか。
可能ならどのように指定すればいいのでしょうか。

(2)データベースのように、リストやセルに表示されるデータはデータ元の[列2]でも、
実際にデータとして入っているのはデータ元の[列1]である、というようなことは可能でしょうか。
名前を選んだらキーが入るというイメージです。
※こちらはできたらやりたいのですが、できなければあきらめます。

以上、よろしくお願いします。


68 :名無しさん@そうだ選挙にいこう:2009/06/12(金) 10:15:18
>>66
vbaで速度なんて気にしても仕方ないだろう
よほど重い処理をしているなら、問題解決へのアプローチの仕方が間違っている

69 :59:2009/06/12(金) 10:28:35
>>60
エラーが出て上手く行きませんでした。
試しに、:00をとって2:30にしてみた所、明治何年何月何日となってしまいました。
ちなみにこれはわかり難いですが、時計の何時ではなく、時間数です。
例えば、1時間30分を1.5時間と表す場合もありますが、この1.5時間を1時間30分に変更する方法でも良いです。


70 :60じゃないよ:2009/06/12(金) 11:48:29
>59、69
横レスですが、以下のことをやってみてください。
A1セルに 3 を入力(日数のつもり)
B1セルに 7:30 を入力(時間の入力) ※7.30ではありません。
C1セルに計算式 =A1*B1 を入力
これだけでC1セルには 7:30 と表示されるはずですが。

>=7.30という答えを導き出したい
どうしても小数点形式で表示したいということでしょうか?
○時間△分を表すのに ○.△ は不適と思いますが。

71 :59:2009/06/12(金) 11:58:48
>>70
レスありがとうございます。
希望どうりの表示ができました。
ありがとうございました。

72 :名無しさん@そうだ選挙にいこう:2009/06/12(金) 12:31:43
>>69
Excelでは24時間を1と置いて計算するようになっている。
つまり1時間は1/24で、1.5時間は(1/24)*1.5で求めることができる。
電卓で計算してみると 1時間=1/24≒0.0416667
この数字を掛けて書式で"h時間m分"にすれば「1.5」が「1時間30分」に変換できる。

73 :名無しさん@そうだ選挙にいこう:2009/06/12(金) 13:57:41
>>63
まぁ理解できないからこそ>>57みたいな発言が出てくるわけだから
言っても今の時点では意味不明なのは当然か

74 :名無しさん@そうだ選挙にいこう:2009/06/12(金) 14:50:10
ExcelのVBAはその場しのぎの使い捨ての自分だけで使うプログラムを組むことが多いから
VBAを作成してから結果を得るまでがいかに早く(速くではなく)出来るかが重要に思うな。
俺の場合は。

「速さ」にこだわる人はVBAプログラミングの請負みたいなのを職業としてやってるんだろうから
それはそれで当然だと思う。

色んな場合を一緒くたにしてどうこう言うのが間違ってるよ。

75 :名無しさん@そうだ選挙にいこう:2009/06/12(金) 14:52:54
やりたいようにやればいいじゃん

しゅごキャラがついてるよ

76 :名無しさん@そうだ選挙にいこう:2009/06/12(金) 16:18:11
>>57
だよな。
美しさを求めた方がいいわな。
で結局汚いコードはほとんど遅い。


77 :名無しさん@そうだ選挙にいこう:2009/06/12(金) 16:28:45
ボールをとる
とったものを投げる。

ボールを投げる

78 :名無しさん@そうだ選挙にいこう:2009/06/12(金) 16:37:53
ある程度綺麗なコード、それこそselectを抜くだけでも勝手に速度も上がるよなぁ


79 :名無しさん@そうだ選挙にいこう:2009/06/12(金) 16:43:16
お前らが会社辞めたりせずに最後まで自分で作ったものの
面倒見てくれさえすれば何でもいいですよ・・・
変なこだわりがある自信過剰な人ほどいきなり会社辞めたりするんで困るんですよ・・・

80 :名無しさん@そうだ選挙にいこう:2009/06/12(金) 17:42:54
【1 OSの種類         .】 WindowsXPSP3
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 VBA Sum関数 自動入力


質問です。

作成した表のA1〜O1が見出し行でそれよりしたに行数が300行ほどあります。
で最下行にSum関数が入っているのですが、中間に行挿入した場合はSum関数
も範囲が延長されますが、見出し行の真下に挿入した場合はSum関数の先頭
アドレスが変わっちゃいます。

これをチェインジイベントマクロもしくは標準のモジュールのマクロはどの
ようにすればいいのでしょうか?

81 :80:2009/06/12(金) 17:58:44
すいません、追記です。

先頭行の真下だけでなく、Sum関数が入っている真上に行挿入した場合は
最終アドレスが変わります。

どちらのケースも対応させるようにしたいのですが。

82 :名無しさん@そうだ選挙にいこう:2009/06/12(金) 18:35:17
頭使えよ 余分に範囲指定してその中で挿入すればいいだろうが

83 :名無しさん@そうだ選挙にいこう:2009/06/12(金) 18:45:59
>余分に範囲指定してその中で挿入
A2が関数の先頭ならSum(A1:A300)としておけばいいが・・
最終行の範囲はどんすんのよw

84 :名無しさん@そうだ選挙にいこう:2009/06/12(金) 19:04:09
データがA2:A300なら、A302に=SUM(A1:A301)と上下1行余分な式を入れれば良いだけだろ?

合計セルの前に空行が出来るが、計算上は全く支障無いし、見た目を整えたければ行の非表示も可能
またアウトライン使えば行の表示/非表示は1クリックで切り替えられる
301行にアウトライン設定して301行に行挿入すれば、アウトラインは302行に移って、式は=SUM(A1:A302)になる

85 :名無しさん@そうだ選挙にいこう:2009/06/12(金) 19:11:22
>チェインジイベントマクロもしくは標準のモジュールのマクロ
って言っているんだから・・

A列のみのサンプル(標準モジュールの例

Sub Sample()
With Range("A2")
.End(xlDown).Offset(1, 0).Formula = _
"=SUM($A$2:" & .End(xlDown).Address & ")"
End With
End Sub

VBA使えるなら後は考えろ

86 :名無しさん@そうだ選挙にいこう:2009/06/12(金) 21:37:51
INDIRECT関数を利用すると、範囲の片方は固定できます。
合計を求めるセルがB301として、当初の集計範囲がB2:B300だったとします。
B301セルの計算式を
=SUM(INDIRECT("$B$2:$B"&ROW()-1))
としておけば、2行目に行挿入しても””で囲んだ部分は変わりません。
集計範囲のもう片方は合計行の1行上と指定してるので行の挿入・削除に応じて変化します。
マクロとかややこしいものを使わずにすむのでこれがいいかと思う。

87 :名無しさん@そうだ選挙にいこう:2009/06/12(金) 22:02:09
19です。ハイパーリンクは諦めました。
代わりに、BASP21とマクロでFTPサイトからフォルダ一覧とファイル一覧取得して目的のファイルダブルクリックでダウンロード出来るようになりました。
ありがとうございました。

88 :名無しさん@そうだ選挙にいこう:2009/06/12(金) 22:02:42
独り言ならチラシの裏にでも書いておけよ

89 :名無しさん@そうだ選挙にいこう:2009/06/12(金) 22:08:37
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000

前スレ805の続きです。前回とはシート名が変わっています。
Sheet("DATA")の月ごとのデータを、Sheet("FS")に1Q、2Q、3Q、4Qでまとめることは
出来ましたが、新たに月ごとのデータもまとめることになりました。
レスをくださった方のマクロを元に書いてみたものの、うまく集計してくれません。
どこが間違ってるのでしょうか?

---Sheet("DATA")--------------------------------------------------------------
  A   B  C   D   E  F  G  H   I   J  K    L    M  N   O   P  Q
商品名    4月  5月 6月    7月 8月 9月   10月 11月 12月    1月 2月 3月
A1        12  15  7      3   2  6
A1         3   5  2      4   9  11
A1        10  12  8     10  16  5
A2         3   0  5      1   3  0
A3         8   6  11      8   7  2
A3         0   3  7      0   1  1 


--Sheet("FS")------------------------------------------------------------------
  A  B  C  D  E  F  G  H    I   J   K  L   M    N    O    P  Q  R
商品名   1Q 2Q  3Q 4Q  4月 5月 6月 7月 8月 9月 10月 11月 12月 1月 2月 3月
A1      74  66
A2      8   4
A3      35  19

90 :89:2009/06/12(金) 22:10:39
Sub まとめ3()
Dim i As Long, j As Long, k As Long
Dim Rng(3) As Range
Dim Rng1(3) As Range, Rng2(3) As Range, Rng3(3) As Range

 Worksheets("FS").Rows("2:65536").Delete Shift:=xlUp
 i = 3
 j = 2

 With Worksheets("DATA")
  Do While .Cells(i, 1).Value <> ""
   If .Cells(i, 1).Value <> .Cells(i - 1, 1).Value Then
    For k = 0 To 3
     Set Rng(k) = .Cells(i, 3).Resize(1, 3).Offset(0, k * 4)
     Set Rng1(k) = .Cells(i, k * 3 + 7)
     Set Rng2(k) = .Cells(i, k * 3 + 8)
     Set Rng3(k) = .Cells(i, k * 3 + 9)
    Next
   Else
    For k = 0 To 3
     Set Rng(k) = Union(Rng(k), .Cells(i, 3).Resize(1, 3).Offset(0, k * 4))
     Set Rng1(k) = Union(Rng1(k), .Cells(i, 3).Offset(0, k * 3 + 7))
     Set Rng2(k) = Union(Rng2(k), .Cells(i, 7).Offset(0, k * 3 + 8))
     Set Rng3(k) = Union(Rng3(k), .Cells(i, 11).Offset(0, k * 3 + 9))
    Next
   End If

91 :89:2009/06/12(金) 22:11:33
   If .Cells(i, 1).Value <> .Cells(i + 1, 1).Value Then
    Worksheets("FS").Cells(j, 1).Value = .Cells(i, 1).Value
    For k = 0 To 3
     Worksheets("FS").Cells(j, k + 3).Value = WorksheetFunction.Sum(Rng(k))
     Worksheets("FS").Cells(j, k * 3 + 7).Value = WorksheetFunction.Sum(Rng1(k))
     Worksheets("FS").Cells(j, k * 3 + 8).Value = WorksheetFunction.Sum(Rng2(k))
     Worksheets("FS").Cells(j, k * 3 + 9).Value = WorksheetFunction.Sum(Rng3(k))
    Next

    j = j + 1
   End If
   i = i + 1
  Loop
 End With

 For k = 0 To 3
  Set Rng(k) = Nothing
 Next

 Worksheets("FS").Select
End Sub

92 :名無しさん@そうだ選挙にいこう:2009/06/12(金) 22:15:59
>>67
2007持ってないんで2003以前の話なんだけど

(1)名前の定義をする
2003以前なら範囲を選択→挿入→名前→定義

(2)表示される[列2]を元にINDEX関数で引っ張ってくるとかかなあ?

93 :名無しさん@そうだ選挙にいこう:2009/06/12(金) 22:24:11
もの凄く初歩的な質問と思われますがお願いいたします。

【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 「エクセル 数 順」「エクセル 複製」

左側に縦1列で上から順に1から数字をうった表を作りたいのですが
必要な数だけ1から順に数字を入力する方法を教えてください。
行数が足りなくなった際の複製方法もお願いします。
検索をかけてみましたが何をキーワードにすれば良いかも分からない状態です。
よろしくお願い致します。

94 :名無しさん@そうだ選挙にいこう:2009/06/12(金) 22:26:00
集計にVBAを使うのはバカだということで意見が一致しています

95 :名無しさん@そうだ選挙にいこう:2009/06/12(金) 22:27:50
>>93 
2003なら編集−フィル−連続データの作成
さがせば2007にも同じような機能はあるだろう

96 :名無しさん@そうだ選挙にいこう:2009/06/12(金) 22:50:15
>>93
"1"を入力したセルの右下でマウスカーソルが十字キーみたくなったら その状態
で右クリックを押しつつ必要な数のセルを選択。
右クリックから指を離すと右下に四角っぽい図形(オートフィルオプション)
がでてきますのでそこの▼をクリックし”連続データ”を選択する。

97 :名無しさん@そうだ選挙にいこう:2009/06/12(金) 22:56:15
まあ A1+1を下にコピーすればいいんだけどね

98 :96:2009/06/12(金) 22:57:48
>>95
会社:2007、俺:xpなんだけど2007って扱いづらいっす。
>>95指摘の編集−フィルって便利なの、もしかしたら無いんじゃないかとおもう。

一応前スレにも載ってた方法をコピペ&加筆させてもらいました。

99 :名無しさん@そうだ選挙にいこう:2009/06/12(金) 22:59:09
10
2
5
8
9
4
3

など乱数が並んでる列に対し
5以上の数字の偏差(stdev)など使ってやりたいのですが
何か良い関数があれば教えて下さい。
実は数字じゃなくて時間でやりたいので応用が利くのがいいです。

100 :名無しさん@そうだ選挙にいこう:2009/06/12(金) 23:04:41
>>99
C1に数値を入力
b1=a1>$c$1
下にオートフィルで偏差出すとか
ちなみに計算上TRUEは1、FALSEは0でしょ利される

101 :96:2009/06/12(金) 23:14:18
ちょっと訂正
×:右クリック→○:左クリック

102 :93:2009/06/12(金) 23:19:21
出来ました!皆さんどうもありがとうございました!!

103 :名無しさん@そうだ選挙にいこう:2009/06/12(金) 23:48:55
>>92
回答ありがとうございます!試してみます。

104 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 00:25:56
>89
月毎の集計ならこういうオーソドックスなのはどうでしょうか?
四半期の小計は計算式にまかせているのと、FSシートのクリアは入れてません。
Option Explicit
Dim Sh_I As Excel.Worksheet, Sh_O As Excel.Worksheet
Dim Retu As Variant, Tate_I As Long, Tate_O As Long, i As Integer
Dim Syokei(12) As Long, W_DATA As String
Sub 集計()
  Call Init_proc
  Do While (W_DATA <> "")
    Tate_I = Tate_I + 1
    If W_DATA = Sh_I.Cells(Tate_I, 1).Value Then
      For i = 1 To 12
        Syokei(i) = Syokei(i) + Sh_I.Cells(Tate_I, Retu(i - 1)).Value
    Next i
    Else
      Sh_O.Cells(Tate_O, 1).Value = W_DATA
      For i = 1 To 12
        Sh_O.Cells(Tate_O, i + 6).Value = Syokei(i)
        Syokei(i) = Sh_I.Cells(Tate_I, Retu(i - 1)).Value
      Next i
      W_DATA = Sh_I.Cells(Tate_I, 1).Value
      Tate_O = Tate_O + 1
    End If
  Loop
  Set Sh_I = Nothing
  Set Sh_O = Nothing
End Sub
続く

105 :104:2009/06/13(土) 00:29:52
続き
Private Sub Init_proc()
  Set Sh_I = Worksheets("DATA")
  Set Sh_O = Worksheets("FS")
  Retu = Array(3, 4, 5, 7, 8, 9, 11, 12, 13, 15, 16, 17)
  Tate_I = 2
  Tate_O = 2
  W_DATA = Sh_I.Cells(Tate_I, 1).Value
  For i = 1 To 12
    Syokei(i) = Sh_I.Cells(Tate_I, Retu(i - 1)).Value
  Next i
End Sub
以上
当方、COBOLが長かったのと、UNION とかRESIZEとか初めて見たので、↑こういうやり方しかできません。
Retu = Array(3, 4, 5, 7, 8, 9, 11, 12, 13, 15, 16, 17)の行は、
DATAシートとFSシートの月の列の対応のためのもので、FSシートの方は+6するだけなので配列にしてません。
参考まで。

106 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 01:31:03
#VALUE! って参照不可能なんでしょうか?
例えば、

     A       B
1 マスクメロン  1000
2 夕張メロン   #VALUE!
3 XXX

とあって、セルXXXに=IF(B2="#VALUE!",B1,B2)みたいな#VALUE!を転用する
感じの式って打ち込めないんでしょうか?宜しくお願い致します。

107 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 01:32:38
>>106
=IF(ISERROR(B2),B1,B2)

108 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 01:48:52
>>107
^ー^)ノシ Thanks so much !!

109 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 03:28:30
>>89
集計方法が変わるたびにプログラミングか。ご苦労なことだ。
そんな簡単なことできたって誰もほめてくれないぞ。
集計なんかできて当たり前で、集計結果をもとにどんな意思決定をするかが大切なんだ。


110 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 05:12:35
>>89
DATAシートとFSシートでは構成が違うのだから、Cellsの引数を変える必要がある。
具体的には、

>Set Rng1(k) = .Cells(i, k * 3 + 7)
 ↓
Set Rng1(k) = .Cells(i, k * 4 + 3)

さらにその下のOffsetを使っている部分は全然ダメ
>Set Rng1(k) = Union(Rng1(k), .Cells(i, 3).Offset(0, k * 3 + 7))
 ↓
Rng1(k) = Union(Rng1(k), .Cells(i, k * 4 + 3))
もしくは
Rng1(k) = Union(Rng1(k), .Cells(i, 3).Offset(0, k * 4))

Rng2とRng3は、上の3という数字をを4と5にそれぞれ変えればいい。
これでうまくいくはず。

いろいろつっこみどころ満載だが、とりあえず配列とOffsetについてはググるなりしておいたほうがいい。

111 :110:2009/06/13(土) 05:15:03
Setが抜けてた・・・

112 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 08:12:56
>>89
>>94がピボットテーブル使えと言ってるぞw
Excel2000なんでアイテム数が足りるかどうか分らんが。

113 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 08:15:07
>>109もピボット使えと言ってたか。

114 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 08:24:27
ついでにピボットテーブルのヒントだが、「複数のワークシート範囲」と「グループ化」で出来る。
4月〜6月を選択してグループ化、7月〜9月を選択してグループ化、以下同様。
4月を左端にもってくるには並び替えのユーザー設定リストを作ればいい。


115 :110:2009/06/13(土) 09:52:30
>>89は前スレでピボットは無しという条件を付けている
何故かはわからないがな・・・

116 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 09:58:20
>>115
何故かは簡単だ。
頭悪いんだよ。

117 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 12:37:19
>>116
ピボットに頭はいらないじゃん。
頭の悪い人ほどピボットを覚える必要がある。

118 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 12:40:12
>>117
ピボットぐらいはまず全員が使えるようになるべき
知名度が異常に低いの何とかして欲しい

119 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 13:15:20
Excelは何でもありだから逆にややこしくなる。
ピボットテーブル専用ソフトみたいなのがあるといいんだけどな。
並べ替えとフィルタとVLOOKUPあたりも使えた方がいいか。

120 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 13:19:08
過去そういうソフトはいっぱいあったんじゃないかな
で、これがしたい、あれがしたいとなって、マクロが実装されて(マイツールとか)
マクロ書くのがめんどくさい!ってなって今の形になった、のかも


121 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 13:28:27
>>117
難しいこと知っていたって役に立たないなら無意味。


122 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 13:29:45
vba便利だよ
マクロの記憶とif、forだけ覚えてればかなりの場面に対応できる

123 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 13:31:30
>>118
全員出来なくても、自分が作ってあとはマクロを登録したボタン押すだけにしといてもいいじゃん。
登録するマクロは範囲変更と更新だけで使えるな。
自分が操作するにはかまわないけどとか言い訳する奴結構いるが、何でVBAを併用しないのかと
いつも思う。

124 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 13:31:42
>>122
じゃあ売上の多い順に並べ替えるプログラムを作ってください。

125 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 13:33:40
ピボットテーブルの認知度が低いのは名前のせいだよな
クロス集計ウィザードみたいな名前にしとけばもうちょっと普通に使われてた。

126 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 13:36:24
>>125
同感。
SUM関数よりも先に覚えるべき機能だと思う。

127 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 13:38:31
>>121
ピボットなんて難しくないよ。
馬鹿でも使えるように作られた機能だからどんどん使うべき。

128 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 13:39:43
OOoじゃピボットテーブルはなんて名前だったっけ?

129 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 13:41:12
>>127
>>121だけどピボットが難しいとは言ってないよ。
どんどん使うべきだよね。
何でもピボットでできてしまうのにVBAはいったい何に使うの?
コンパイラでも作るの?

130 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 13:45:08
ピボットテーブル便利なんだけどさ、
複数人の人が行うルーチンワークに使うには
微妙に難しい面があるんだよな。
データ行を追加する場合にちょっと工夫が必要だとか
書式設定がらみとか

131 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 13:47:28
>>128
Calcならデータパイロット

>>129
だからピボットを覚える気がない人にボタンを押してもらうときVBA使えばいいんだよ。
どんな馬鹿でもボタンは押せる。
ボタン押すのも嫌で関数でやるやつはウルトラヴァカ。

132 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 13:50:59
>>123
そういう意味じゃなくてエクセル使ってる人の中でもピボットの知名度は低いってことだよ
マクロはVBA大好きっ子が自慢半分に使うから(昔の俺もそうでしたけど)有名になってる気がする
ただピボット使わなくても関数で集計できるのでそうする人もいる
最悪集計を手作業でやる人もいるしね
>>124
イヤだよ麺どくさい
並べ替え使うよ
>>129
ファイルの整形とか、プリンタの変更とか、数式の結果を値にして貼り付けるとか
あと「いくつあるか分からない」事態に対しても非常に強い


133 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 13:52:01
いいこと考えた。
「万能クロス集計」っていう名前でExcelのアドインを売れば儲かるんじゃね?
中ではピボットテーブルを起動してるだけ。

134 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 13:53:04
>>131
何でウルトラヴァカ?
俺様はSUMPRODUCTでサクッと出来ちゃうんでピボットテーブルなんてイラン。


135 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 13:56:17
>>134
SUMPRODUCTとかSUMIFとかは分類を列挙しないとだめでしょ。
新しい分類が増減する度に集計表をメンテしないといかん。

136 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 13:59:29
>>135
それも配列数式で出来るからピボットテーブルはイラン。

137 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 14:00:54
>>132
VBA使って自慢ってのも低レベル。
並べ替えにはVBA使わないってのはおもしろいな。


138 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 14:05:58
>>134>>136
できるならいいよ。
君はそれ使ってなさい。


139 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 14:07:32
>>138
ネタだろ?
本気で書いてたら盲愚回答者なみのアフォだなw

140 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 14:31:11
>>137
だから昔のことだって
黒歴史なんだって
あまりそこには触らないでほしいんだぜ

141 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 19:19:48
データ数多すぎてピボットの限界超えてるのかと思ったけど
>>89の表見るとそんなでもなさそうだね。

142 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 19:19:52

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

最近エクセルの勉強を始めました。
日付の表示形式で
表示形式がdddだと表示結果はFri
       aaaだと表示結果は金
となるようですが、
何故aやdが使われてるんでしょうか。
このa,dにはどういう意味があるんでしょうか。


143 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 20:18:54
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可 できれば関数で
【5 検索キーワード     】 板取り 関数

Excelの関数で板取計算ができないかと考えています。
ROUNDDOWN関数を使用して自分なりに作ってみましたが
場合によっては以下の様な取り方も必要になってきます。

http://up2.viploader.net/pic2/src/viploaderf161057.gif

やりたいことは
1 母材の縦横サイズを入力
2 部材の縦横サイズを入力
3 最適取り数を表示
です。宜しくお願いします。


144 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 20:35:30
>>143
一般的にこの手の問題は関数ではありません。
(x1, x2, x3, ... , xn)を決めたら自動的にf(x1, x2, x3, ... , xn)が求まるというわけではなく、
f(x1, x2, x3, ... , xn)が最大になるような(x1, x2, x3, ... , xn)を探す問題です。


145 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 20:50:58
>>142
YY : Year
MM : Month
DD : Day

Aは知らん

146 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 20:54:26
>>142
http://www.excel.studio-kazu.jp/lib/e3g/e3g.html

147 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 21:15:34
>>144
ありがとうございます。
VBAは使えませんが、これから勉強しようと思います。
頭の中ではイメージは出来上がっているのですが、なかなか形にできなくて…
4パターンの取数計算をし、そこから1番大きい数を取り出す様なイメージなのですが合ってますかね?
具体的に例もあれば教えていただきたく

148 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 21:24:06
>>147
そうです。
考えられる全ての組合せを全て網羅して結果が最大となるものを選んでください。


149 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 22:37:11
ttp://www.vector.co.jp/soft/winnt/business/se431647.html
でも使ったほうがいいかも
フリーソフトってほとんどないね

150 :89:2009/06/13(土) 23:22:52
>>104
ありがとうございます。
Syokei(i) = Sh_I.Cells(Tate_I, Retu(i - 1)).Value で、「実行時エラー13、型が一致しません」と
エラーが出てしまいました。
Private Sub Init_proc() は、標準モジュールに書きましたが、書く場所が違ってたら
教えてください。

>>109
もちろん、集計は目的ではなく手段で使っています。
幼稚なマクロながら動いてたので、効率の良い書き方をご教示頂いたしだいです。

>>110-111
ありがとうございます。完成しました。
配列は初めてなので、これからもっと勉強します。

>>115
ホストコンピュータから出されたCSVを集計して、売れ筋商品とか今後の予測とか
その他もろもろを解析した結果を報告書を印刷するまでをマクロ一括でやっているためです。
単に集計するだけなら、ピボットデーブルでいいのは分っています。

>>141
毎月データ量が3万〜4万件くらいあるようなので、ピボットテーブルを作るより
マクロで一括処理の方を選んだしだいです。ピボットの限界って、どれくらいですか?

151 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 23:34:32
板取りの汎用のソフトがあまりないのは

・第一に数学的にかなり難易度の高い問題であること
・工業的に大量生産する場合は最初に1回決めれば終わり
・材料と部品が現実的なサイズなら人間の直感のがよっぽど早くて確実
・素材の特性や機械の都合で部品の向きが固定されることがある。この場合は単純な割り算
・切り抜くたびに素材に歪みが出る場合は部品の間隔を空ける必要がある
・切断時の工具の通り道によるロスも千差万別

152 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 23:37:20
>>150
>ホストコンピュータから出されたCSVを集計して、売れ筋商品とか今後の予測とか
>その他もろもろを解析した結果を報告書を印刷するまでをマクロ一括でやっているためです。
>単に集計するだけなら、ピボットデーブルでいいのは分っています。

売れ筋商品はどうやってみつけているの?
集計して売上の大きいものが売れ筋なんじゃないの?
つまり集計するだけなんじゃないの?

153 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 23:37:56
>>150
流れを見ずにレスするけど
Syokei(i) = Sh_I.Cells(Tate_I, Retu(i - 1)).Value で、「実行時エラー13、型が一致しません」

Syokei()はLong型だから、右辺で読み込んでいるセルの内容が数値じゃないってことだな。

154 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 23:39:07
>>152
自分で引用した部分をよく嫁
報告書の印刷までやってると書いてあるだろ

155 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 23:41:10
>>150
今後の予測なんて本当にVBAでやってるの?
配列も知らなかったのに。

156 :名無しさん@そうだ選挙にいこう:2009/06/13(土) 23:42:11
>>154
印刷をVBAでやりたいということ?

157 :名無しさん@そうだ選挙にいこう:2009/06/14(日) 00:02:04
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 割り算 あまり
VBAのfornextループを使い、データの整形をしようとしています
ループカウンタiが3の倍数のときに3、3の倍数+1の時は1、3の倍数+2の時は2を返したいのですが、
どうすればいいでしょうか?
for i = 1 to 100
if 「iは3の倍数か、+1か+2かどうか」 then
'ここの間に処理
next
だと思うのですがどうやればいいでしょうか

158 :名無しさん@そうだ選挙にいこう:2009/06/14(日) 00:02:41
>>150
Private Sub Init_proc()の、
Tate_I = 2をTate_I = 3にすればいい。

これは>>104が間違えたというよりもお前の説明不足。
DATAシートのデータが3行目から始まっているなんて>>89からはわからない。

159 :名無しさん@そうだ選挙にいこう:2009/06/14(日) 00:03:01
ぜんぶホストコンピュータでやればいいじゃん

160 :名無しさん@そうだ選挙にいこう:2009/06/14(日) 00:04:07
>>150
集計をマクロを使ってピボットテーブルを作成するのはダメ?
別シート作ってやればシートが汚くなることも無いけどな
俺は会社でそうやってるけど

161 :名無しさん@そうだ選挙にいこう:2009/06/14(日) 00:10:14
>>157
((i - 1) Mod 3) + 1
これ、たまに忘れる

162 :名無しさん@そうだ選挙にいこう:2009/06/14(日) 00:19:57
>>157
If i Mod 3 = 0 Then
'3
ElseIf i Mod 3 = 1 Then
'1
Else
'2
End If

こっちのがいいかも
Select Case i Mod 3
Case 0
'3
Case 1
'1
Case 2
'2
End Select

163 :名無しさん@そうだ選挙にいこう:2009/06/14(日) 00:21:45
>>161>>162
ありがとうご゛ざいます
selectcaseいいですね。使ったこと無いので使って見ます

164 :名無しさん@そうだ選挙にいこう:2009/06/14(日) 00:25:09
>>150
2003以前のピボットテーブルは
フィールドあたりの重複しないアイテムは32500まで。
データ量がそんなあるなら「アイテムが多すぎます」みたいなエラーが出るだろうね。

165 :名無しさん@そうだ選挙にいこう:2009/06/14(日) 00:31:08
ピボットはファイルがでかくなるし、多くの人は嫌がるよな。
VBA使えるならその方がいいと思うけど。

166 :名無しさん@そうだ選挙にいこう:2009/06/14(日) 00:39:47
ファイルがでかくなると言っても大した量じゃないと思うけど。まぁ重くなるのは避けたいところだけど
作成した後にコピーして別シートにはりつけ、ピボット削除をマクロにさせれば問題ないんじゃないかな

167 :89 ◆2LLK9dXXUc :2009/06/14(日) 00:50:10
>>153
とりあえず動いたので、104さんのマクロは
あとで検証してみます。

>>160
ピボットテーブルをつくる手間を掛けるなら、マクロで一括と・・・

>>164
2000だと辛いですね。2003で作ったマクロが動かないこともありますし。
いずれにしても、今回のはピボットテーブルでは実現が困難のようなので
マクロでやります。

みなさん、ありがとうございました。

168 :名無しさん@そうだ選挙にいこう:2009/06/14(日) 01:08:55
Exel2000はもうすぐサポートが切れるんじゃなかったか?

169 :名無しさん@そうだ選挙にいこう:2009/06/14(日) 01:24:47
>>168
まあこれ以上>>89の心配しても仕方がない。
また新しいレポート作らないといけなくなった時に泣きついてくる。
きっと。

170 :名無しさん@そうだ選挙にいこう:2009/06/14(日) 01:25:31
【1 OSの種類         .】 WindowsXP/VISTA
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可(できればVBAなしのほうが助かりますが、この機に勉強する気もあります)
【5 検索キーワード     】 EXCEL 並び替え 合計

相談させてください。
EXCEL初心者なのですが、仕事で作らなければいけない情報があって困ってます。

たとえば

A列  B列  
人名 経費 
山田 1200
鈴木 3000
佐藤 2400
鈴木 1000
佐藤 8000

というエクセルデータがあったとして
佐藤 10400
鈴木 4000
山田 1200

というように、数字を合計させて、かつ、多い順に並べて表示させたいのです。

どのような仕組みにすればできるでしょうか?
教えていただけると幸いです、宜しくお願いします。

171 :名無しさん@そうだ選挙にいこう:2009/06/14(日) 01:40:56
>>170
話題沸騰のピボットテーブル。
リストのどこかを選択→データ→ピボットテーブルとピボットグラフレポート→
範囲がちゃんと選択されてるか確認→次へ→レイアウト→人名を行にドラッグ→
経費をデータにドラッグ→OK→完了
ピボットテーブルができるので計列のデータのどこか選択して降順で並び替え

172 :名無しさん@そうだ選挙にいこう:2009/06/14(日) 01:46:20
人名順に並び替えしてデータ(D)→集計(B)で集計させてから経費列を降順というのも。

173 :名無しさん@そうだ選挙にいこう:2009/06/14(日) 02:21:32
人数がそんなに多くなければsumif使って集計すれば?
課内の交通費清算表なんかはこうやってるな。
あと、多い順にするには最後にソートする。

174 :名無しさん@そうだ選挙にいこう:2009/06/14(日) 04:02:20
そこは今このスレで話題のVBAでだな

175 :名無しさん@そうだ選挙にいこう:2009/06/14(日) 07:37:31
>>164,>>167
Excel2000は8000ちょっとだよ。
だから俺は2000使ってた頃、ピボットテーブルつかうのはお子ちゃまだと思ってた。
2002からぐっと増えたから2000からは絶対に乗り換えた方がいいね。

あとピボットテーブルは一度作っておけば、範囲の変更(名前定義使えば不要だけど)と更新と
場合によっては集計方法の変更くらいをマクロで操作すればいいから、VBAだけでやりたいってのは言い訳にしかすぎない。
今回は30000行にたいしてユニークなアイテム数がどのくらいあるか知らんが、せいぜい数百種類なら絶対ピボットテーブル
使った方がいいな。

176 :89 ◆2LLK9dXXUc :2009/06/14(日) 21:55:55
>>168 >>175
会社のPCは4年償却なんですが、このご時世で買い換えてもらうこともできず
当分はOffice2000スタンダードのままです。

それから、集計にピボットテーブルは使っています。
89に挙げたSheet"DATA"は、CSVを一旦TXTにして文字列で開いてから
列を選んで抽出したものなので、最初からあのデータで、なおかつ
集計だけで良いならピボットでやってたかもしれません。
結果的には、件数の問題もあってダメなようですが。

売れ筋商品をピボットでという話もありましたが、「売れ筋商品」は
「売り上げ上位商品」だけを集計すれば済む問題ではありません。
例えば車なら、5月の売り上げトップ3はプリウス、フィット、インサイトですが、
売れ筋商品となると「燃費が良い車」に該当するものを抽出するわけです。
ピボットテーブルで、どのように抽出するのか考えたこともありませんが、
Excelとは関係ないので、これ以上書くのはやめます。

あ、>>169さん。
ご察しのとおり、また泣き付いてくるでしょうから、その際はよろしくお願いします。

177 :名無しさん@そうだ選挙にいこう:2009/06/14(日) 22:05:48
>>179
売れ筋商品をどう定義するかというだけの話だ。
>ピボットテーブルで、どのように抽出するのか考えたこともありませんが、
結局考えてないのだよ。

178 :名無しさん@そうだ選挙にいこう:2009/06/14(日) 22:07:16
>>176
具体的にアイテム数どのくらいあるの?
フィルタオプションの「重複するレコードは無視する」で何行のでーたになる?

179 :名無しさん@そうだ選挙にいこう:2009/06/14(日) 22:21:53
ピボット厨は身の回りの狭い世界しか知らずに
自分のやり方で世の中のあらゆる事が解決出来ると思ってるんだろうなあ(笑)

180 :名無しさん@そうだ選挙にいこう:2009/06/14(日) 22:47:39
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 思いつかず

目標:資格試験に受かりたいです。

よって、目標勉強時間の設定(300時間)をしました

盛り込みたい機能
1,本日〜試験日までの残日数を表示
2,一日何時間勉強すれば目標時間に届くか計算
3,その日の勉強時間を打ち込めば自動的に
明日からの平均勉強時間を算出

その他:勉強時間は分単位で入力、平均必要勉強時間は分単位で出力したいです。

お手数ですが、よろしくお願い致します。

181 :名無しさん@そうだ選挙にいこう:2009/06/14(日) 22:51:43
>>179はさぞVBAの達人なんだろうね。
達人のつもりの人だったかw

182 :名無しさん@そうだ選挙にいこう:2009/06/14(日) 22:51:59
getpvotdata関数とかまで使いこなせれば、ユーザーにもわかりやすい
シート設計できるはずだけれど、他人が作ったブックでそこまで
気の利いたのみたことがない。
ピボット厨が市民権得られないのはそこいら辺が原因では?


俺もたまにはピボット使うけど他人も使えるフォーマット作るのは骨が折れるよね。
ピボ厨さんなら簡単なんだろうけど。

183 :名無しさん@そうだ選挙にいこう:2009/06/14(日) 22:59:01
>>182
他人の心配する前に自分の欲しいレポートすら得られないことを心配したほうがいい。


184 :名無しさん@そうだ選挙にいこう:2009/06/14(日) 23:02:52
俺はどちらかと言うとピボット厨であり
ピボットをもっと普及させたいと思っているんだが
こういう粘着質の傲慢野郎がいるおかげで困るんだよね・・・

185 :名無しさん@そうだ選挙にいこう:2009/06/14(日) 23:03:47
結局>>89をピボットテーブルで出来る人、このスレに何人いるんだ?

186 :名無しさん@そうだ選挙にいこう:2009/06/14(日) 23:08:30
>>184
ピボットがわからないやつってバカにしたくならないか?


187 :名無しさん@そうだ選挙にいこう:2009/06/14(日) 23:14:46
>>180
ttp://www1.axfc.net/uploader/File/so/25250.xls
説明がめんどいので

俺はVBA厨だが>>184に少し同情するよ

188 :名無しさん@そうだ選挙にいこう:2009/06/14(日) 23:16:34
>>180
残りの日数はDATEDIF関数でも計算できるし、もっと単純にシリアル値を引き算してINTを取るだけでもいい。
あとは残りの時間を割り算するだけ。

189 :名無しさん@そうだ選挙にいこう:2009/06/14(日) 23:18:56
>>180
電話から回答なので間違えてるかも。
言われた条件だけ満たしたつもり


> 盛り込みたい機能
> 1,本日〜試験日までの残日数を表示
A1に「=試験日を入れたセル-TODAY()」
↑表示形式は「"あと"0"日"」

> 2,一日何時間勉強すれば目標時間に届くか計算
B1に「=("300:00:00"-勉強済み時間を入れたセル)/A1」
↑表示形式は「"一日"mm"分"」
> 3,その日の勉強時間を打ち込めば自動的に
> 明日からの平均勉強時間を算出
C1に「=("300:00:00"-勉強済み時間を入れたセル)-Time(0,その日の勉強時間(分)を打ち込んだセル,0)/(A1-1)」
↑表示形式は「"明日から一日"mm"分"」

190 :189:2009/06/14(日) 23:23:37
表示形式の「mm」は「[mm]」だな失礼。

191 :189:2009/06/14(日) 23:32:37
よく見たら()の場所も違う。。。中途半端に回答してすまんかった。。。

192 :名無しさん@そうだ選挙にいこう:2009/06/14(日) 23:44:32
Excel2003のVBAで解読できない文があります。

With Worksheets(2)
  If .AutoFilter is Nothing Then .AutoFilter.Range.AutoFilter

「二番目のワークシートにフィルタが無い場合」
まで分かるんですが、その後の文の意味が分かりません。
どの様に解釈すればいいのでしょうか。

193 :180:2009/06/14(日) 23:51:10
>>187-191
皆様
ご回答、ありがとうございました。

187氏に作成して頂いたファイルを元に
日付等を調整し、希望していた機能が不足無く手に入りました。

これで試験だけに集中できます。
感無量です・・・、重ね重ねありがとうございました!

それでは、失礼致します。

194 :名無しさん@そうだ選挙にいこう:2009/06/15(月) 00:11:11
>>177
ちょっと興味があるので教えてほしいんだが、ピボットテーブルで
売れ筋商品をどう定義するんだ?

195 :名無しさん@そうだ選挙にいこう:2009/06/15(月) 00:17:36
>>194
あほか?
売れ筋商品が何かを定義しろよ。
話はそれからだ。

196 :名無しさん@そうだ選挙にいこう:2009/06/15(月) 00:22:54
受注が何週間継続しているとか
出荷数が何万個以上とか
数字で決めることができればなんだって可能

197 :名無しさん@そうだ選挙にいこう:2009/06/15(月) 00:34:04
遅い時間にすみません、どうか助けてください。
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 少しなら
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 エクセル 1つのセル 改行 左詰め 右詰め

内容して、A1とB1の内容を&を使ってC1に結合させて表示しています。
A1とB1の間にCHAR(10)で改行させているのですが、その一段目を左詰めに、二段目を右詰めにしたいのですが可能でしょうか。
会社でシステムの縛りがあり、エクセル2000しか使用できません。
どうかよろしくお願いいたします。

198 :名無しさん@そうだ選挙にいこう:2009/06/15(月) 01:01:40
先生!
ピボット厨が必死なのは何故ですか?

199 :名無しさん@そうだ選挙にいこう:2009/06/15(月) 01:02:03
>>192
フィルタがない場合、じゃなくてフィルタで抽出されたデータがない場合、じゃね?
その時はフィルタを解除する、と。


>>197
無理な気がする。
フォーマットを改善するしかなくはないかねー

200 :名無しさん@そうだ選挙にいこう:2009/06/15(月) 01:08:57
>>198
例えば>>143の問題なんかはピボットテーブルでは解決できない。
VBA厨が回答してやったらどうなんだ?

201 :名無しさん@そうだ選挙にいこう:2009/06/15(月) 01:11:40
>>197
試してみたらWordの表なら可能っぽいね。
なにごとにも適材適所ってのがあってねー
どうしてもエクセルでってならWordの表をExcelに張り付けるとか

202 :名無しさん@そうだ選挙にいこう:2009/06/15(月) 01:16:04
>>197
C1の幅の文字数をみて空白を入れるという強引方法ですが

=A1 & " " & CHAR(10) & REPT(" ", CELL("width", C1) - LEN(B1)) & B1

ただし、フォントはプロポーショナルフォントだとうまくいかないこと
C1の幅が丸められるためか、C1の幅を整数にしないとうまくいかないようです。

203 :名無しさん@そうだ選挙にいこう:2009/06/15(月) 01:18:01
>>202
あと、漢字はうまくいきません。
かなり微妙な位置合わせですw

204 :名無しさん@そうだ選挙にいこう:2009/06/15(月) 01:56:54
こんなんじゃダメなの?
ttp://windyakin.if.land.to/src/up38_1279.png

205 :名無しさん@そうだ選挙にいこう:2009/06/15(月) 02:03:09
>>199-204
こんな遅い時間に皆さんありがとうございました。
やはりWordの表を貼り付ける以外、方法がないようですね;

199さんがおっしゃるように、フォーマットの改善を試みてみます。

本当にありがとうございました。

206 :名無しさん@そうだ選挙にいこう:2009/06/15(月) 09:27:55
【1 OSの種類         .】 WindowsVista
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 多少
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Excel グラフ 表示形式

すみません、お願いします

折れ線グラフで縦軸に「1,2,3」のような数字が入るのですが、
軸に表示する文言を、1→低、2→中、3→高、のように変換できないでしょうか。
中のデータは数字だけど、グラフで表示するのは文字みたいにしたいです。

表示形式に関数を適用してできると思ったのですが、
やり方が悪いのかうまくいきません。
同様なことを実現できるなら、ほかのやり方でもかまいません。


207 :名無しさん@そうだ選挙にいこう:2009/06/15(月) 10:02:00
>>206
2007で3パターンだったら表示形式でいけんじゃねーかな?
[<2]低;[<3]中;高
とかで

208 :名無しさん@そうだ選挙にいこう:2009/06/15(月) 10:14:58
>>207
できました!

ベタですが「[=1]低;〜」とやりました。

表示形式ってこんなこともできるんですね。
買った本には応用的なことはほとんど書いてなくて。
ヘルプを探して勉強します。

ありがとうございました!!!

209 :名無しさん@そうだ選挙にいこう:2009/06/15(月) 10:16:45
数値B列から数値C列を引いた数値D列を作りました
このD列から数式を抜いてただの文字列か標準にしたいのですが、どうすればいいのでしょうか

210 :名無しさん@そうだ選挙にいこう:2009/06/15(月) 11:06:02
>>209
形式を選択して貼り付け→値

211 :名無しさん@そうだ選挙にいこう:2009/06/15(月) 12:46:35
>>210
できました!ありがとうございます!
なるほど・・・新しく貼り付けるのか・・・エクセルの作法は独特ですね

212 :名無しさん@そうだ選挙にいこう:2009/06/15(月) 16:59:55
Excle2000のVBAで、統計関数(AverageとかVarとか)を呼び出すと、
『WorksheetFunctionクラスの Average プロパティを取得できません。』
のエラーになります。

Application.WorksheetFunction.XXXXXXのように書いてます。
途中まで書いて、リストから選択してるのでタイプミスじゃないと思います。

その関数をセルに直接書くと動作します。
何が原因でしょうか? よろしくお願いします。



213 :名無しさん@そうだ選挙にいこう:2009/06/15(月) 17:12:17
>>212
エラーの出た行をそのままコピペしてみて

214 :名無しさん@そうだ選挙にいこう:2009/06/15(月) 18:14:02
>>97
俺もそれ派 便利機能はあまり使えない

215 :名無しさん@そうだ選挙にいこう:2009/06/15(月) 18:28:59
>>147
途中まで作ったのUPしてみ
俺は挟み込み方で作るな


216 :名無しさん@そうだ選挙にいこう:2009/06/15(月) 19:04:00
>>147
ソルバー使うんじゃないの?
ソルバーの使い方知らないけど、二次関数とか解けるってどこかで見たことがある

217 :名無しさん@そうだ選挙にいこう:2009/06/15(月) 20:42:00
selectせずに、セルの位置を変えるにはどうすればいいの?

218 :147:2009/06/15(月) 22:17:31
>>215さん 現在この状態です。
ttp://www1.axfc.net/uploader/File/so/25324
>>144さんのアドバイスから歩留が最大になる様な計算をしたい思っているのですが
関数では限界なのか前に進みません…
>>216さん ソルバーもググってみましたが、よく使い方がわかりませんでした。
ただそれほど計算式は複雑では無いような気もします。

219 :名無しさん@そうだ選挙にいこう:2009/06/15(月) 22:21:39
>>218
VBA使った方が楽だと思うけどな

220 :名無しさん@そうだ選挙にいこう:2009/06/15(月) 22:27:14
あまり深く考えて言うわけじゃないが、
一度に計算しようとしないで、場合分けとかして
何ステップかに渡って計算させた方がいいんじゃないのかな

221 :名無しさん@そうだ選挙にいこう:2009/06/15(月) 22:35:46
>>218
俺も板取のVBAも持ってる 今改造して渡そうと思ってけどブランクが空きすぎて基本構文の方がやばい
明日つくります。
以下作りかけ

Sub it()
End Sub


Function ITA(ITA As Double) As Double
Dim A As Double
Dim B As Double
Dim C As Double
Dim H As Double
Dim X As Double
Dim Y As Double
Dim Xa As Double
Dim Ya As Double
A = 100
B = 100
Do
C = A - Xa
H
If (H >= 0) Then A = C
If (H < 0) Then B = C
If (H < 0) Then H = C
If (H < 0.000000000001) Then Exit Do
Loop

End Function

222 :名無しさん@そうだ選挙にいこう:2009/06/15(月) 22:58:52
ピボット厨ってVBAが使えないんだろ?

223 :名無しさん@そうだ選挙にいこう:2009/06/15(月) 23:00:40
>>221
何がやりたいんだ?

224 :名無しさん@そうだ選挙にいこう:2009/06/15(月) 23:10:59
>>222
VBA使えるお前が>>147に回答しろよ。
そんなに難しくないだろ?

225 :名無しさん@そうだ選挙にいこう:2009/06/15(月) 23:18:40
板取計算は難しいよ
特に5*5の中で2*3を4枚とる、という計算が難しい
後は7*7で2*3.を8枚とか
更にそれらを組み合わせるとなると・・


226 :名無しさん@そうだ選挙にいこう:2009/06/15(月) 23:58:29
>>225
IfとかForのレベルで考えているからだ。
VBAしか使っていないと発想が貧困になる。

227 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 00:21:51
各列にフィルタをかけ、例えば、A、B、C列のどれかの値が1だった表示、
全て空白のものだけ非表示、というふうに絞る方法はあるでしょうか?

228 :147:2009/06/16(火) 00:27:51
>>225さん
確かに入れ子の取り方だと計算式はかなり難しいです。
それでは昇降盤で切れる最適取数が知りたいという質問であれば計算できませんか?
実際用途も材料を昇降盤で切るときに取数が計算できればと思い質問しました。
>>226さん
入れ子の板取の方法もあれば、是非教えていただきたく
印刷屋さん等には重宝されるのではないでしょうか?

229 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 00:39:26
>>227
フィルタオプションでできると思う。
(オートフィルタとは別ね)

230 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 00:41:09
>>228
ここExcelスレなんで昇降盤とか入れ子とか
あまり一般的じゃない用語使う場合は多少の解説が欲しいな
板取りってのは何となく分かるけどさ

231 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 06:25:20
>>230
昇降盤は知らないが入れ子というのはExcelでは普通に使う。
2007ではネストにひっかかった時のエラーメッセージでも出てくるし。

232 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 06:27:00
×ネスト
○ネスト制限

233 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 07:52:46
板取の際の入れ子って意味じゃね
昔倉庫でバイトしてたときは回す、とか呼んでたな

234 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 09:57:18
汎用性の高いものは小手先のプログラムでできるようなものじゃない。
状況が限定されれば簡単になるけど、それには情報が少なすぎる。
材料も部品も長方形で、回転は90度単位で、部品のサイズがすべて同じで、
こんなふうに刃物が途中で止まるような切り方が許されないってなら
だいぶ簡単になるんだが。
一一二
三捨二
三四四

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

A1とB1の数値が共に1分おきに更新されます。
A1=0のときのB1の値をC1に代入して、そのまま保持させます。
次に再びA1=0になると再び同じことをくり返します。

このようなことを行いたいのですが、数式では困難に思いました。
VBAでよろしくお願いします。

236 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 11:08:26
>>235
「1分おきに更新されます」ってのは、誰がどうやって更新すんの?
この部分もVBAで作りたいってこと?

237 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 11:20:34
>>235
まるで課題の問題文みたいだね

238 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 11:20:43
>>235
1分間隔とか関係なしに、A1に0が入った瞬間にB1をC1にコピーするだけ

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target = Range("A1") Then
    If Range("A1").Value = 0 Then
      Range("C1") = Range("B1").Value
    End If
  End If
End Sub

239 :235:2009/06/16(火) 11:29:16
>「1分おきに更新されます」ってのは、誰がどうやって更新すんの?
機器からのデータをEXCELで受けています。

>238さんどうもありがとうございました。

240 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 11:49:52
>>239
>>238のプログラムだと、A1が書き換わった瞬間にデータをコピーするから、
受け取ったデータをA1→B1の順にセットするようなプログラムの下では
うまく動かないよ。
人間の目にはA1とB1に同時にデータが入ったように見えるけど、
実際はA1が書き換わる→B1がC1にコピーされる→B1に新しいデータがセットされる
って順に動くから、1つ古いデータがコピーされる。

241 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 12:11:54
LARGE、SMALLを使って、配列内の上から2番目と下から2番目を取り出そうとしています。
これらの関数は、同じ値のトップが複数居ると、2番目もトップも同じ値を返してきます。

重複を避けたいのですが、何か関数はありますか?
または、配列から重複を取り除く関数はあるのでしょうか?

調べた範囲だと、ソートして重複を削除する関数を自分で作るか、
セルに書き出して、AdvancedFilter Action:=xlFilterInPlace, Unique:=Trueを使うかの
2通りしか分かりませんでした。



242 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 12:22:18
>>241
重複を除いた順位を求めるのは意外にめんどくさい。
とりあえず、一発で求める関数はない。
参考↓
ttp://www.geocities.jp/chiquilin_site/data/060314_integrated_list.html

243 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 12:27:11
RANK()ってしってる?

244 :241:2009/06/16(火) 12:58:19
>>242, >>243
有難う御座いました。


245 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 12:58:27
RANK()は一位が2つあると2位がなくなって次は3位になる

246 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 13:17:30
作業列に=IF(MAX($A$1:$A$8)=A1,MIN($A$1:$A$8),A1)としてそれの最大をとるぐらいか


247 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 13:29:28
ピボットしてindexで取ってくればいいんだよ

248 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 13:47:27
大体重複を除いた順位ってどんなとき必要なの?
1位が二人いれば次は3位なのが当たり前と思うが。
1位の二人を何らかの基準で1位と2位に分けるのは分るが、本来3位のやつが2位ってのはおかしい。
同じ値のトップが複数居ると、2番目もトップも同じ値を返してくるのはごく当たり前だと思うが。



249 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 14:14:42
普通に上から3つの値を取りたかったら重複邪魔じゃん。馬鹿すぎないかさすがに?

250 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 14:22:50
「一位が二人」とか書いちゃってるのをみると、
スポーツとか入学試験とか、人間の順位を決めることしか頭にないんだろうな。

251 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 14:26:45
【1 OSの種類         .】 Windows XP Professional
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 昨日はじめてさわりました
【4 VBAでの回答の可否】 可
【5 検索キーワード     】「空白」「詰め」「Excel」「VBA」

質問です。
Sheet1にのAには会費、雑費、交通費と3種類のジャンルがあり、B列にはその金額の数値がはいります。
それらの会費であれば別シート(会費シート)のA列に会費と入り、B列にその金額が複写されていく。いうものを作りたいのですが、
 A  B
会費 1000
会費 2000
雑費 500
会費 3000

となった場合、会費シートには1つ空白行ができてしまいます。
オートシェイプや、IF文、ジャンプDel等々あるのですが、そのぶん行が削除されてしまったりと、
表がくずれてしまいめちゃくちゃになってしまいます。
そこで空白が合った場合、詰めていってくれるコードなどおしえてもらえないでしょうか?
にたような質問コーナーなどは沢山ありましたが、VBAをはじめてさわった自分には応用できそうにありません。
どうかよろしくおねがいします。

252 :235:2009/06/16(火) 14:31:03
>240
どうすればいいでしょうか…

253 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 14:54:31
>>252
機器からデータを受け取るプログラムが、
必ずA1→B1の順にデータを書き込むとか、ルールが厳密に決まっていればいいんだけど。
あるいは配列を使って2つのセルを同時に書き換えてるとか、
そういう仕様になってない限り、別のプログラムでなんとかするのはかなり難しいと思う。

どういう順番で調べても、タイミングによっては意図しない値がコピーされる可能性がある。

一つだけ方法があるとすれば、例えば0.1秒間隔のタイマーで2つのセルを監視して、
2回続けて内容が同じならデータの書き込みが完了したと見なす、みたいな方法かな。
少しタイムラグが発生するけど。

254 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 15:00:06
>>251
項目の分類や集計と体裁を整える作業は分けて考えるようにしなさい。
集計にオートシェイプは必要ありません。

見栄えよく飾り付けて印刷したい場合はワードにエクセルの表を貼り付ける
方法をおすすめします。

255 :235:2009/06/16(火) 15:08:00
>253
そうですか、どうもありがとうございました。

256 :147:2009/06/16(火) 15:16:05
説明不足ですみません
私がしたいの>>234 さんが説明されている様に材料から同じサイズの部品がいくつ取れるかという計算がしたいです

昇降盤は切る際に途中で止まらない機械ですので5×5から2×3は3つしかとれません(この計算方法が知りたいです。)
5×5から2×3を4つ取るのが入れ子の取り方だと思っています。

257 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 15:30:07
>>256
それなら、
(1) 材料をそのまま使うか90度回すか
(2) 幅いくつで切るか(短辺と長辺の最大公約数の倍数の間隔で)
(3) できあがった2つの破片に対して再帰で計算
という手順で計算できる。

部品の数が多いと幾何級数的に計算時間が増えちゃうけど、
最近のパソコンは速いし、材料がそれほど大きくなければ
一晩ぐらいほっとけば答えは出るんじゃないかな。

258 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 15:34:59
>251
その処理はひんぱんに行うものでしょうか? 単にデータ件数が多いだけでは?
マクロを使わなくても、オートフィルタで会費、雑費、交通費の3回に分けて絞り込んだ結果をコピーして、
それぞれのシートに貼り付けるだけではいけませんか?

259 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 15:39:09
>>251
Sub a()
Dim kaihi, zapi, kou
Dim gyo
gyo = Sheets("sheet1").Range("a65536").End(xlUp).Row
For i = 1 To gyo
Select Case Sheets("sheet1").Cells(i, 1).Value
Case "会費"
kaihi = kaihi + 1
Sheets("会費").Cells(kaihi, 1) = Sheets("sheet1").Cells(i, 2).Value
Case "雑費"
zapi = zapi + 1
Sheets("雑費").Cells(zapi, 1) = Sheets("sheet1").Cells(i, 2).Value
Case "交通費"
kou = kou + 1
Sheets("交通費").Cells(kou, 1) = Sheets("sheet1").Cells(i, 2).Value
End Select
Next
End Sub

そのシートがsheet1以外の名前の時は、sheet1というシート名に変えるか
マクロの記述を変更してください。範囲選択して置換すれば一発です

260 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 15:44:19
こんな感じでいいのかな。誰か検証して

(1) 部品の短辺と長辺の最大公約数を求める
再帰ループ開始
(2) 材料の面積が部品の面積より小さかったらループから抜ける
(3) 材料の短辺が部品の短辺より短かったらループから抜ける
(4) 材料の長辺が部品の長辺より短かったらループから抜ける
(5) 材料の面積が部品の面積の2倍未満なら部品カウンタに1を足してループから抜ける
(6) 分岐…材料をそのまま使う / 90度回す (双方試す)
(7) ループ…切断位置を決める (初期値は部品の短辺、終了値は材料の幅の1/2、間隔は最初に求めた最大公約数)
(8) 2つの破片に対して再帰ループ

261 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 16:00:37
>>249
100 100 90 85 80
上から三つとるなら100 100 90をとるのが当たり前だろ?
100 90 85を取りたいときってどういうとき?

262 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 16:06:54
>>250
1位ってのは1番目に置き換えろよ。
お前スポーツも駄目、入試も不合格ばっかだったんだろ?

263 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 16:08:03
なんで意固地になってんのこの人
めんどくさw

264 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 16:09:01
俺はテストが2位でした。
ちなみに俺以外は全員満点でした。

265 :251:2009/06/16(火) 17:06:17
251です。
返信してくださった方々ありがとうございます。
また>>259の方マクロが未だに良く分かっていない自分にはコードをわざわざ
書いてくださって非常にたすかりました。
再度感謝です。
またなにあればよろしくおねがいします。

266 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 17:22:48
>>264
限界集落の分校で生徒が2人しかいなかったんだね

267 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 17:46:20
>>261
「100までの数をいっせいに言って、2番目に大きい数(重複除く)を言った人が勝ち」
みたいなゲームとか。
仕事上でどういう場面で使うのかちょっと思いつかないが、
別に必死に食らい付く様な事でもなかろう。

268 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 18:14:27
>>251
「フィルタオプションの設定」でググるともっと簡単な方法がすぐ見つかるよ

269 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 18:30:04
>>241
要するに本来の順位が変わらない範囲で差をつければいいわけだから
端数を足してからRANKで順位づけすればいい
100 100 90 85 80なら
100.01 100.02 90.03 85.04 80.05

これで解決

270 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 18:46:53
え?

271 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 18:59:47
バカと粘着しかいねーのかwすげーなここはw

272 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 19:07:50
>>147
そういうのはシェアウェアが出ているくらい”銭”になる計算式(ソフト)になりますので
そういうのを他人に頼って創るのはどうかと。
仮にそれ相応のレスが有ったとしてキミがそれをシェアウェア(金儲け)として
使用しないと断言できるのだろうか?
上記のそれ相応のレスした人が不憫だと思うのだが。

273 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 19:25:06
>>272
いや回答者は好き勝手答えてるだけだから
そんなの別にどうでもいいよ

274 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 19:46:00
>>267
無理やりでも考え付いたお前が優勝だと思う
>>241の場面が全く浮かんでこなかったぜ


275 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 19:52:53
>>269
意味を取り違えてるらしいが、>>247のピボットですでに解決してるんだよ。
解決したうえで、どういう場面でそういう重複しない2番目の数値が必要なのか聞いてる人が一人いるわけだ。
世の中には>>248みたいなkとが分らない人はたしかにいることはいるが、まぁなんか訳があるんだろう。
おれもちょっと実務では思いつかないけどな。
興味がわるから>>241に聞いてみたい気はするが。

276 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 19:58:26
ボーリング大会とかでブービー賞(ビリから2番目)を決めたい時

277 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 20:17:10
1位 1位
3位
4位 4位 4位
7位
みたいに同順位は横並びで、縦方向は行間を詰めずに表示したい
なんて場合に使い道あるかな。

278 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 20:27:17
スケートの審査点で最高点と最低点を除外して合計するときの前処理段階とか・・・

>>247のピボットが、元データの変更にも対応しやすい方法だと思うよ

279 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 20:31:03
ピボット絶賛中に悪いが
>>277みたいな表はピボットじゃむりだぞ

280 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 20:38:00
>>278
昔はそうだったが今のスケートの点数はそんな風にださないんじゃね?
抽選で二人除外するんじゃなかったか?
ちなみに昔は韓国人審判の日本サゲはデフォだったもんな。

281 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 20:57:55
ランク系の関数の質問です。


りんご    120
みかん   100
いちご    150
トマト     90
なす      70
レタス  #VALUE!

1位   (いちご)
2位   (りんご)
3位   (みかん)


とあってこれでランクを関数で自動的に抽出しようとすると、
#VALUE!があってランク付けができません。( )内としてランク付けを
したいのですが、どうしたらできますでしょうか?宜しくお願い致します。

282 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 21:02:29
#VALUE!を消す

283 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 21:07:33
>>282
すいません、あるもとのとしてお願いします。^^;
#VALUE!か#N/Aにしろエラー系を含む形です。m(_ _)m

284 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 21:09:06
ISERRORでエラー値だったら""にできるのに

285 :281:2009/06/16(火) 21:17:18
セルちょっと変ですね。訂正します。

りんご    120     (2)
みかん   100      (3)
いちご    150      (1)
トマト     90      (4)
なす      70      (5)
レタス  #VALUE!     (6?)

>>284
ありがとございます。ちょっと色々と試してみます!

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

1組8列のデータがあり、それぞれ一番左の値を比較して合致してるか調べるとき、
Q列に =EXACT(A2,I2) を入れて判断しています。
しかし、1行でも間違ってたら、それ以降は全てFalseを返してしまいます。
Trueとなるように行を調整(行の挿入で位置合わせ)したいのですが
どのようにすればいいでしょうか?

287 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 22:28:03
Q2 =A2=OFFSET(A2,0,8)

288 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 23:18:47
>>277
おおっ、それ俺がvba使えるようになる前はやってたわー懐かしい。
確か最終的に元データをユニークなデータにしてから並べる関数にした記憶がある。
今だったらそんな面倒なシート作りいやだなー。嫌いではないが。

289 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 23:24:19
かわいそうに

290 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 23:32:41
バカなのは構わないけど、それをなんとか認めないように必死なのは見てらんないなw
なんでも知ってる気分を邪魔されるのが我慢できないクソなんだろうけど

291 :名無しさん@そうだ選挙にいこう:2009/06/16(火) 23:34:41
>>289
どれに対するレスなのか分からんので意味が分からん。
雑談なら雑談スレへどうぞ

292 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 00:22:19
字間を詰めることはできますでしょうか?
超初心者な質問で申し訳ないですがよろしくお願いします

293 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 00:56:00
なんかさっぱりわからんけど>>290は病気じゃね?

294 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 00:56:35
>>292
多分できない
ってゆうか、Excelのデフォルトの字間は充分狭いと思うけど・・

広げるほうならセル配置を工夫すれば均等割り付けなどで

どっちにせよWordほどの融通はきかないよ

295 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 00:56:42
>>292
無理
字間を調節したいときはワードを使ってください。

296 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 01:04:17
>>294-295
ありがとうございましたっ!○┓ペコリ

297 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 01:04:20
>>289も病気か?

298 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 04:54:30
289=290
バカなのは構わないって自己紹介してるしw

299 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 08:36:46
>>296
おめーアホやな。

300 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 10:51:11
セルを一つ飛ばしで、2、4、6〜端っこまで、
とか指定して合計や平気を出したいんですが、
セルの指定はどう書けばよいのでしょう?

301 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 10:59:08
>>300
セルが連続してない場合は一発で求める関数がないので工夫する。
(例)A1からA6までの偶数行だけの合計
=SUMPRODUCT((MOD(ROW(A1:A6),2)=0)*(A1:A6))
平均は合計を個数で割る

また遅いって文句言われそうだけど

302 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 11:00:24
>>300
=SUM(A2,A4,A6,A8,A10……)

303 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 12:21:13
>>301
ちょい頑張ってみる!
>>302
1番はじまで入力したのを貼ってくれたら使うよ

304 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 12:36:20
集計したい横の列に1を入力しておいてSUMIFがいちばんかんたん

305 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 13:14:56
行列、共に隙間なく表になってるから無理だす

306 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 13:50:46
そこで配列数式でしょう

307 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 13:51:47
よし、VBAの出番だな

308 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 14:03:30
目的のセルに
=SUM(IF(MOD(ROW(A2:A10),2)=0,A2:A10,0))
と入力
CTRL+SHIFT+ENTER
平均はSUMをAVERAGEに変えるだけ。

309 :ism:2009/06/17(水) 15:03:42
すみません、Officeの方で回答得られなかったので、こちらで質問させてください。

Excel2007で右クリックで出る書式メニュー(右クリックメニューと少し離れて表示されるメニュー)
のカスタマイズって出来ますか?
このメニューの名前もわからなかったので、検索もできず・・・
もし名前ご存知でしたら、そちらでも結構です。

よろしくお願いいたします。

310 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 16:02:41
>>309
その小さいメニューはミニツールバーという。

「ミニツールバーはカスタマイズできません」
http://office.microsoft.com/ja-jp/excel/HA101736241041.aspx

まあ、ウィンドウにフックを仕掛ければできないことはないけど
難易度が高いのでおすすめしない。
あと、2007はXMLで記述されてるんで、直接ファイル書き換えで
意外となんとかなるかも。ならないかも。

311 :ism:2009/06/17(水) 17:05:10
> 310
即回答ありがとうございます!
カスタマイズできないってことでいきます。

312 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 17:18:07
オートフィルを使う場合セルの右下を左クリックで摘みますが、
キーの操作でその摘んだ状態にすることは出来ないでしょうか。
Excelのバージョンは2003と2007の両方でお願いします。

313 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 17:22:37
>>312
右下の黒いポッチの名前はフィルハンドルという。
キーボードでやりたい時はショートカットキーで
メニューバーのメニュー開いてオートフィル選ぶしかないです。
状況が限定されるならマクロ。

314 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 17:29:37
>>312
オートフィルとはちょっと違うけど
たとえばA1に入ってるものをずっと下にコピーするなら
A1を選択→Shift+↓で範囲選択→Ctrl+D
でA1の内容を下方向にコピー出来る。
右方向にコピーしたいならCtrl+R

315 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 17:31:59
データの入ってる範囲を選択するならShift+Ctrl+↓でもいける

316 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 17:35:15
>>305
うそつきは泥棒のはじまり。
仮に本当でも別シートに書けば無問題。

317 :312:2009/06/17(水) 17:37:27
>>313-314
上手い具合にやることは出来ないんですね。
参考になりました。ありがとうございます。

318 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 17:46:23
>>300
SUMPRODUCTなら
=SUMPRODUCT(MOD(ROW(A1:A6)+1,2),A1:A6)
これなら>>308同様文字列は無視してくれる。

319 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 18:15:06
文字列の任意の位置に任意の文字列を追加する関数などはありますか?
バージョンは2003です

320 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 18:16:42
>>319
そのものズバリの関数は無いが
LEFTやRIGHTやMID関数を組み合わせれば出来る。

321 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 18:59:47
>>320
できました。ありがとうございます。

322 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 19:50:02
>>319,>>321
またずいぶん物わかりのいい人だな。
A1の文字列の3文字目に"xyz"を挿入したければ
=REPLACE(A1,3,,"xyz")でok

323 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 20:08:19
へぇ

324 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 20:23:39
>>322
この方が式がスマートになりますね。
ありがとうございます。

325 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 20:59:43
INDEXとMATCH関数の質問です。

りんご 150
みかん 150
ばなな 200
いちご 120
ぶどう 300

1. ぶどう
2. ばなな
3. りんご
4. #N/A
5. いちご


上記のように関数で拾うと、事実上同列順位3位であるはずの「みかん」
が拾えません。別の関数等でも結構ですが、同列順位も表示させるには
どうしたらいいでしょうか?宜しくお願い致します。

326 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 21:00:48
【1 OSの種類         .】 Windows Vista
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 少し
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Excel ピボットグラフ 入力されない

おねがいします

Excelを使って毎日の売上を管理しています。
ピボッドグラフというのを使って、表とグラフを出すことにしたのですが、
売上がない日は項目としてあがってこなくて困っています。

グラフは縦軸に売上、横軸に日にち(1ヶ月分すべて)で、
商品ごとに棒グラフにしたいのですが、
売上がない日はつまって表示されてしまい、
月のどのあたりがダメなのかがわかりづらいのです。

売上がない日もグラフに出す方法はあるでしょうか。
売上がない日は、適当な商品に0円の売上データを入れようとも思ったのですが、
ゴミみたいなデータになりそうで躊躇してます。
日にちと日付を違うセルに分けてやってみたり、
なんだかわけがわからなくなりました。

横軸の日にちは31日固定でいいのですが、
何かいい方法があればご教授ください。

327 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 21:04:11
>>325
その問題はまさに>>269が当てはまるな

328 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 21:08:50
>>326
>>適当な商品に0円の売上データを入れようとも思ったのですが
基本的にそれでいいんじゃないの?
適当な商品じゃまずいから「売上無し」みたいな仮の商品を作って、その売り上げを0円とかに設定すればいい。

329 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 21:16:43
ちなみに、データに空白セルがあっても折れ線グラフがおかしくならない方法
ttp://www.cybozu.net/cpt/moug/item_00002.html


330 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 21:17:43
こんな方法もあった
ttp://www.relief.jp/itnote/archives/000855.php

331 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 21:28:19
269=325=327
うわー気持ち悪っ

332 :325:2009/06/17(水) 21:32:47
>>327
端数はないものとしてお願いしますm(_ _)m

333 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 21:34:40
>>331=248
お前はいつまで必死に粘着してるんだよw
世の中には自分の想定外の事が色々あるんだよ
自分の思慮の浅さを素直に認めろよw

334 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 21:35:56
index+matchで「順位」なんて言葉出ないし
こわー

335 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 21:36:51
>>332
元のデータは金額だから端数が無いってのは分かってるよ
元のデータに無理やり適当な少数を足して、同一順位の物が絶対出てこないようにすればいいだろって話

336 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 21:37:21
つか、うわ
書き込んでる間にまたやってる
病院いっておいでよ本当に

337 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 21:37:57
あ、金額と限らないか、よく分らんが個数とかか?

338 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 21:42:44
>>334
順位って言葉が気に入らないなら最初に使った>>242に言えよ

339 :325:2009/06/17(水) 21:51:33
>>335

基本的にセルに端数を打ち込むのは避けたいんですが、
やっぱり数式に「+0.0001」「+0.0002」とか打っていくしかないんですかね・・・?

340 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 21:55:06
ほんっと頭悪いな
ランダムでも連続でも日付でもダブらない端数ならいいんだよ
横の列につくって加算する式つくって順位づけすればいいだろうに

341 :327,335:2009/06/17(水) 21:59:26
ちなみにカルシウム不足でイライラしてる>>340は俺とは別人ですよ(^^;)

342 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 22:00:25
手書き用の見積書をエクセルファイルで再現する作業をしています
金額の欄が一桁ごとに縦棒で区切ってある仕様(例参照)なんですが
こんな感じの外見を維持しつつ、入力してある数字を一つのデータとして
認識させて(例の場合は1234567)、下部でsumを実行させることは可能でしょうか?

例)こんな感じ
________________________________________
│ │ │1│2│3│4│5│6│7│円
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

343 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 22:04:08
>>342
=VALUE(SUBSTITUTE(A1,"│",""))


344 :286:2009/06/17(水) 22:13:19
286ですが

345 :325:2009/06/17(水) 22:13:37
>>340-341
やっぱり加算用のセル(端数)を別途設けるしかなさそうですね・・・
ありがとうございました

346 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 22:15:11
実際には1セルに1ケタ入力されてるんじゃないの?
だったら
=1*1000000+2*100000+3*10000(以下略
または数値がA1:G1にあるとして
=(A1&B1以下略)+0

347 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 22:17:30
D:\Excel\files\ の中に、次のファイルがあります。
PS655M_CBX20090422_093329.CSV
PS655M_CBX20090525_135112.CSV
PS655M_CBX20090617_152657.CSV

B3セルに 05 と入れてボタンをクリックしたら、PS655M_CBX20090525_135112.CSVを
開きたいのですが、実行時エラー'1004' "D:\Excel\files\"が見つかりません 
とエラーになってしまいます。しかし、D:\Excel\files\は、実在します。
ググって、見よう見まねでマクロを書きましたが、それぞれの意味もよくわかってないので、
どこを直せばいいのかも分かりません。。。
教えて、優しい人。

Sub CSVを開く()
Dim DDrv, MONTH, FSO, CSV, FN

DDrv = "D:\Excel\files\"
MONTH = Range("B3").Value
Set FSO = CreateObject("Scripting.FileSystemObject")

For Each CSV In FSO.GetFolder(DDrv).Files
If Mid(CSV, 15, 2) = MONTH Then
FN = CSV
End If
Next CSV

Workbooks.Open Filename:=DDrv & FN

End Sub

348 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 22:23:01
>>343
すいません、ヘルプ見つつやってるんですが上手くできません(´;ω;`)

>>346
現状そういう風に(1セルに1ケタ)入力されてます
で、そうした文字列(金額)が10項目ほど縦に並んでいて
最下部にその合計(と消費税と消費税込み金額)が並んでます
ちなみに文字列の桁数は項目ごとに違います

これをなんとか数字を入力するだけで下部に合計の数字を出すことはできるでしょうか?

349 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 22:30:56
>>348
とりあえず1の位がZ列にあると仮定する
=MOD(SUM(Z1:Z10),10)
10の位は1つ左のY列
=MOD(SUM(Y1:Y10)+INT(SUM(Z1:Z10)/10),10)
みたいに、繰り上がりの計算を自力でやる。
式がどんどん長くなるから、個人的にはあまりおすすめしない。

作業列を用意するか、表示用シートと計算用シートを分けた方がいいと思う。

350 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 22:34:31
>>347
これでおk 

Sub CSVを開く()
Dim DDrv, MONTH, FSO, CSV, FN

DDrv = "D:\Excel\files\"
MONTH = Range("B3").Value
Set FSO = CreateObject("Scripting.FileSystemObject")

For Each CSV In FSO.GetFolder(DDrv).Files
If Mid(CSV, Len(DDrv) + 15, 2) = MONTH Then
FN = CSV
End If
Next CSV

Workbooks.Open Filename:=FN

End Sub

351 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 22:35:20
>>345
残念そうなのが引っかかる・・・
複雑な計算をさせる時に作業用の列を設けて
何ステップかを経て最終結果を求めるのはExcelでは普通にやる事。

なぜか質問者に作業列を設ける事を嫌がる人が多いんだよな。
画面に表示したくなければ非表示にする事も出来るわけだし、
いちいちそんな事気にしてたら仕事にならんよ。

352 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 22:35:50
>>331も病人らしいが>>333も何か勘違いしてるみたいね。
どっちも病人か。

353 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 22:36:19
>>348
なんで直接加算しようとするかなー?
>>346とかで、いったん隣の列あたりに通常の数値に戻して入れてから加算すればかんたんじゃん

354 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 22:40:08
>>349
なるほど、よく分かりました。
ありがとうございます○┓ペコリ

>>353
あーなるほど。
その方向でやってみます
ありがとうございました○┓ペコリ

355 :342:2009/06/17(水) 23:05:06
何度もスイマセン
文字列(金額)のとなりに非表示の計算用の列を作って
そこに>>346さんの教えてくれた形式で戻した数字を入れて
最下部でsumさせたんですけど、合計の文字列(金額)の
(表示させる印刷用の)部分も一桁ごとに別のセルになってます

計算用の非表示の列でsumさせて出た合計の数字を
その一桁ごとに仕切られた印刷用のセルに
一桁ずつ割り振って入力させることはできるますでしょうか?

めんどくさい質問で申し訳ありませんがよろしくお願いします<(_ _*)>

356 :347:2009/06/17(水) 23:08:51
>>350
おぉ!開けました。
ありがとうございます。

ついでに質問ですが、For Eachで探す場合は複数あっても
見つけた時点でループをやめるって、どこかのサイトで読みました。
だったら、Workbooks.Open Filename:=CSV でも良い気がするんですけど、
実行時エラー'1004'になってしまいます。
何で?

357 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 23:11:34
>>356
CSVをウォッチしてみればわかるけど、見つけてもループは終わらないから

358 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 23:16:17
>>355
文字列操作関数でもMODとINTの組み合わせでもどちらでもできる
A1に最大8桁の数値が入る場合、A2=RIGHT("0000000"&A1,8)
1桁目は=MID(A2,8,1)
2桁目は=MID(A2,7,1)
以下略

359 :347:2009/06/17(水) 23:18:52
>>357
そうなんですか、分りました。
ありがとうございます。

360 :342:2009/06/17(水) 23:44:57
>>358
合計額の桁数は毎回一定ではないのでmodとintを使ってやってみました
そしてほぼ上手くいったのですが、8桁(セル)で合計の欄を作った場合
合計の数字が7桁だったりすると、1桁目のセルに「0」が入ってしまいます

この「0」をなんとか表示しないようにする方法はないでしょうか?
何度も何度もスイマセンが、よろしくお願いいたします<(_ _*)>

361 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 23:46:45
>>358の"0000000"のかわりに" "でもおk

362 :名無しさん@そうだ選挙にいこう:2009/06/17(水) 23:49:23
あ 消えてる " "の間は半角スペース8個ね
てゆーかmodとintなら>>358の方法は使わないはずだな
オプションの表示でゼロサプレスするか、ifで0なら""に置き換えるとかすれば?

363 :342:2009/06/18(木) 00:14:59
>>362
すいません、一生懸命ヘルプ見ながら調べてたんですが
仕事の疲れから眠気が限界で頭がまともに働きません
明日時間を見つけてまたやってみます
色々教えてくださり本当にありがとうございました○┓ペコリ

364 :名無しさん@そうだ選挙にいこう:2009/06/18(木) 02:24:20
>>328-330
返事が遅くなってすみません。レスありがとうございます。

やぱりピボッドテーブルの機能では無理で、
データに何らかの工夫をしなければならないんですね。

グラフに関するテクニックありがとうございます。
それもつまづいたんですが、格闘のすえ解決しました。
ここで聞けばよかったかもです。

365 :名無しさん@そうだ選挙にいこう:2009/06/18(木) 03:35:37
【1 OSの種類         .】 Windows Vista
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 エクセル 関数 抽出 重複 無視


sheet1
  A   B
1 コード 金額
2 A001 \500
3 B001 \500
4 B002 \200
5 A001 \300
6 B002 \500

sheet2
  A   B
1 コード 金額
2 A001 \800
3 B001 \500
4 B002 \700

A列のコードをsheet2のようにまとめる関数を教えてください
B列のSUMIF関数での集計は自己解決してます

よろしくお願いします


366 :名無しさん@そうだ選挙にいこう:2009/06/18(木) 06:42:12
>>342
1セルに普通に入力し
適当な文字の大きさにし、
オートシェイプで、枠を重ねろ。
そうすれば普通に計算できる。

今からできるか確認してくる。

367 :名無しさん@そうだ選挙にいこう:2009/06/18(木) 06:49:49
できないことはないが、字間が不自由だな。

368 :名無しさん@そうだ選挙にいこう:2009/06/18(木) 07:33:30
>>365
重複しないリスト作ってSUMIFは馬鹿のやること。
どこかのDQNなら重複しないリストの作成をINDEXとSMALLとMATCHとROWを使った配列数式でやりそうだがw
フィルタオプション使うのも駄目。

ピボットテーブルが正解。
行フィールドにコード、値フィールドに金額を引っ張り、集計方法を合計にすりゃよい。
データが変わるたびに更新するだけだ。
データソースの範囲はあらかじめ広く取っておくか=Sheet1!$A$1:INDEX(Sheet1!$B:$B,COUNTA(Sheet1!$A:$A))を名前定義して使えばよい。
VBAが出来る人はVBAで取得してもいいけどな。

しかし馬鹿がわいてきそうだな。

369 :名無しさん@そうだ選挙にいこう:2009/06/18(木) 09:09:19
>>365

368が一番簡単で早い。
面倒なやり方すれば、コード順でソート→集計→
折りたたんで可視セルのみコピって貼り付け。

>>368

単純なピボットならいいが、行フィールドに複数項目入れると
小計とか一々出てきてダルいんだが、これは俺の使い方が悪い?
教えて頼む。

370 :名無しさん@そうだ選挙にいこう:2009/06/18(木) 09:39:53
>>369
項目の先頭を右クリックして設定で不要な部分を折り畳める

371 :名無しさん@そうだ選挙にいこう:2009/06/18(木) 09:54:19
右からn桁目を取り出す
=LEFT(RIGHT(" "&A1,n),1)
追加するスペースは1個だから桁数が増えてもこのま使える

コピペできるバージョン
=LEFT(RIGHT(" "&$A1,9-COLUMN()),1)

372 :名無しさん@そうだ選挙にいこう:2009/06/18(木) 10:03:57
すみません、計算して小数になったものを一桁で四捨五入して10円単位にしたいのですが、
どういう式を入れたらいいでしょうか?
554.16を550にする等
本を調べてみたけど、よくわかりません
お願いします、教えて下さい

373 :名無しさん@そうだ選挙にいこう:2009/06/18(木) 10:07:15
>>372
=ROUND(A1,-1)
2番目の数字が桁数。マイナスにすると小数点より左の何桁目という意味になる。

374 :名無しさん@そうだ選挙にいこう:2009/06/18(木) 10:52:09
>>373
もうほんとに助かりました
感謝、感激です!!
早速にレス頂き、本当に有り難うございます

375 :名無しさん@そうだ選挙にいこう:2009/06/18(木) 12:54:01
すみません、さっきはどうも有り難うございました
表を印刷すると、普通数値が印刷されるのですが、すべて数式を表示させて印刷したいのですが、
そういう事はできるのでしょうか
調べてみたけど、一部を表示させる方法しかわかりませんでした

376 :名無しさん@そうだ選挙にいこう:2009/06/18(木) 13:15:39
>>375
ツール → オプション → 数式にチェック

むしろ、一部だけ表示させる方法なんてあったっけ?

377 :名無しさん@そうだ選挙にいこう:2009/06/18(木) 13:56:49
できました
本当に有り難うございます
一部というか、そのマス目だけのが載ってたように思います
ほんとに助かりました  感謝です!

378 :名無しさん@そうだ選挙にいこう:2009/06/18(木) 17:15:59
>>376
'=A1+B1
みたいにすることじゃないかな

他には「=」を「'=」に置換すれば表示できるよ

379 :名無しさん@そうだ選挙にいこう:2009/06/18(木) 17:57:52
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 エクセル 文字列 並び替え


A 1
A 2,3,4
B 5
C 6,7

上記のように並んでいる文字列を下記のように並べ替えることは出来ますか?
:と;と,も必要です。。

A:1,2,3,4;
B:5;
C:6,7;

380 :名無しさん@そうだ選挙にいこう:2009/06/18(木) 18:06:58
>>379
それって1つのセルに「A 1」って入ってんの?
それとも「A」「2」「3」「4」て4つのセルに分かれてるの?

381 :名無しさん@そうだ選挙にいこう:2009/06/18(木) 20:22:20
Range("A1") = ""
Range("A1").ClearContents
Range("A1).Delete shift:=xlup

これらの使い分けを教えて。

382 :381:2009/06/18(木) 20:23:34
x Range("A1).Delete shift:=xlup
o Range("A1").Delete shift:=xlUp

383 :名無しさん@そうだ選挙にいこう:2009/06/18(木) 20:27:51
Range("A1") = ""

Range("A1").ClearContents
は同じ。
Range("A1).Delete shift:=xlup
は行削除、他のセルにも影響する

384 :381:2009/06/18(木) 20:55:06
>>383
同じなのね・・・

385 :名無しさん@そうだ選挙にいこう:2009/06/18(木) 20:56:58
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel20000

画面のチラツキを無くすのにApplication.ScreenUpdating を書いてますが、
CallとCallの切り替わりで無効になっているようです。
Callを使ってもチラツキを無くすにはどうすればいいですか?

Sub あ()
Application.ScreenUpdating = False
Call い
Call う
Call え
Call お
Application.ScreenUpdating = True
End sub
-----------------------------
Sub い()
Application.ScreenUpdating = False

Application.ScreenUpdating = True
End Sub
-----------------------------
Sub う()
Application.ScreenUpdating = False

Application.ScreenUpdating = True
End Sub

386 :名無しさん@そうだ選挙にいこう:2009/06/18(木) 22:24:23
い〜おのApplication.ScreenUpdating = True を消す

387 :名無しさん@そうだ選挙にいこう:2009/06/18(木) 22:29:42
>>380
左のアルファベットで1セル 右の数字郡で1セルです。
よろしくお願いします。

388 :名無しさん@そうだ選挙にいこう:2009/06/18(木) 22:52:01
>>379
C1=開始
D1=A1&":"&B1
C2=IF((A2<>A1)*(A2<>A3),"一行",IF((A2=A1)*(A2=A3),"継続",(IF(A2<>A3,"終了","開始"))))
D2=IF(C2="開始",A2&":"&B2,"")&IF(C2="継続",D1&","&B2,"")&IF(C2="終了",D1&","&B2&";","")&IF(C2="一行",A2&":"&B2&";","")
C2D2を選択して下にオートフィル
E1=IF(OR(C1="終了",C1="一行"),D1,"")
下にオートフィル
最後にE列で空白以外の条件でオートフィルタをかければ終わり


389 :名無しさん@そうだ選挙にいこう:2009/06/18(木) 22:53:07
一応言っておくと
C1=開始
とはC1セルの中身が「開始」って意味ね
数式でも同様

390 :名無しさん@そうだ選挙にいこう:2009/06/19(金) 00:22:33
シートの名前がPゴシック(?)で読みにくいので、MSゴシックとかの
等幅フォントに変えたいのですが出来ますか?


391 :名無しさん@そうだ選挙にいこう:2009/06/19(金) 00:55:53
OS::XP
Excel2000
VBA いいえ
VBA回答 いいえ
検索ワード excel 置き換え 付加

札幌営業所
盛岡営業所
東京営業所

などといったセルの先頭に[ 末尾に]をつけて
[]でかこみたいのですがやりかたがわかりません
所を所]に置き換えて末尾に]をつけることはできるのですが頭がばらばらで解決になりません・・・・

392 :名無しさん@そうだ選挙にいこう:2009/06/19(金) 01:06:27
>>391
たとえばA列にそれがあったらB列に式で
= "[" & A1 & "]"
と入れてそのままB列を使うか、B列をコピー>A列に値で貼り付けで上書きしちゃう


393 :名無しさん@そうだ選挙にいこう:2009/06/19(金) 01:07:08
>>391
="["&A1&"]"
ってやってから値コピー

394 :名無しさん@そうだ選挙にいこう:2009/06/19(金) 01:16:03
>>392-393
ありがとうございます
解決できそうです

395 :名無しさん@そうだ選挙にいこう:2009/06/19(金) 03:16:13
時間を下のように繰り返し入力していきたいのですがどのような式を使えばよろしいでしょうか。

00
01
.
.
.
23
00
01

indrectかな(´・ω・`)?

396 :名無しさん@そうだ選挙にいこう:2009/06/19(金) 03:20:35
2回繰り返してからオートフィル使ったら出来た・・・(´;ω;`)

397 :名無しさん@そうだ選挙にいこう:2009/06/19(金) 03:25:21
でも式で書くとどうやるんだろう。。


modだと 1234ってなるから01 02って出来ないよね(´・ω・`)

398 :名無しさん@そうだ選挙にいこう:2009/06/19(金) 05:35:40
式の場合、
A1=0,セルの書式設定→ユーザー定義を00にすると00で表示します。
A2 =A1+1
でA2をA24までコピペ
ちとめんどい.

A1=0,セルの書式設定→ユーザー定義を[hh]にすれば以降A24までオートフィル


どっちも23の次に00をもってくるならA1をコピペでどうぞ。



399 :名無しさん@そうだ選挙にいこう:2009/06/19(金) 07:02:47
>>398
できた!!
ありがとう!

400 :名無しさん@そうだ選挙にいこう:2009/06/19(金) 07:19:21
単に見た目だけ変更したい場合は、変更したい範囲を選んでから
セルの書式設定 − 表示形式 − ユーザー定義 とし、種類の欄に "["@"]" でOK。

401 :名無しさん@そうだ選挙にいこう:2009/06/19(金) 07:27:24
>>397
text関数、ROW、MODを組み合わせるとか
まぁユーザー書式と同じようなもんだがね

402 :名無しさん@そうだ選挙にいこう:2009/06/19(金) 09:07:33
>>370

ども

403 :名無しさん@そうだ選挙にいこう:2009/06/19(金) 10:14:45
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】エクセル 並び替え

エクセルで個人データの管理をしているのですが。
住所の並び替えで2003まで普通にできた事できなくなっております。
以前は、昇順で並び替えをした場合。

○○町30                  ○○町1000
○○町500                 ○○町30
○○町1000                 ○○町500

↑                     ↑
以前はこのように数字の          2007では○○町の次の数字の一桁目で並び替えされています。
小さい順から並び替えされていましたが。

セルの書式設定で、表示形式を文字に変えたりもしたのですが、2003の時のような
並び方にはなりませんでした。どのようにすれば、2003の時のように
並び替えをできるのか教えてください。


404 :名無しさん@そうだ選挙にいこう:2009/06/19(金) 10:35:07
そんな事ある?
2003でも普通は文字コードで並べ替えるんじゃなかった?
なんか別な列で並べ替えてたんじゃね?


405 :403:2009/06/19(金) 10:38:30
>>404
はい、私も、使い慣れないので別の列を並び替え他のかもしれないと思い
何度もやってみましたが、結果は上記の通りになってしまいます。


406 :名無しさん@そうだ選挙にいこう:2009/06/19(金) 10:58:28
>>405
2003も同じだと思うが?
文字列なら左側みたいにゃ並ばんよ。

407 :名無しさん@そうだ選挙にいこう:2009/06/19(金) 11:12:57
そーいうこと
並んでたって言うのは思い込みなんじゃね?

408 :名無しさん@そうだ選挙にいこう:2009/06/19(金) 11:28:23
XP以降のファイル名の順番と混同してるのかな

409 :403:2009/06/19(金) 11:42:28
すみません。今2003を起動して確かめてみたら>>406の言う通りでした。
私の勘違いでした。申し訳ありませんでした。

410 :名無しさん@そうだ選挙にいこう:2009/06/19(金) 16:30:01
>>388
>>389
返事が遅れました。ありがとうございます。
>>388の方法で試してみたところ私の説明が足りていないことに気づきました。
下記の画像のように並び替えはできますでしょうか?
ttp://www.odnir.com/cgi/src/nup37114.jpg

411 :名無しさん@そうだ選挙にいこう:2009/06/19(金) 16:50:01
>>410
こういうめんどくさい処理にはVBA使え.
とは言っても、人間にとっては極めて単純な作業だから、
これをエクセルでやろうとすると実は結構めんどくさいってのが
わかんないんだろうなあ

412 :名無しさん@そうだ選挙にいこう:2009/06/19(金) 18:06:23
ピボットテーブルでほぼ近い結果は得られる
仕上げに関数と手作業は必要になるけど

413 :名無しさん@そうだ選挙にいこう:2009/06/19(金) 21:00:50
シートの名前がPゴシック(?)で読みにくいので、MSゴシックとかの
等幅フォントに変えたいのですが出来ますか?


414 :名無しさん@そうだ選挙にいこう:2009/06/19(金) 21:10:32
下記のようなエクセルの表を作りたいのですがどのように設定すればよいのでしょうか?
りんご、みかん、イチゴ、にんじん、レタス、白菜・・・このような感じで果物と野菜を書いて
その横のセルに1、2など数量を入力したとします。そして その合計を果物や野菜別に出す方法って可能でしょうか?
出来れば品物はプルダウン(データ→入力規則→リスト)で選べるような方法を考えています。
A1 品物をプルダウンで選ぶ(例えば イチゴ) B1 15
C1 品物をプルダウンで選ぶ(例えば にんじん) D1 8
E1 品物をプルダウンで選ぶ(例えば レタス) F1 11
G1 品物をプルダウンで選ぶ(例えば 白菜) H1 3
I1 品物をプルダウンで選ぶ(例えば みかん) J1 13
こんな感じで作り
K1 果物の数の合計(答え的にはイチゴとみかんの数の合計28)
L1 野菜の数の合計(にんじん、レタス、白菜の数の合計22)
を出す方法ってありますか?
伝えるのが難しく うまく文を書けませんが分かる方がいましたら宜しくお願いします。
イメージ的には
http://www.imagegateway.net/ph/OPA/aig/29uhaZeDr47sCNBM3603ks3kskXL0103kskXLyCw4Fpmg.jpg
こんな感じでピンクの部分が表示されると助かります。

【1 OSの種類 】 Windows XP 【2 Excelのバージョン】 Excel 2003 【3 VBAが使えるか】 いいえ
【4 VBAでの回答の可否】 否 【5 検索キーワード】 合計 プルダウン 商品別

415 :名無しさん@そうだ選挙にいこう:2009/06/19(金) 21:47:50
VBAでやれば簡単にできることを、無理矢理ピボットを使おうとするヤツってwwww

416 :名無しさん@そうだ選挙にいこう:2009/06/19(金) 21:49:37
先生!
メロンは果物ですか? 野菜ですか?

417 :名無しさん@そうだ選挙にいこう:2009/06/19(金) 21:58:35
>>413
まともな方法じゃ無理
やるとしたらリソースハッカーでフォント名書き換えかな
すんなりできるかわからんけど

418 :名無しさん@そうだ選挙にいこう:2009/06/19(金) 22:05:42
>>416
すみませんが わからないなら 黙っていて下さい。

419 :名無しさん@そうだ選挙にいこう:2009/06/19(金) 23:41:53
>>416
メロンは果物です(jk

420 :名無しさん@そうだ選挙にいこう:2009/06/20(土) 08:29:27
>>410
先に並び替えをする
じゃなきゃマクロ


421 :POPO:2009/06/20(土) 09:22:55
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Google EXCEL 関数

データが↓みたいな並びで1セル1データで30個くらいあります
例データ A A A A A B A A A 〜A
全て同じならTRUE 一つでも違うデータが混在していたらFALSEになる式はありますか?
例データで言いますと、Bが混ざっているのでFALSEになるようにです。

422 :名無しさん@そうだ選挙にいこう:2009/06/20(土) 09:31:55
全部Bの場合はtureなの?

423 :POPO:2009/06/20(土) 09:35:08
>422
はい、そうです
データの中身はランダムで何でも入ってきます。
目的は、中身が全て同じか確認したいのです。

424 :名無しさん@そうだ選挙にいこう:2009/06/20(土) 09:38:47
>>421
=COUNTA(1:1)=COUNTIF(1:1,A1)
こんなとこかな

425 :名無しさん@そうだ選挙にいこう:2009/06/20(土) 09:39:50
>>424
同じこと考えたけど空白もfalseにしなきゃいけなかったらダメでは?

426 :名無しさん@そうだ選挙にいこう:2009/06/20(土) 09:40:24
>>414
果物か野菜かの判別をするための指標を「品物リスト」に
追加すれば簡単にできるよ。

427 :名無しさん@そうだ選挙にいこう:2009/06/20(土) 09:42:57
>424
ありがとうございます!!!
>425
空白は無視しています。 ありがとうございます。

428 :名無しさん@そうだ選挙にいこう:2009/06/20(土) 13:43:41
A4の紙に付箋を貼り、付箋に文字をプリントしたいのですが、
エクセルに付箋のサイズを設定した四角をオートシェイプで
作り印刷すると、毎回数ミリ小さく印刷され、
サイズを見直すと設定したサイズより小さくなっています。

どうすればサイズが変わらずきれいにプリントできるでしょうか?
プリントする文字は毎回変わるので、フォーマットを作っておきたいのですが。



429 :名無しさん@そうだ選挙にいこう:2009/06/20(土) 13:48:45
>421
=A1=REPT(LEFT(A1),LEN(A1))

430 :名無しさん@そうだ選挙にいこう:2009/06/20(土) 14:05:02
添削
=A1=REPT(LEFT(A1,1),LEN(A1))

431 :名無しさん@そうだ選挙にいこう:2009/06/20(土) 14:07:31
>>428
いろんな大きさの文字を印刷して、
ちょうどいいのを選んで付箋に糊で貼れ

432 :名無しさん@そうだ選挙にいこう:2009/06/20(土) 14:08:23
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 現在勉強中
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 マクロ ユーザーフォーム 入力



一覧表への単調なデータの入力をユーザーフォームを使って行いたい。
入力項目は6つでそのうち4つは文字や数値を手入力、2つはリストから選択して入力させる。
現在は入力したデータを表示させる一覧表とユーザーフォームの作成し、
ユーザーフォームを立ち上げるコントロールをクリックするとユーザーフォームが立ち上がるところまではできました。

しかし、ユーザーフォームで入力項目を入力し終わって登録させるボタンをクリックしても一覧表にデータが追加できません。
新しい行が一行追加されるだけです。
入力したデータを一覧表に反映させるためのマクロ記述に問題があると思うのですが、
現在もっているマニュアル本で調べてもどこがどのように間違っているのか分からない状態です。




433 :432:2009/06/20(土) 14:09:05
>>432の続きです。

以下のどこかに記述の間違いがあると思うのですが…。
お気付きの点があれば教えて頂きたいと思います。
ちなみに5,6がリストから選択して入力できるようにしたい部分です。

  '行数の取得
rowsCount = Range("本一覧").Rows.Count

'最下行に行を挿入
Range("本一覧").Cells(rowsCount, 1).EntireRow.Insert

'データをセルに入力する
Range("本一覧").Cells(rowsCount, 1) = BookNameBox.Text
Range("本一覧").Cells(rowsCount, 2) = WriterNameBox.Text
Range("本一覧").Cells(rowsCount, 3) = PressCompanyNameBox.Text
Range("本一覧").Cells(rowsCount, 4) = NumberBox.Text
Range("本一覧").Cells(rowsCount, 5) = PointNameCombo.Value
Range("本一覧").Cells(rowsCount, 6) = AdressCombo.Value

'[本追加]ダイアログを閉じる
Unload Me


よろしくお願いします。

434 :名無しさん@そうだ選挙にいこう:2009/06/20(土) 14:22:49
Range("本一覧").Cells(rowsCount, 1) = UserForm1.BookNameBox.Text
って事じゃないの?

>430
初心者は省略しない方がいいかもね

435 :名無しさん@そうだ選挙にいこう:2009/06/20(土) 14:24:08
LEFTは省略できたのか しらんかったよすまん

436 :432:2009/06/20(土) 14:44:04
>>434
できました!
ありがとうございましたm(__)m

厚かましいお願いになりますが、マクロを作っていく手順書みたいなものがあれば教えて頂けませんか?
今もっているのは個別のマクロ記述についてのモノで辞書のように使うには便利なのですが、
もう少し概要を学んで大まかなマクロ作成の流れやパターンが紹介されているものを読んでみたいのです。
アマゾンなどで調べてもそういった本が見つからなかったもので。
もしご存じでいらしたら教えて頂けたらと思います。

437 :名無しさん@そうだ選挙にいこう:2009/06/20(土) 17:30:39
>>428
そういうのはWordでやった方がはるかに簡単だよ

438 :名無しさん@そうだ選挙にいこう:2009/06/20(土) 17:44:49
>>436
手順って、ねぇ
マクロ程度なら順番にさせるだけだしな
ifとfornext覚えたらナンとでもなる
極端な話マクロの記録だけでもok

キレイなコードを書きたいならデザインパターンで調べると吉



439 :名無しさん@そうだ選挙にいこう:2009/06/20(土) 17:50:22
>>436
Excelのマクロって限定しないで
一般的なプログラミングの入門書みたいなの読めばいいんじゃないかなあ。
概念的な事でつまづいてるならわざわざ買わずとも
ネットで調べるとか図書館で借りるだけでもいいと思うし。

440 :名無しさん@そうだ選挙にいこう:2009/06/20(土) 18:27:23
>436
作り方ではないけれど、いろんなサンプルとしては↓がいいかも。
すぐに役立つエクセルVBAマクロ集
http://www.asahi-net.or.jp/~zn3y-ngi/index.html

441 :名無しさん@そうだ選挙にいこう:2009/06/20(土) 20:12:52
XP
バージョン2003
VBA 否

二つのセルの中の文を入れ替えることって簡単にできるでしょうか?
excel 入れ替え
などでググったけど、行と列の入れ替えに関するものばっかり出てきます……。
あと、コピー&ペーストで、セルの中の文だけじゃなく、セルの形式?や枠線?みたいなのまでコピーされてしまうのが困ります。
セルの中の文章だけを簡単にコピー&ペーストできる方法ってないでしょうか?

442 :名無しさん@そうだ選挙にいこう:2009/06/20(土) 20:32:57
>>440
その著者、今はどうだか知らんけど500連発出したころはかなりひどくなかったか?
Selectばっかじゃなかったっけなぁ。
どこかに変数の宣言はしない、インデントはいい加減、Selectばっかの三重苦でいつもおふざけの人がいたがどうも彼とかぶるんだよな。
500連発の他の著者の一人かも知らんが。

443 :名無しさん@そうだ選挙にいこう:2009/06/20(土) 20:47:22
>>441
どっか別のセルに値としてコピーするしかないな

444 :名無しさん@そうだ選挙にいこう:2009/06/20(土) 20:48:01
>>442
俺は変数の宣言無しやSelectしてても読めるからまぁ許せるが、インデントぐちゃぐちゃは駄目だな。
本を出すようなやつでいくらなんでもインデントぐちゃぐちゃはいないと思うな。
Selectばっかで本を出すやつは昔は結構いたよ。

445 :名無しさん@そうだ選挙にいこう:2009/06/20(土) 20:48:43
>>441
「編集」→「形式を選択して貼り付け」

446 :名無しさん@そうだ選挙にいこう:2009/06/20(土) 21:05:53
セル入れ替えはVBA書いてボタンに登録しとけばかんたんだね

447 :名無しさん@そうだ選挙にいこう:2009/06/20(土) 21:13:04
>>441
A1とB1を入れ替えたいとすると
A1をC1にコピー
B1をA1に
c1をB1に
というふうにワンテンポオクしかない

448 :名無しさん@そうだ選挙にいこう:2009/06/20(土) 21:21:07
>441
セルが隣り合っていればソートでもいい。(書式も入れ替わるけど)
同じ行の場合(例えばA1セルとB1セル)の場合は オプションで「方向−列単位」を選べばいい。
入れ替わらなかったら昇順と降順を入れ替えるだけ。

隣り合っていなければ>443、>447のように別セルを利用して2回コピーなり移動なりするしかない。
現実でも、2枚の皿にタマゴ(なんでもいいけど)が1個ずつあって「片手」で入れ替えることを
想定したらわかる。皿以外の場所にタマゴを置いてはいけないならもう一枚皿を用意するしかない。
これと同じ。

449 :名無しさん@そうだ選挙にいこう:2009/06/20(土) 21:21:52
Officeクリップボードを使用する

450 :名無しさん@そうだ選挙にいこう:2009/06/20(土) 21:26:27
>>441
2つのセルが隣り合っていれば
右(または下)のセルの枠の部分をShiftを押しながらドラッグすると入れ替えられる

451 :名無しさん@そうだ選挙にいこう:2009/06/20(土) 21:49:50
>>450
上下は出来るけど左右が出来ないんだが、コツがあるの?

452 :441:2009/06/20(土) 22:00:30
申し訳ないのですが、VBA使えるとしたら、どういうふうにしたらいいんでしょう?

453 :名無しさん@そうだ選挙にいこう:2009/06/20(土) 22:12:02
A1とB1を入れ替えたいとすると
A1を上に放り投げる
落ちて来る前にB1をA1へ入れる
落ちてきたA1をB1で受け止める

454 :名無しさん@そうだ選挙にいこう:2009/06/20(土) 22:13:33
お手玉かよ。

455 :名無しさん@そうだ選挙にいこう:2009/06/20(土) 22:13:46
入れ替えるセル位置は常に固定ですか? それともその都度変わる?


456 :名無しさん@そうだ選挙にいこう:2009/06/20(土) 22:14:33
>>451
B1のセルのはしをシフトクリックしてA1の左端に持っていく
こんな機能初めて知ったわ
>>452
Sub a()
Dim a
a = Cells(1, 1)
Cells(1, 1) = Cells(1, 2)
Cells(1, 2) = a
End Sub
隣り合ってればB1切り取ってA1にはりつけるのが早いんだけどね
離れてるならこうと思うけどもっと楽なやり方あるのかな?

457 :名無しさん@そうだ選挙にいこう:2009/06/20(土) 22:18:03
>>452
Sub 入れ替え()
Dim r As Range
Dim buf As Variant
Set r = Selection
If r.Count = 2 Then
  If r.Areas.Count = 1 Then
    buf = r(1).Value
    r(1).Value = r(2).Value
    r(2).Value = buf
  Else
    buf = r.Areas(1).Value
    r.Areas(1).Value = r.Areas(2).Value
    r.Areas(2).Value = buf
  End If
End If
End Sub

458 :451:2009/06/20(土) 22:38:02
>>456
トン
出来たわ。
おれもこんなの初めて知った。

459 :名無しさん@そうだ選挙にいこう:2009/06/20(土) 22:55:17
>>457は二つのセルを選択して実行だからな。
とびとびセルなら2個目の選択はCtrlキーを押しながらクリックだ。

似たような記述が2回あるから二つのプロシージャに分けた方がいいかも知らんけど。

460 :名無しさん@そうだ選挙にいこう:2009/06/20(土) 23:12:18
似たような記述が2回の回避はこうすりゃいいのか。
オナニー気味ですまんね。

Sub 入れ替え()
Dim r As Variant
Dim buf As Variant
Set r = Selection
If r.Count = 2 Then
  If r.Areas.Count = 2 Then
    Set r = r.Areas
  End If
  buf = r(1).Value
  r(1).Value = r(2).Value
  r(2).Value = buf
End If
End Sub

461 :名無しさん@そうだ選挙にいこう:2009/06/20(土) 23:32:36
SO201v1.03.xls にシート4月〜6月があり、SO201v1.030.xls、4月.xls、5月.xls、6月.xlsとして
それぞれを保存し、SO201v1.03.xls に戻りたいのですが、インデックスが有効範囲にありません
とエラーメッセージが出ます。どこを書き直せばいいでしょうか?

Sub test()
Dim FN, myDrv, m

FN = ThisWorkbook.Name
myDrv = "E:\test\"
ActiveWorkbook.SaveAs Filename:=myDrv & Left(FN, Len(FN) - 4) & "0.xls"

For m = 4 To 6
Sheets(Array(m & "月")).Copy
ActiveWorkbook.SaveAs Filename:=myDrv & m & "月.xls"
Next
Workbooks(FN).Activate

End Sub

462 :名無しさん@そうだ選挙にいこう:2009/06/20(土) 23:55:21
>>461
保存してファイル名というか、ファイルが変わってるんじゃね
保存したのをアクティブすれば

463 :461:2009/06/21(日) 00:22:15
>>462
>保存したのをアクティブすれば
保存したのがアクティブになってるからエラーになってるわけで・・・
原因は分ったものの、直し方が分りません。

464 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 00:35:27
>>463
Sub test()
Dim FN, myDrv, m

FN = ThisWorkbook.Name
myDrv = "e:\test\"
ActiveWorkbook.SaveAs Filename:=myDrv & Left(FN, Len(FN) - 4) & "0.xls"

For m = 4 To 6
ThisWorkbook.Activate
Sheets(Array(m & "月")).Copy
ActiveWorkbook.SaveAs Filename:=myDrv & m & "月.xls"
Next
Workbooks("so201v1.030.xls").Activate

End Sub


465 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 00:40:02
【1 OSの種類         .】 Windows Vista
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】関数 グラフ Excel

こんばんは。初めて投稿します。

EXCELを使って関数のグラフを描きたいのですが変数に具体的な値を入力する以外に方法はないのでしょうか。
Googleを利用して調べたところ簡単な二次関数(放物線)の例などを見つけましたが、どれも具体的な値を入力しているものばかりでした。
変数のままグラフを描く方法があればご教授していただきたいです。
また不可能な場合ある程度の点を入力した後に滑らかにつなぐ方法は可能でしょうか。
(ただ私が描きたいグラフはある一点で滑らかでない閉曲線なのでこの方法では結局期待通りの結果は得られないかもしれませんが)

どなたかわかる方よろしくお願いします。

466 :461:2009/06/21(日) 00:51:59
>>464
ありがd!
SO201v1.03.xls に戻りたいので、邪道かもしれませが2行を追加して解決しました。

Sub test()
Dim FN, myDrv, m

FN = ThisWorkbook.Name
myDrv = "e:\test\"
ActiveWorkbook.SaveAs Filename:=myDrv & Left(FN, Len(FN) - 4) & "0.xls"

For m = 4 To 6
ThisWorkbook.Activate
Sheets(Array(m & "月")).Copy
ActiveWorkbook.SaveAs Filename:=myDrv & m & "月.xls"
Next

Workbooks.Open Filename:= myDrv & FN
Workbooks(Left(FN, Len(FN) - 4) & "0.xls").Close

End Sub

467 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 01:00:52
>>465
Excelでは具体的な数字入れないとグラフはかけません。

468 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 01:05:18
>465
具体的な数値は関数を使ってやればどうですか?
y=(x−a)^2+bのグラフなら
A2セルから下にxを0.2きざみとかでいくつか入れてオートフィルで数十個、
B2セルに=(A2-2)^2+3などの計算式を入れてオートフィルしたらどうですか。


469 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 01:42:27
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 0

同じシートにおいて
あるセルでは「0」の場合何も表示させず
別のセルでは「0」の場合「0」と表示させたいのですが
それは可能でしょうか?

470 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 01:48:10
>>469
もすこし具体的なら条件次第で可能です。

471 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 01:50:45
>469
条件付書式で ユーザー定義に 0;-0;"" って入れてみて。

472 :469:2009/06/21(日) 02:23:56
>>470
レスdです。
>>471
できました!すごいです!
dです!


473 :465:2009/06/21(日) 03:43:02
>>467,>>468

お返事ありがとうございます。
やはり具体的な数値は必要なようですね。
一度>>468さんの方法を試してみたいと思います。
また何か疑問があれば利用させていただくかもしれません。

改めて>>467さん,>>468さんお返事ありがとうございました。

474 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 05:51:10
>>471
まあ中二病的発想だろうね
三年生ともなれば経済ってもんが大まかにでも分かって来て個々人が自分自身の為に精一杯頑張る事が
最も社会(彼らは地球・世界・市民といった表現が好きなようだが)の為になるって事に気付くもんだけど

475 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 06:20:13
>>469
セルの書式設定の表示形式で ユーザー定義に 「0;-0;」 って入れてみて。

476 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 06:44:06
俺は>>471は表示形式を間違って条件付き書式と書いたのかと思ったが違ったのか。
しかし2003で条件付き書式で出来るの?
2007では出来るけど2000だと出来ないんだけど。


477 :471:2009/06/21(日) 08:52:16
うおおっ、気付かなかった。
トランスフォーマー録画したの見ながら缶チューハイ飲みながら
条件付書式でも、表示形式でもできるやん、って思いながら書いてたらごっちゃになった。
自分で書いてて恥ずかしいです。

478 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 11:33:42
しかも最後の "" も無駄ってか
これは録画だの酒だの関係なく
知識として勘違いしてたんだな

479 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 11:54:07
>478
あれ? 基本に則ったらこうなりませんか?
正の数の書式;負の数の書式;ゼロの書式;文字列の書式
http://www.eurus.dti.ne.jp/~yoneyama/Excel/user_set.htm
ゼロを表示したくないということで""と明示するんじゃないの?
省略しても結果が同じだからといって「勘違い」っていうのはどうかと思う。

480 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 11:57:38
ガキ相手に大変だなwwwww

481 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 12:18:04
じゃあなんで
0;-0;"";""
とか
0;-0;"";@
にしなかったの?って話になるな

4つ目を省略しておきながら
3つ目を省略することに異を唱えるのは苦しすぎるw

482 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 12:22:09
「数字のゼロを表示したくない」って質問者が言っているのがわからないのかな?


483 :476:2009/06/21(日) 12:35:41
>>479
>>478>>481は俺じゃないが、""は普通書かないな。
>>475が普通だと思う。

484 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 12:38:23
2003だけど
0;-0;""
で正解じゃ??
>>475だと0が表示されるんだけど

あえて言うなら「=0&""」なんて入ってる場合0が表示されてしまうが
こんなケース考えても仕方ないだろう

485 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 12:46:24
>>484
もちろん正解だけど""を書かなくてもいいって言ってるんだよ。
言い出したの俺じゃないけどな。

486 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 12:50:25
>>484
>>475でも0は表示されないだろ?
最後の;が抜けてるんじゃないか?

487 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 12:58:15
例えば正の数値しか表示しないのであれば
0;;;とする人はいても0;"";"";""とする人あまりいないよな。

488 :432:2009/06/21(日) 13:35:08
>>438
ご回答ありがとうございます。
デザインパターンで検索してみたらと私が知りたかったことに通じそうですね。
マクロの構文のようなものを掴めたらと思っていたので、
しばらく色んなサイトを巡って勉強しようと思います。

条件付きの処理をする時はIfの設定を上手にすれば色んな処理ができそうなので、
これが使えるとルーティン入力作業はかなり捗りそうですね。


>>439
ご回答ありがとうございます。
ご回答のように私がつまずいているのはマクロそのものというより、
その前の概念的なものがかなり大きいと感じています。
>>438さんに教えて頂いたのも一般的なプログラムでの考え方のようです。

>>440
ご回答ありがとうございます。
作業の進め方を確認したり、マクロを作っていく基本的な部分が乗っていてQ&Aのように使えそうです。
今回つまづいたコンボボックスの部分も基本的なセットの仕方から応用まで出ていましたので、
早速応用の方を試してみたいと思います。
エクセルの基本的な操作の仕方も私の知らない事が沢山載っていますので大いに参考になります。


私のつたない質問に御三方から的確なお答えを頂き本当にありがとうございました。
少しずつ勉強して使いこなせるようになりたいと思います。
他の方には長文のレスでご迷惑をお掛けして申し訳ございません。

489 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 14:09:24
>488 どーでもいいことだけど
Address は d がふたつな。

490 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 15:05:07
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】関数 表 Excel 検索
※当スレの>>5、「作業セルを使って別セルに詰めて表示」に関連する質問
 になるのでしょうか

CSVで取り込んだデータがシート1に並んでいます。
A列には氏名が、B列には売上金額が表示されています。
A2とB2はデータの先頭行なので必ずデータが入っていますが、
それ以降は5〜10行程度の空白行がランダムに続き、A列ところどころに
氏名が入力(たとえばA8,A15,A20・・・)され、氏名がある場合は必ず
同じ行のB(上記例なら必ずB8,B15,B20・・・)に金額が入っております。
このデータを別のシートに空白行なしに2行目、3行目、4行目と
きれいに並べた表にしたいのです。
関数を使って、シート1のデータが上書きされると自動的に別のシートの表に
縦に隙間なく表示させるようにするにはどうしたら良いのでしょうか
(今は一行づつコピーペーストしています)

491 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 15:05:36
>489 どーでもいいことだけど
「Adress」または「Address」という文字が488に書かれてないんだが?

492 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 15:09:57
>>490
おーとふぃるたで空白行以外をえらんでこぴぺ

493 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 15:14:01
【1 OSの種類         .】  Windows XP
【2 Excelのバージョン   】  Excel 2000
【3 VBAが使えるか    .】  いいえ
【4 VBAでの回答の可否】  可
【5 検索キーワード     】  エクセル 関数 抽出 集計

抽出と集計を同時にしたいのですが、SUMIFやVLOOKUPを組み合わせても
なかなかうまくいきません・・・

1 http://sakuratan.ddo.jp/imgboard/img-box/img20090621145450.jpg
2 http://sakuratan.ddo.jp/imgboard/img-box/img20090621145518.jpg
3 http://sakuratan.ddo.jp/imgboard/img-box/img20090621145540.jpg
4 http://sakuratan.ddo.jp/imgboard/img-box/img20090621145608.jpg

1のコード表からそれぞれのデータをひっぱってきて、2で情報を追加し、3で重複する部分を一旦集計
4で一定条件をクリアする部分を再集計するというものです

3から4の部分はある程度手作業で集計するのはかまわないのですが、1から3までの作業をほぼ自動化
させたいのでみなさんのお知恵を拝借願えればと思ってます

エクセルファイル
http://www.77c.org/d.php?f=nk8283.zip


494 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 15:15:59
>>490
フィルタで空白行を選んでCTRL&-

495 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 15:53:33
>491
488=432,433
お礼の書き込みで、まだ見てるなと思ってね。

496 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 15:57:05
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】時刻

セルに「0:30」と入力したとき、「午前0時30分」
「12:30」と入力したとき、「午後0時30分」
と表示させることは可能でしょうか?

今のところ表示形式で「[$-411]AM/PM・・・・」と入れているのですが
それぞれ「午前12時30分」「午後12時30分」と表示されます。
よろしくお願いします。

497 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 16:22:34
>>490
作業セルを使ってって検索条件のことか?
いずれにしてもオートフィルタはいかん。
フィルタオプションを使った方がいい。

検索条件範囲に
氏名
<>
として抽出コピーするだけ。
なお別のシート上からフィルタオプションを操作するべし。

498 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 16:22:44
>>493
とりあえずピボットテーブルについて調べてみることだな。


499 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 16:32:56
【1 OSの種類         .】 Windowsxp
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 エクセル 列 整理

メモ帳に書かれたデータをエクセルに作り変え整理したいです。
現在メモ帳に下記の様に書かれた文章があります

山田太郎 100歳 東京都新宿区○× (03)1234-5678
鈴木一郎 10歳  東京都中央区○△ (03)2345-6789
佐藤・・ ・・ ・・・       ・・・・・
吉田・・ ・・ ・・・       ・・・・・
と以下続きます。

この住所録をエクセルで下記の様に行、列で整理したいのです。

A列    B列    C列         D列     
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 山田太郎┃100歳 ┃東京都新宿区○× ┃(03)1234-5678┃
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 鈴木一郎┃10 歳 ┃東京都中央区○△ ┃(03)2345-6789┃
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

の様に整理したいのです。
どの様にしたら宜しいでしょうか?よろしくお願い致します。




500 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 16:45:33
>>499
ファイルを開く→ファイルの種類でテキストファイルを選択→テキストを開く→テキストファイルウィザードが出るので
スペースによって〜ってとこにチェック→後はウィザードにしたがって進めばいい

501 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 17:22:34
>>500
ファイルを開いたのですが、
『ファイルの種類でテキストファイルを選択』
がわかりません。
何処にあるのでしょうか?
スミマセンがよろしくお願い致します。

502 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 17:32:09
>>501
ファイルを直接開くのではなくExcelアプリケーションを開いて
メニューのファイル(F)→開く(O)→ファイルの種類(T)でテキストファイルを選択する、
ってことだろう。

503 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 17:49:20
>>486
すまんかった、見落としてた
なくてもいけるのか
>>487
俺ですすいませんでした

504 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 18:55:41
【1 OSの種類         .】 Windowsxp
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 VBA 日付 0をつける

質問です。
初歩かもしれないのですが、VBAで今日の日付を、
「20090621」のような、0をつけた日付を取り出す場合には
どのようにすればよいのでしょうか?
現在は、10以下の場合は0を加えているのですが、
もしもっとスマートなやり方があれば教えてほしいです。
よろしくお願いします。

505 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 18:57:14
>>504
format関数でyyyymmdd・・だっけな
ワークシート関数でtext関数呼び出して"yyyymmdd"呼び出すほうが分かりやすいかな


506 :504:2009/06/21(日) 19:03:48
>505
即答ありがとうございます。
ものすごく短くなってすっきりしました。

507 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 22:54:57
Excel2000を使用していますが、Excelで作った表などの一部をイメージ(jpg)で書き出したいのですが、
どのような方法で出来るんでしょうか

508 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 22:58:34
>>507
prtscr押す(がめん全体をコピー)
ペイントを起動
ペイントに貼り付け

もしくはセル範囲を選択
以下ペイント起動、貼り付け
エクセル上でできるかは知らないけど、きいたことないな

509 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 22:59:51
---------------------------------------------------------------------
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】EXCEL2007 積み上げ棒グラフ 系列の順序
---------------------------------------------------------------------
EXCEL2007で積み上げ棒グラフの系列順序の入替をしたいのですが、
見当たりません。2007では、この機能はなくなってしまったのですか??
入替の方法を教えて下さい。お願いいたします。



510 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 23:01:27
499です。
遅くなりました、回答有難うございます。

エクセルには移せました。
そこで、A列は名前、B列は年齢C列は住所の様に
簡単にまとめる方法はありませんか?
よろしくお願い致します




511 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 23:01:59
>507
Shift押しながら、編集→図のコピー

512 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 23:07:05
>>511
一旦A1セルにコピーし、
データ→区切り位置
カンマや〜→ok
スペースを選択して官僚
じゃダメ?

513 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 23:08:18
>>512
>>510宛ね

514 :名無しさん@そうだ選挙にいこう:2009/06/21(日) 23:22:15
>>508,>>511
ありがとうございました。
無事イメージ化できました。

515 :名無しさん@そうだ選挙にいこう:2009/06/22(月) 00:27:42
>>512

回答有難うございます。
出来ました凄いです。
複数の列を選択できないのは残念ですが、しょうがないと思います。
有難うございました。

516 :名無しさん@そうだ選挙にいこう:2009/06/22(月) 06:59:37
>>515
おまえまだ何か勘違いしている。
500,502も正確に実行できていない。
もう一度見直せ。
そして、インポートをマスターするのだ。
何でも、中途半端に投げ出してはいかん。

517 :名無しさん@そうだ選挙にいこう:2009/06/22(月) 09:38:47
EXCEL2007です
セルの境界線を表示させたり、消したりするには、
どうすれば良いのでしょうか?

よろしくお願いします。



518 :432:2009/06/22(月) 10:35:33
>>489
ご指摘ありがとうございます。
普通に間違えてましたw

519 :名無しさん@そうだ選挙にいこう:2009/06/22(月) 10:48:50
>>517
「表示」タブを開いて「枠線」のチェックを外す

520 :名無しさん@そうだ選挙にいこう:2009/06/22(月) 17:52:10
---------------------------------------------------------------------
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】EXCEL2007 積み上げ棒グラフ 系列の順序
---------------------------------------------------------------------
EXCEL2007で積み上げ棒グラフの系列順序の入替をしたいのですが、
見当たりません。2007では、この機能はなくなってしまったのですか??
入替の方法を教えて下さい。お願いいたします。

521 :名無しさん@そうだ選挙にいこう:2009/06/22(月) 18:57:53
>>520
グラフエリアを右クリック→データの選択を開いて、
下段左のペインに並んでる系列名をクリックして選択、
そのペインの右上にある小さい青い矢印で
選択した項目を上下させて順番を入れ替えることができる

522 :名無しさん@そうだ選挙にいこう:2009/06/22(月) 20:02:11
アキバでOfficeXPとか2003とかのCDが4000〜8000円で売られてるんだけど、パッケージに入ってなくて、
誰かがインストールしたかもしれないものですが、アクチベーションは出来るのでしょうか?
売人いわく「問題ないっすよ」って言ってたんだけど、気になって買えませんでした。

523 :名無しさん@そうだ選挙にいこう:2009/06/22(月) 20:23:05
うるせー

524 :名無しさん@そうだ選挙にいこう:2009/06/22(月) 21:20:01
http://www.moug.net/faq/viewtopic.php?t=42598
かわいそうに大先生のDQNな式をどこかで見たんだろうな
{=IF(SUM((シート1!$A$2:$A$1000=1)*(シート1!$B$2:$B$1000=1))< ROW(A1),"",INDEX(シート1!C:C,SMALL(IF((シート1!$A$2:$A$1000=1)*(シート1!$B$2:$B$1000=1),ROW($C$2:$C$1000),10000),ROW(M1))))}
オートフィルタかフィルタオプション教えない奴は馬鹿だな。

525 :名無しさん@そうだ選挙にいこう:2009/06/22(月) 21:23:33
上のリンクのスレッド大先生が登場するかな?

526 :名無しさん@そうだ選挙にいこう:2009/06/22(月) 21:29:05
クソうぜえ
ネットwatchでも行ってくれや
陰口しか叩けないカスは

527 :名無しさん@そうだ選挙にいこう:2009/06/22(月) 21:31:52
大先生って誰だよ
てめえの知ってる内輪のクソみたいな言葉使って
悦に入ってんじゃねーよ
てめえの脳内だけでやってろ
クズ過ぎて反吐が出るわ

528 :名無しさん@そうだ選挙にいこう:2009/06/22(月) 21:34:37
教えない奴は馬鹿?
そう思ってんならてめえで書き込んで来い
関係ねーとこに自慢げに落書きしてんな


529 :名無しさん@そうだ選挙にいこう:2009/06/22(月) 21:35:00
>>527
まぁ見てなって。
もうすぐ登場するから。

530 :名無しさん@そうだ選挙にいこう:2009/06/22(月) 21:36:50
>>528
おれIDもってないもん
ID持とうとも思わんな

531 :名無しさん@そうだ選挙にいこう:2009/06/22(月) 23:44:20
あの〜、522ですけど。。

眠いので寝ますけど誰か教えてくださいね。

532 :名無しさん@そうだ選挙にいこう:2009/06/22(月) 23:54:08
>>516 質問主です。メモ帳からエクセルには移せました。
また、>>515で課題だった列を一気に整理する方法とかあるのでしょうか?
お解りでしたらよろしくお願い致します。

533 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 02:05:10
【1 OSの種類         .】 WindowsXP professional
【2 Excelのバージョン   】 Excel 2003 (11.8307.8221) SP3
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Excel コピーモード Enter 貼り付けない セルの移動 優先


Excel2003を使用しています。
何らかのセル(仮にA1を)をコピーし、形式を指定して(A2に)貼り付けたあと、
セルを移動せず(アクティブセルはA2)、Enterをおして下のセル(A3)に移動しようとすると、
コピーモードのためにEnterによって(A2にA1の内容が)コピーされてしまいます。

インストール当初は普通にEnterをおして下に移動できていたんですが、
いつのまにかEnterをおすと貼り付けが優先されるようになってしまいました。

Googleで検索してみるとどうやら貼り付けが行われるのがデフォルトということなのですが、
これを無効にして、Enterでセルを移動させることを強制する方法はあるでしょうか?

できればすべてのExcelワークシートでこの設定を使いたいので、
VBAでないと助かりますが、それでは実現できないということであればVBAでもかまいません。

よろしくお願いいたします。


534 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 08:16:50
>>533
> インストール当初は普通にEnterをおして下に移動できていたんですが、
というのは勘違いで、もとから貼り付けが優先だったはず
絶対に勘違いじゃ無いというならバグだろうな

そもそもそれが実現できたとして、「移動したい」と思ってEnterを押した場合はいいが
「貼り付け実行したい」と思ってEnterを押した場合にまで移動してしまうようになるぞ

それでもいいと言うかも知れないが、Excelは幅広く使われているソフトで、自分持ちのExcel以外
使わないってわけにも行かないことが多いからイレギュラーな操作感に慣れてしまうのは好ましくない

マウス主体で操作している内はまだいいが、キーボード主体で操作するようになると
変な癖は抜けにくくなるので、ESCで解除するなど正しい操作を覚えた方がいい

それでもどうしてもやりたいならApplication.OnKeyで
Application.CutCopyMode = False
SendKeys "{ENTER}", True
でも再帰しないように当てておけ

因みに、VBAでは個々のブックやシートに設定しなければならないと思ってるのかも知れないが
OnKeyはWorkBookやWorkSheetではなくApplication(Excel本体)レベルのメソッドなので
一カ所で設定すれば、全てのブックやシートで有効になる
まあ個人用マクロブックなどでスタートアップさせるのがいいだろう

ついでに言えばWorksheet_BeforeDoubleClick等のWorkSheetレベルのイベントマクロとかも、
個々のシートにWorksheet_BeforeDoubleClickイベントを記述しなくても、1つのブックの設定だけで、
全てのブック及びシートで同じ動作をさせる方法もある

535 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 09:42:52
>>531
マジレスすると、アクチできるのとできないのが混ざってる。
見分ける方法はない。買ってみてだめだったらあきらめる。
数千円捨てる覚悟があるなら買ってみればいい。使えたらラッキー。

あと、ソフトを路上販売してるやつらは犯罪者だから、かかわらない方がいい。
知ってて買うなら無理には止めないけど。

536 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 10:35:04
「gif」という文字列が含まれているセルを含む行だけ選択してサッと消したいんですが
オートフィルタじゃうまく行きません
どうすればいいでしょうか

537 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 11:03:28
>>536
フィルタオプションでgifを含まないセルの行を抽出する。

項目
<>*gif*

538 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 11:09:48
その後全体をコピーして張り付け、フィルタ解除でgifの行がなくなるって寸法だ

539 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 11:12:37
A列からC列でgifを含まない行なら

A列項目  B列項目   C列項目
<>*gif*
        <>*gif
                 <>*gif*

または
空白
=COUNTIF(A2:C2,"*gif*")=0

>>538
嘘書いちゃいかん。コピペは駄目だよ。
抽出範囲を指定した範囲だ。

540 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 11:16:23
すまん>>539は間違いだ。

A列項目  B列項目   C列項目
<>*gif*   <>*gif*    <>*gif*


541 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 12:26:41
チラシの裏
長年Excel使ってるけど>>533みたいな機能初めて知った…
でも一般的なアプリのコピペと違う挙動って何か気持ち悪いね。
これを無効にしたいっていう>>533の気持ちは分からないでもない。

542 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 12:31:23
[esc]押して[enter]押せば済む話でないのかいなそれは

543 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 12:47:06
いやそういう話をしているわけではないんだが

544 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 14:01:34
>>534
Application.Onkeyで動作を実装しました。
マクロが書かれているブックやシートを起動せずに動作を実現したかったので、
VBAよりも本体の設定で行いたかったのですが、本体設定ではないようなので、
やはりVBAを書き、ブックを起動させる必要があるようですね。
しかしマクロブックを用意し、スタートアップにする方法は考え付きませんでした。
参考にさせていただきたいと思います。

ご回答ありがとうございました。

545 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 16:26:58
考え付きませんでした
考え付きませんでした
考え付きませんでした

546 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 18:00:39
【1 OSの種類         .】 WindowsXP Pro SP3
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 不可

受注/発注の管理をしているのですが、商品の種類が5,000近く
あり、それらがSheet A に記載されています

1回の注文で毎回ランダムに5000種類の中から30〜50の注文が来ますが、
現在はそれらの品目の1個1個を検索(Ctrl+F)でSheet Aから検索し、Sheet Aにある 

列a/b/c/d/eの価格情報と注文情報が正しいか調べています

547 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 18:01:56
sheet Aはアルファベット順に並び、ソートもできますが、5000種類からかなりランダムに
注文が来る為、結局手作業で1個1個検索するしか無い状況です

注文はexcelのシートでくるので、例えば注文のexcelから機種名の部分だけを
コピーして、sheet Bの特定のセルに値を貼り付ければsheet Aの同一の機種名
の情報を全件自動検索してAの列a/b/c/d/eの情報を隣のセルに表示してくれるような
機能は無いでしょうか?

EXCELで無理ならその様な機能があるアプリケーションはありますでしょうか?



548 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 18:08:15
>546->547
初歩的な手法ならVLOOKUPでいいんじゃね?
たった50くらいなら使えるだろう。
注文数が数千とかだと駄目だけどな。

549 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 18:15:13
しかしそんなんでよく実務やってるな。
5000も在庫があって手作業。
ウソだろ?

550 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 18:27:58
発注が1日に数件なら可能だろう

551 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 18:32:44
【1 OSの種類         .】 WindowsVista
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 ハイパーリンク 貼り付け

多数のアドレスを貼り付け⇒即ハイパーリンク表示させたいのですが
方法がわかりません・・・。

サンプルとして
http://www.a
http://www.b
http://www.c
http://www.d
http://www.e
という5行をテキスト等からコピペし、編集⇒エンターという感じにすると
5行全てハイパーリンクになるのですが、数が多いと編集回数が増え
困っています。

解決方法がありましたらよろしくお願いします。


552 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 18:34:51
>>547
Sheet2のA列に品名を入れるとSheet1のA列から検索して、何行目にあるか調べる式
=MATCH(A1,Sheet1!A:A,0)
行がわかればあとはなんとでもなる

553 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 18:38:54
>>551
作業列に=HYPERLINK(A1,A1)と入れてオートフィル

554 :551:2009/06/23(火) 18:46:59
>>553
凄い!出来ました!
ありがとうございます。

555 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 19:06:32
【1 OSの種類         .】 Windows Vista
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 excel 折れ線グラフ マーカー 変更

折れ線グラフのマーカーは●や■など自動で割り当てられると思いますが、
これをすべての系列で●というように統一できないでしょうか。
折れ線グラフはピボットグラフを使っています。
一つ一つの系列の変更なら「選択対象の書式設定」でできるのですが、
すべての系列というのができません。

また、すべての系列の色を、黒に統一などはできるでしょうか。
現在は黒のスタイルを選択しているのですが、
系列ごとに少し差をつけているようで黒と灰色のようになり、
すべて同じ色に設定したいのですができません。

どうぞよろしくお願いします

556 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 19:28:31
>>555
一括でスタイルや色を変更するのはVBA使わないと無理かなあ

557 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 19:44:27
>>555
すべてのグラフを真っ黒にする
Sub aaa()
  For Each c In ActiveSheet.ChartObjects
    c.Activate
    For Each s In ActiveChart.SeriesCollection
      With s
        .MarkerStyle = xlCircle  'マーカーの形=丸
        .MarkerBackgroundColorIndex = 1  'マーカーの色1=黒
        .MarkerForegroundColorIndex = 1  'マーカーの色2=黒
        .Border.ColorIndex = 1  '線の色=黒
      End With
    Next
  Next
End Sub

558 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 20:00:20
>>556

やっぱりですか。かなり探したのでもしかしてないかなと。

>>557

うおおおおお!ありがとうございます!!!
ソースまでいただけるなんて思いませんでした!!!

559 :522:2009/06/23(火) 20:05:51
>>535
そうですか。
わかりますた。

560 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 20:10:00
>>557

いま貼り付けて動かしました。動作確認できました!

561 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 20:24:20
てすと1は動くのに、てすと2はCopyのところで止まってしまいます。
どこが悪いの?


Sub てすと1()
  STN = "集計表"
  MM = 5
  STM = MM & "月"

  If MM > 4 Then
   Worksheets(STN & MM - 1 & "月").Select
   Range("C4", Cells(MM - 1, 10)).Copy _
   Destination:=Worksheets(STN & STM).Range("C4")
  End If
End Sub

Sub てすと2()
  STN = "集計表"
  MM = 5
  STM = MM & "月"

  If MM > 4 Then
   Worksheets(STN & MM - 1 & "月").Range("C4", Cells(MM - 1, 10)).Copy _
   Destination:=Worksheets(STN & STM).Range("C4")
  End If
End Sub

562 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 20:36:21
>>561
どこも悪くないから、原因は他のところにあると思われ
とりあえずエラーメッセージを晒せ

563 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 21:01:44
>>562
バーカ!なにもわかっちゃいねーなw

>>561
Worksheets(STN & MM - 1 & "月")の範囲をしっかり指定しないとダメ

Sub てすと2()
  STN = "集計表"
  MM = 5
  STM = MM & "月"

  If MM > 4 Then
    With Worksheets(STN & MM - 1 & "月")
    .Range("C4", .Range(Cells(MM - 1, 10)).Copy _
       Destination:=Worksheets(STN & STM).Range("C4")
    End With
  End If
End Sub

564 :563:2009/06/23(火) 21:07:22
微妙にインデントがズレた

Sub てすと2()
  STN = "集計表"
  MM = 5
  STM = MM & "月"

  If MM > 4 Then
    With Worksheets(STN & MM - 1 & "月")
      .Range("C4",  .Range(Cells(MM - 1, 10)).Copy _
        Destination:=Worksheets(STN & STM).Range("C4")
    End With
  End If
End Sub

565 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 21:08:07

    ┌─────────────────────────┐
    │ >>562 実行時エラー1004                        |
    │                                     |
    | アプリケーション定義またはオブジェクト定義のエラーです. |
    │                                      |
    └―――──――────―──―──―──―──――┘
                   ヽ(´ー`)ノ
                      (  へ)
                       く

566 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 21:14:19
何度もスマン
右括弧 「)」が足りなかったorz

× .Range("C4",  .Range(Cells(MM - 1, 10)).Copy _ 
○ .Range("C4",  .Range(Cells(MM - 1, 10))).Copy _

567 :561:2009/06/23(火) 21:27:30
>>562-566
ども。
564と566を組み合わせても、565のエラーが出るんだけど・・・

568 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 21:47:15
Worksheets(STN & MM - 1 & "月")
Worksheets(STN & STM)
Cells(MM - 1, 10)
どれかが存在しない。ウォッチ式で「STN & MM - 1 & "月"」等を見て、その名前のシートやセルがあるか調べる
ステップインでエラーが何行目で起こるか教えてくれ



569 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 21:56:05
>561
変数を置き換えると以下のようになりますよね。これを実行するときのアクティブシートによって
正常終了する場合とエラーになる場合があります。集計表4月がアクティブでなければ>565のエラーになります。

Sub てすと3()
Worksheets("集計表4月").Range("C4", Cells(4, 10)).Copy Destination:=Worksheets("集計表5月").Range("C4")
End Sub


570 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 21:59:30
>561 の てすと1 には Worksheets(STN & MM - 1 & "月").Select があるので、ここでは?

571 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 22:00:52
>>569
もしかして・・
標準モジュールじゃないところにコードかいてる?
sheet1のところにsheet2を扱うコードを書くとエラーになるよ


572 :569:2009/06/23(火) 22:04:12
>571
標準モジュールに書いてますが?

573 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 22:05:30
>>569
Worksheets("集計表4月").activate
入れとけ
眠い

574 :563:2009/06/23(火) 22:05:45
申し訳ない
これでエラーは出ないはず(当方環境で確認済

Sub てすと2()
  Dim STN As String, STM As String
  Dim MM As Integer

  STN = "集計表"
  MM = 5
  STM = MM & "月"

  If MM > 4 Then
    With Worksheets(STN & MM - 1 & "月")
    .Range("C4", .Cells(MM - 1, 10)).Copy _
      Destination:=Worksheets(STN & STM).Range("C4")
    End With
  End If
End Sub

575 :561:2009/06/23(火) 22:24:00
>>574
ども。
感動です〜 (∩Д`)゚。うわぁん

576 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 22:25:39
【1 OSの種類         .】 WindowsVista
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 よくわかりません
【4 VBAでの回答の可否】 よくわかりません
【5 検索キーワード     】 エクセル 時刻 秒数を分数
秒数で算出した数字を、分数で表示する方法を教えてください。


秒数(j行)→分数表示(k行) 

J  → K
17 → 0:17
30 → 0:30
47 → 0:47
60 → 1:00
77 → 1:17
90 → 1:30
107 → 1:47
120 → 2:00
137 → 2:17
150 → 2:30
167 → 2:47
180 → 3:00
197 → 3:17

J列(17)をK列(0:17)のように表示したいです。
分数を秒数になおす方法はあるようですが、逆が見あたりません。
エクセルはまったくの初心者ですが、どうぞよろしくお願いします。

577 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 22:28:44
>>576
=A1/24/60/60
書式を時刻にする

578 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 22:30:52
書式を、m:ss にする

579 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 22:32:41
>>576
=TIME(0,INT(j1/60),MOD(j1,60))
とか〜

580 :576:2009/06/23(火) 22:41:56
=A1/24/60/60 と 書式をm:ssで
「分:秒」の表示になりました!
ありがとうございます!!!
本当に助かりました。

581 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 22:45:01
ショートカットの Ctrl + C と Ctrl + V でコピペできますが、
ショートカットで “値だけ貼り付け” ってできますか?


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

583 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 22:55:07
↓を作って、ショートカットキーをCtrl+Shift+Vにすればいい

Sub test()
Selection.Value = Selection.Value
End Sub

584 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 22:58:42
Sub s()
Selection = Selection
End Sub
でいいと思うぜ

585 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 23:02:56
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】いいえ
【4 VBAでの回答の可否】否
【5 検索キーワード     】 Excel 列 反転


列のデータをそのままそっくり反転させる方法を教えてください。

たとえば
1
5
7
9

と並んでいるデータを

9
7
5
1

としたいんですが。お願いします。

586 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 23:07:27
横に連番ふってソート

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

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



588 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 23:28:32
対象を選択して縦にZAって書いてあって横に”↓”が付いているボタンを押す。

589 :588:2009/06/23(火) 23:30:11
>>585ね。

590 :581:2009/06/23(火) 23:37:00
>>583-584>>587
581です。
どう使えばいいんですか?
標準モジュールに書いて実行したら、、、

    ┌─────────────────────────┐
    │ >>587 実行時エラー1004                        |
    │                                     |
    | RangeクラスのPasteSpecialメソッドが失敗しますた      |
    │                                      |
    └―――──――────―──―──―──―──――┘
                   ヽ(´ー`)ノ
                      (  へ)
                       く

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

592 :名無しさん@そうだ選挙にいこう:2009/06/23(火) 23:40:18
>>590
まず、どこかのセルをCtrl+Cでコピーしてからマクロ実行しなきゃエラーになるよ。

593 :581:2009/06/23(火) 23:56:01
うぅーん、良く分らない・・・・


  ゴメソ マタアシタクルヨ…
  ̄ ̄V ̄ ̄ ̄ ̄ ̄ ̄
    o o
 ヽ(´(ェ)`;)ノ
    (  )     〜 〜 ヨロヨロ
     く   へ    〜 〜

594 :585:2009/06/23(火) 23:57:16
>>586,>>588
ありがとうとございます

595 :名無しさん@そうだ選挙にいこう:2009/06/24(水) 00:24:54
【1 OSの種類         .】 Windows Vista
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】はい
【4 VBAでの回答の可否】否
【5 検索キーワード     】 Excel IFERROR VLOOKUP

2007になって折角 IFERROR があるので,
=IFERROR(VLOOKUP($AA$1,$A$1:$Z$100,2,FALSE),"")
このように書いてみましたが,この場合,VLOOKUPで参照し空白セルは0を返してきます。

1. #N/A エラー対策
2. 参照元が空白の時
3. 参照元が「0」の時はエラーとみなさない

この3つの条件を満たしながらIFERRORを使いながら簡潔にまとめるにはどうしたらいいでしょうか?

ちなみに
=IFERROR(VLOOKUP($AA$1,$A$1:$Z$100,2,FALSE)&"","")
とすると,0は表示されなくなるのですが,セルに設定した書式が無視されてしまいました。
これもどうしてこうなるのかよくわからないです。

よろしくお願いします。


596 :名無しさん@そうだ選挙にいこう:2009/06/24(水) 00:30:48
>>581
アプリキー→s→v→Enter

597 :名無しさん@そうだ選挙にいこう:2009/06/24(水) 00:47:10
>>595
参照元が空白の時は何?文章が途中で終わってるぞ。
検索したいのはどんなデータ?
参照元が0の時、エラーじゃないのはいいとして、そのかわりに何を返すの?

とにかく脳内で完結しすぎ。ちゃんとわかるように説明しろ。

598 :名無しさん@そうだ選挙にいこう:2009/06/24(水) 01:04:20
>>597
大変申し訳ありませんm(__)m

検索したいのは「数値」です。
ただ,空白セルがあったり,0のデータもあります。

空白は空白で,0は0を表示させたいのです。
もちろんエラーは空白表示となる必要があります。

よろしくお願いします。


599 :名無しさん@そうだ選挙にいこう:2009/06/24(水) 02:03:38
>>598
こうかな?
=IF($AA$1="","",IFERROR(VLOOKUP($AA$1,$A$1:$Z$100,2,FALSE),""))

600 :名無しさん@そうだ選挙にいこう:2009/06/24(水) 11:02:07
>>598
作業セルAB1に=MATCH(AA1,A$1,A$100,0)または=IF(AA1="","",MATCH(AA1,A$1,A$100,0))としてから
=IF(ISNUMBER($AB1),IF(INDEX(B$1:B$100,$AB1)="","",INDEX(B$1:B$100,$AB1)))
同じ計算が2度あって気持ち悪いが""と0を区別するには仕方がない。
これは作業列では解決できないと思う。

601 :名無しさん@そうだ選挙にいこう:2009/06/24(水) 11:21:55
全セル名が絶対指定になってるのに微妙な違和感が...
シートの設計に何か問題がありそうな予感

602 :名無しさん@そうだ選挙にいこう:2009/06/24(水) 11:26:20
>>601
おれは$AA$1は$AA1なんだと思う。
そして列番号の2を色々変えた無駄な式が右側にありそうな悪寒。

603 :名無しさん@そうだ選挙にいこう:2009/06/24(水) 11:30:12
>>600でエラーを空白にするの忘れた。
=IF(ISNUMBER($AB1),IF(INDEX(B$1:B$100,$AB1)="","",INDEX(B$1:B$100,$AB1)),"")
全然試してはいないんだが。

604 :名無しさん@そうだ選挙にいこう:2009/06/24(水) 14:06:13
IFERRORを使ってない件

605 :名無しさん@そうだ選挙にいこう:2009/06/24(水) 14:56:10
今回のように空白と0を区別したきゃIFERRORを使うのは無駄だよ。
もっとも無駄は絶対に入れることを信条としてる人は使ってもいいかな?

606 :名無しさん@そうだ選挙にいこう:2009/06/24(水) 15:01:03
うわあ

607 :名無しさん@そうだ選挙にいこう:2009/06/24(水) 15:36:40
とりあえず>>599でいいんでないの?

608 :名無しさん@そうだ選挙にいこう:2009/06/24(水) 15:54:00
>>607
駄目だろ?
検索したA列で見つかった隣のB列の値が空白のとき0になるのがいやだって言ってるんだぜ?

609 :名無しさん@そうだ選挙にいこう:2009/06/24(水) 16:12:08
違うと重い升。

610 :sage:2009/06/24(水) 16:16:35
こうか?
=IF(IFERROR(VLOOKUP($AA1,$A$1:$B$100,2,FALSE),"")="","",VLOOKUP($AA1,$A$1:$B$100,2,FALSE))
>>603とたいして変わらないんじゃね?
右側に似たような式があるならたしかに無駄だな。

611 :sage:2009/06/24(水) 16:19:27
IFERRORが無駄だというのはちょっと納得できないけど>>599はB列の空白が0になるから駄目だな。

612 :595:2009/06/25(木) 00:49:37
みなさんありがとうございました。

=IFERROR(1/(1/VLOOKUP()),"")

色々考えて,このようにして解決してみました。


613 :名無しさん@そうだ選挙にいこう:2009/06/25(木) 08:12:26
>>612
なんだよ、数値だけって決まってたのかよ。
俺はまた別の列の文字列を求める式もあるだろうから、文字列でも数値でも対応できる式じゃないと駄目かと思ったよ。

614 :名無しさん@そうだ選挙にいこう:2009/06/25(木) 11:36:38
FALSEオプションで探しに行って
ヒットしたら空白でしたって
どんなテーブルだよって
ことだわな

615 :名無しさん@そうだ選挙にいこう:2009/06/25(木) 12:05:52
大体>>612じゃヒットした隣が0でも""になるんじゃねーか?
>>598
>空白は空白で,0は0を表示させたいのです。
これは何だったんだ?
もうハチャメチャで分らんな。


616 :名無しさん@そうだ選挙にいこう:2009/06/25(木) 12:34:39
ハチャメチャって表現を久々に見たわ

617 :名無しさん@そうだ選挙にいこう:2009/06/25(木) 13:11:48
シッチャカメッチャカだな

618 :名無しさん@そうだ選挙にいこう:2009/06/25(木) 13:37:20
なまってるな

619 :名無しさん@そうだ選挙にいこう:2009/06/25(木) 14:47:55
やわやや〜

620 :名無しさん@そうだ選挙にいこう:2009/06/25(木) 16:09:11
商品を複数の店(C1:F1)から見積もり(C2:F2)を取って、
商品ごとに最小値を探して(G2)店名を表示(H2)させたいんですが
G2=MIN(C2:F2)
H2=INDEX($C$1:$F$1,MATCH($G2,$C2:$F2),1)
これはどこが間違っているのでしょうか?

621 :名無しさん@そうだ選挙にいこう:2009/06/25(木) 16:25:56
>>620
おかしいのはこの部分
MATCH($G2,$C2:$F2)
この書き方だと、数字が順番にソートされていないとエラーになる。
順番がバラバラの中から検索する時は
MATCH($G2,$C2:$F2,0)

622 :名無しさん@そうだ選挙にいこう:2009/06/25(木) 16:26:13
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 "条件 データの入力規則には OR 演算、AND 演算、配列定数は使用できません"

http://oshiete1.goo.ne.jp/qa3975835.html
http://officetanaka.net/excel/function/tips/tips05.htm
のように入力規則のリストを複数の表から選ぼうとするとエラーになります
エラーの内容は検索キーワードの通りです

去年までは同じようにできていたのですが、この1年で仕様が変わったのでしょうか
また、同様のことをするにはどうしたらいいでしょうか
よろしくお願いします

623 :名無しさん@そうだ選挙にいこう:2009/06/25(木) 16:30:06
>>620
そういう一覧表は縦に並べた方がいいぞ。
店名=A3:A6
金額=B3:B6
Excelはもともとデータを縦に並べるように設計されてるから。
まあほとんどの関数はどっちでも使えるようになってるけど、
例えばオートフィルタなんかは縦方向にしか作れないでしょ?

624 :名無しさん@そうだ選挙にいこう:2009/06/25(木) 16:51:48
>>621
なるほど、確かに順番になってるところだけが表示されます。
しかし
=INDEX($C$1:$F$1,MATCH($G2,$C2:$F2,0),1)
と書き直してもやはりだめでした。

>>623
オートフィルタはよく使いますが、それは気づきませんでした。
品名が横に並んだ一覧を渡すのも変かなと思い縦に並べましたが。。。
以後そうします。

625 :名無しさん@そうだ選挙にいこう:2009/06/25(木) 17:07:16
>624 行と列が逆
=INDEX(C1:F1,1,MATCH(G2,C2:F2,0))

626 :名無しさん@そうだ選挙にいこう:2009/06/25(木) 17:32:43
>>625
出来ました。
行列がわからなくなってたみたいです。
>>623さんもヒントありがとうございました。

627 :名無しさん@そうだ選挙にいこう:2009/06/25(木) 20:36:04
1列または1行の場合は引数は一つに省略できるからね。
一応>>625みたいなことは理解した上で省略すればいいだろう。
=INDEX(C1:F1,MATCH(G2,C2:F2,0))

628 :名無しさん@そうだ選挙にいこう:2009/06/25(木) 21:19:18
フォルダ内にある一番最後に保存したブックを開きたいです。
だれか直してくださぁ〜い。

Sub 最新のブックを開きましょう()

DIR = "C:\Documents and Settings\Maririn\Excel\Data\"

For Each WB In Workbooks
T1 = FileDateTime(DIR & WB)
TWB = WB
If T1 > T2 Then
T2 = T1
NWB = TWB
End If
Next
Workbooks.Open Filename:=DIR & NWB
End Sub

629 :名無しさん@そうだ選挙にいこう:2009/06/25(木) 21:59:33
Workbooks は開かれているすべてのブックを表す

とあるから、開いてないと駄目みたい。
ファイル操作関数を当れば?


630 :名無しさん@そうだ選挙にいこう:2009/06/25(木) 22:45:44
>>628
かなり無駄なコードだと思うけど一応動く。

Sub 最新のブックを開きましょう()
Dim FSO, LastUpdate1, LastUpdate2
Dim PathName As String
Dim BookName As String
Dim MyBook As String

Set FSO = CreateObject("Scripting.FileSystemObject") 'File情報取得準備
PathName = "C:\Documents and Settings\Maririn\Excel\Data\"
BookName = Dir(PathName & "*.xls")
MyBook = BookName
LastUpdate1 = FSO.GetFile(PathName & BookName).DateLastModified
Do Until BookName = ""
LastUpdate2 = FSO.GetFile(PathName & BookName).DateLastModified
If LastUpdate1 < LastUpdate2 Then
LastUpdate1 = LastUpdate2
MyBook = BookName
End If
BookName = Dir()
Loop
Workbooks.Open PathName & MyBook
End Sub

631 :名無しさん@そうだ選挙にいこう:2009/06/25(木) 23:09:27
628でぇす。
630さん、ありがとね。
みたことない単語がいっぱいです。

632 :名無しさん@そうだ選挙にいこう:2009/06/25(木) 23:13:56
とりあえず、「まりりん」に釣られて優しくレスしたやつがいる確率、20%

633 :名無しさん@そうだ選挙にいこう:2009/06/26(金) 09:43:34
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 sumproduct ワイルドカード

複数条件(3つ)の値を合計したいのですが、条件は下記通りです。
Aの列は文章が入っており、その中にある「発注完了」というワードが条件
Bの列は文章が入っており、その中にある「郵送対応」というワードが条件
C列は完了という文字だけです。

そのため、AとBの列はワイルドカードが必須なのですが、どうしてもうまくいきません

=sumproduct((ISNUMBER(FIND("発注完了",A2:A1000)*AND(ISNUMBER(FIND("郵送完了",B2:B1000) )*(C2:C1000="完了"))
など、かなり試しましたがカウント出来ませんでした・・・orz
よろしくお願いします

634 :名無しさん@そうだ選挙にいこう:2009/06/26(金) 10:00:34
なぜに、ワイルドカード必須と思ったか?
興味有る。


635 :名無しさん@そうだ選挙にいこう:2009/06/26(金) 10:10:35
>>633
所で何を合計したいの

636 :名無しさん@そうだ選挙にいこう:2009/06/26(金) 10:14:05
>633
sumproduct云々は別として、方向性は大体あってる
=SUMPRODUCT(ISNUMBER(FIND("発注完了",A2:A1000))*ISNUMBER(FIND("郵送完了",B2:B1000))*(C2:C1000="完了"))

637 :名無しさん@そうだ選挙にいこう:2009/06/26(金) 10:19:34
エクセルVBAで扱う「セル」や「ワークシート」は、オブジェクト指向でいう
「オブジェクト」そのものと考えて間違いないでしょうか?

638 :名無しさん@そうだ選挙にいこう:2009/06/26(金) 10:22:59
>>636
うまく行きました、ありがとうございます。

>>634
AとBのセルは発注書からのコピペなので、文字列だけ抽出したかったのです。
厳密にはワイルドカードではありませんでしたが。。

639 :名無しさん@そうだ選挙にいこう:2009/06/26(金) 11:37:14
>>637
そうです。
ワークシートの上にある「Excelアプリケーション」「ブック」も、
ワークシートとセルの間にある「Range」も、みんなオブジェクトです。

640 :名無しさん@そうだ選挙にいこう:2009/06/26(金) 13:57:04
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

今、セルA2には
=A1+ROUNDDOWN(A1/7,0)*ROUNDDOWN(A1/7,0)
という計算式が入っており
セルA1に数字(1以上の整数)を入れると結果が出るようになっています
たとえばA1に77と入れればA2に198が返り、114と入れれば370が返ります

ここで問題です
全く逆の関数を作りたいのです

つまりたとえばB2に198と入れれば77が返り、370と入れれば114が返る
そんな計算式をB1に作りたいのですが
なんと書けばいいでしょうか?

641 :640:2009/06/26(金) 14:17:05
すみません自己解決してしまいました・・・

=B2-ROUND(SQRT(49+4*B2)-7/2,0)*ROUND(SQRT(49+4*B2)-7/2,0)
でうまくいったみたいです

高スキルの人から見ればこの式には無駄が多いかもしれませんが
あまり気にしないことにします

642 :名無しさん@そうだ選挙にいこう:2009/06/26(金) 14:22:39
【1 OSの種類         .】 Windows Vista SP2
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 Excel 2007 テーブル 赤色ならない 等

Excel 2007で書式の「通貨」を指定することによって、マイナスの場合、文字を赤色にする設定にしているのですが、
テーブル内だと文字が赤色になりません。

どのようにしたら、テーブル内で色を反映させることができますでしょうか?

643 :642:2009/06/26(金) 14:26:30
いろいろ試していたら、解決しました。

テーブルを一旦、「デザインタブ」で「範囲に変換」して、再度「挿入タブ」→「テーブル」としたところ、
無事にマイナスが赤色になりました。
多分コピペしたときにおかしな書式カナにかがにつていたのしょうかす。

無事にかいけつしまそた。
あいごつあました。

644 :640:2009/06/26(金) 14:26:43
あれ?やっぱりダメかも・・・数字によっては答えが間違っちゃいますね
うーん・・・

645 :名無しさん@そうだ選挙にいこう:2009/06/26(金) 14:43:46
>>634
ワイルドカードというのが何かをわかっていない為としか考えられない。

646 :名無しさん@そうだ選挙にいこう:2009/06/26(金) 14:56:11
ワイルドなカードだよ

647 :名無しさん@そうだ選挙にいこう:2009/06/26(金) 15:38:13
>>639
VBAではセルやワークシートをオブジェクトと呼ぶけど
オブジェクト指向って話になるとそんな単純なものでは無いね。

648 :名無しさん@そうだ選挙にいこう:2009/06/26(金) 15:57:51
>>644
上の式は切り捨てしてるから、それを復元することは出来

649 :名無しさん@そうだ選挙にいこう:2009/06/26(金) 16:23:00
>>639>>647
ありがとうございます
やはりオブジェクトは目に見えるほうが扱いやすいですね〜

650 :名無しさん@そうだ選挙にいこう:2009/06/26(金) 16:28:19
>>649
え?自分でどういう質問したか意味がわかって言ってるの?
中途半端な理解しかないなら難しい言葉は安易に使わない方がいいよ。

651 :名無しさん@そうだ選挙にいこう:2009/06/26(金) 16:43:05
>640を関数でやるのは無理だな。
マクロでユーザー関数が吉。


652 :名無しさん@そうだ選挙にいこう:2009/06/26(金) 18:21:47
>640
元の式で切り捨て(ROWNDDOWN)をしない場合の逆を求める式はこういうふうになります。
※A1セルの方をχ、A2セルの方をуとします。
у=χ+(χ^2)/(у^2) これを変形していくと
7^2*у+(7^4)/(2^2)=χ^2+7^2*χ+(7^4)/(2^2)
           ={(χ+(7^2/2)}^2 これを左右逆転して平方根をとると
χ+(7^2/2)=SQRT{7^2+(7^4/2^2)}
     ↓
χ=SQRT{7^2+(7^4/2^2)}−(7^2/2)
これを検証するために、A2から下に1からオートフィルで300程度まで
B2に=A2+ROUNDDOWN(A2/7,0)*ROUNDDOWN(A2/7,0)の計算式を入れて下へコピー、
C2に逆を求める計算式として=SQRT(7^2*B2+(7^4/2^2))-(7^2/2)の計算式を入れて下へコピーすると、
A列の数字が7の倍数のときに限りA列=C列となります。それ以外の場合は微妙に異なります。
単に+1して切り捨てればいいわけでもありません。

>651さんのいうようにVBAを使うか、ここで作った表からVLOOKUPを使って求めるかということに
なると思います。

ついでに、B列の増え方の規則性を見るために、D2セルに=B3-B2の計算式を入れて下にコピーしてみると
おもしろいです。

653 :652:2009/06/26(金) 18:25:28
ちょっと抜けてた。やり直し
>640
元の式で切り捨て(ROWNDDOWN)をしない場合の逆を求める式はこういうふうになります。
※A1セルの方をχ、A2セルの方をуとします。
у=χ+(χ^2)/(у^2) これを変形していくと
7^2*у+(7^4)/(2^2)=χ^2+7^2*χ+(7^4)/(2^2)
            ={(χ+(7^2/2)}^2 これを左右逆転して平方根をとると
χ+(7^2/2)=SQRT{7^2*у+(7^4/2^2)} ←ここを訂正しました
     ↓
χ=SQRT{7^2*у+(7^4/2^2)}−(7^2/2)   ←ここを訂正しました
これを検証するために、A2から下に1からオートフィルで300程度まで
B2に=A2+ROUNDDOWN(A2/7,0)*ROUNDDOWN(A2/7,0)の計算式を入れて下へコピー、
C2に逆を求める計算式として=SQRT(7^2*B2+(7^4/2^2))-(7^2/2)の計算式を入れて下へコピーすると、
A列の数字が7の倍数のときに限りA列=C列となります。それ以外の場合は微妙に異なります。
単に+1して切り捨てればいいわけでもありません。

>651さんのいうようにVBAを使うか、ここで作った表からVLOOKUPを使って求めるかということに
なると思います。

ついでに、B列の増え方の規則性を見るために、D2セルに=B3-B2の計算式を入れて下にコピーしてみると
おもしろいです。

654 :652:2009/06/26(金) 18:29:27
間違いがまだあった orz
誤 у=χ+(χ^2)/(у^2) これを変形していくと
正 у=χ+(χ^2)/(7^2) これを変形していくと


655 :名無しさん@そうだ選挙にいこう:2009/06/26(金) 18:45:03
こんにちは。

B列のB3セル以降の数字の合計を、B2セルに集計したいのですが、
B列の終わりが決まっていません。(定期的に増える予定)
「 =SUM(B3:B9999) 」とかでもいいのですが、もちょっと格好よく
列全体の指定「 B:B 」を応用してこれをやる方法ありますでしょうか?
よろしくお願いいたします。

656 :名無しさん@そうだ選挙にいこう:2009/06/26(金) 18:54:23
>>640
=A1+ROUNDDOWN(A1/7,0)*ROUNDDOWN(A1/7,0)
この式の答えになりえない整数はたくさんある。
なので、条件判定も必要になり式がくそ長くなりますが、ご容赦を。
なりえない分はFALSEになるようにしました。

=IF((A1-INT((-7+SQRT(49+4*A1))/2)^2-7*INT((-7+SQRT(49+4*A1))/2))>6,FALSE,A1-INT((-7+SQRT(49+4*A1))/2)^2)

657 :名無しさん@そうだ選挙にいこう:2009/06/26(金) 19:35:55
>>655
=SUM(B3:B65536)
2007なら=SUM(B3:B1048576)
もっとも2007ならテーブルとかいうのがあったかな?

658 :名無しさん@そうだ選挙にいこう:2009/06/26(金) 19:41:19
>655
=SUM(B:B)-SUM(B1:B2)

659 :名無しさん@そうだ選挙にいこう:2009/06/26(金) 19:44:01
>656
どうやら出来たみたいだね。(パチパチ

>657
それ以外でと言っておる。(ブーブー

660 :655:2009/06/26(金) 20:28:00
>>657-659
どもです。

>>658さんのをB2に入れてみたのですが、
なぜか計算結果が0になってしまいました。

661 :名無しさん@そうだ選挙にいこう:2009/06/26(金) 20:32:36
A3セルに '09.06.26 と入れたんですが、' が出ません。
どう書けばいいの?
Range("A3") = "'09.06.26"

662 :名無しさん@そうだ選挙にいこう:2009/06/26(金) 20:38:19
>>661
シングルクォーテーションを2個
Range("A3") = "''09.06.26"

663 :名無しさん@そうだ選挙にいこう:2009/06/26(金) 20:38:22
>>661

''09.6.26

664 :名無しさん@そうだ選挙にいこう:2009/06/26(金) 20:40:47
あ、かぶったorz そのうえ6じゃなくて06だったorz

' が一個だと、「その後の値を文字列にする」という意味になるので、
09.06.26が文字列になってるはず。

665 :名無しさん@そうだ選挙にいこう:2009/06/26(金) 20:43:28
>>662-664
ありがと。
やりたかったのは、Range("A3") = Format(Date, "''yy.mm.dd") です。

666 :名無しさん@そうだ選挙にいこう:2009/06/26(金) 21:32:36
>655
ごめん、よく読まずに答えちゃって。
循環参照になるから、2003なら
ツール→オプション→計算方法→反復計算 にチェック入れて、
回数適当に1とかいれると計算できる。

でも>657のやり方の方が結局いいと思うよ。

667 :655:2009/06/26(金) 22:21:40
>>666
なるほど、わかりました
皆様どうもでした。

668 :tetsuo:2009/06/26(金) 23:04:33
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Google エクセル テキストファイル 取り込み

テキストファイルの取り込みでお聞きします。
30万行あるテキストファイルをウイザードで
取り込む時、行数が多いので
すべて取り込めません。
3万行くらいでエクセルシートに1列、2列・・・と分けて
すべて1作業で取り込む方法はありませんか?

669 :名無しさん@そうだ選挙にいこう:2009/06/26(金) 23:15:49
他のブックの列をコピぺしてますが、ブックによってコピーしたい列の位置が違うため
タイトル行を読みとっています。このままでも動くようになりましたが、Doの中が重複した
書き方になってしまいました。もっと完結な方法があれば教えてください。

コピー元にある "コード" の列を選び、2行目からのデータをコピー先のB2へ値だけ貼り付けます。
同様に、商品名、単価などを貼り付けていきます。

Sub コピペ()
Dim i As Integer, WB As Workbook, WB1 As String, WB2 As String

WB1 = ThisWorkbook.Name
For Each WB In Workbooks
 If WB.Name <> WB1 Then
  WB2 = WB.Name
 End If
Next

670 :669の続き:2009/06/26(金) 23:16:35
With Workbooks(WB2).Worksheets("Sheet1")
i = 1
Do While .Cells(1, i) <> ""
 If .Cells(1, i) = "コード" Then
  .Range(.Cells(1, i), .Cells(65536, i).End(xlUp)).Copy
  Workbooks(WB1).Worksheets("Sheet1").Range("B2").PasteSpecial _
  Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
 End If
 If .Cells(1, i) = "商品名" Then
  .Range(.Cells(1, i), .Cells(65536, i).End(xlUp)).Copy
  Workbooks(WB1).Worksheets("Sheet1").Range("C2").PasteSpecial _
  Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
 End If
 If .Cells(1, i) = "単価" Then
  .Range(.Cells(1, i), .Cells(65536, i).End(xlUp)).Copy
  Workbooks(WB1).Worksheets("Sheet1").Range("D2").PasteSpecial _
  Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
 End If
 i = i + 1
Loop
End With
End Sub

671 :名無しさん@そうだ選挙にいこう:2009/06/26(金) 23:49:53
>>670
以下でどう?

Sub コピペ()
  Dim i As Integer, WB As Workbook, WB1 As String, WB2 As String

  WB1 = ThisWorkbook.Name
  For Each WB In Workbooks
    If WB.Name <> WB1 Then
      WB2 = WB.Name
    End If
  Next
  With Workbooks(WB2).Worksheets("Sheet1")
    i = 1
    Do While .Cells(1, i) <> ""
      Select Case .Cells(1, i).Value
        Case "コード"
          .Range(.Cells(1, i), .Cells(65536, i).End(xlUp)).Copy
          .Range("B2").PasteSpecial xlValues
        Case "商品名"
          .Range(.Cells(1, i), .Cells(65536, i).End(xlUp)).Copy
          .Range("C2").PasteSpecial xlValues
        Case "単価"
          .Range(.Cells(1, i), .Cells(65536, i).End(xlUp)).Copy
          .Range("D2").PasteSpecial xlValues
      End Select
      i = i + 1
    Loop
  End With
End Sub

672 :671:2009/06/27(土) 00:26:03
ごめん、間違えたorz

Sub コピペ()
  Dim i As Integer, WB As Workbook, WB1 As String, WB2 As String
  Dim mySht As Worksheets

  WB1 = ThisWorkbook.Name
  For Each WB In Workbooks
    If WB.Name <> WB1 Then
      WB2 = WB.Name
    End If
  Next

  Set mySht = Workbooks(WB1).Worksheets("Sheet1")
  With Workbooks(WB2).Worksheets("Sheet1")
    i = 1
    Do While .Cells(1, i) <> ""
      Select Case .Cells(1, i).Value
        Case "コード"
          .Range(.Cells(1, i), .Cells(65536, i).End(xlUp)).Copy
          mySht.Range("B2").PasteSpecial xlValues
        Case "商品名"
          .Range(.Cells(1, i), .Cells(65536, i).End(xlUp)).Copy
          mySht.Range("C2").PasteSpecial xlValues
        Case "単価"
          .Range(.Cells(1, i), .Cells(65536, i).End(xlUp)).Copy
          mySht.Range("D2").PasteSpecial xlValues
      End Select
      i = i + 1
    Loop
  End With
End Sub

673 :名無しさん@そうだ選挙にいこう:2009/06/27(土) 00:35:55
もひとつ
×Dim mySht As Worksheets
○Dim mySht As Worksheet

674 :名無しさん@そうだ選挙にいこう:2009/06/27(土) 02:31:33
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 エクセル オブジェクト 検索

マクロを埋め込んだオブジェクトの位置を簡単に検索する方法はないでしょうか。
オブジェクトの名前は下記のようにマクロの記述からわかります。
  チェック100_Click()
各シートに多数のオブジェクトがあり、かつシートも多数あるので
TABキーなどで検索するのが大変です。
ワークシートのオブジェクト名を一覧表示する、あるいは
オブジェクトの名前からオブジェクトを探す方法があれば教えてください。

675 :名無しさん@そうだ選挙にいこう:2009/06/27(土) 10:20:59
>>674
プロパティウィンドウの一番上。
ドロップダウンリストにオブジェクトの一覧があるから
選択すればフォームデザイナの中で強調表示される。

676 :名無しさん@そうだ選挙にいこう:2009/06/27(土) 10:25:40
>>674
ワークシートに貼り付けたコントロールなら、コードデザイナのタイトルバーに
シート名が出てるはずだけど。
Caption、Top、Leftプロパティあたりを見ればどこにあるどんなボタンかもわかる。

677 :名無しさん@そうだ選挙にいこう:2009/06/27(土) 11:06:26
ワークシートに貼り付けたコントロールの一覧(オブジェクト名と座標)を出す
Sub a()
  For Each w In Worksheets
    Debug.Print w.Name
    For Each o In w.OLEObjects
      Debug.Print o.Name, o.Top, o.Left
    Next
  Next
End Sub

678 :676:2009/06/27(土) 11:09:18
補足
あと、デザインモードじゃないとプロパティウィンドウにコントロールは出ないよ

679 :名無しさん@そうだ選挙にいこう:2009/06/27(土) 13:16:56
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 少々
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 エクセル マクロ マクロを消して保存

新垣結衣.xlsにマクロを書いて、集計したものを新垣帳.xlsで保存するとき
新垣帳.xlsのマクロを消したいんですが、ググっても例が見つかりません。
今は手動で消していますが、マクロでできますか?

680 :名無しさん@そうだ選挙にいこう:2009/06/27(土) 13:21:31
マクロを消すマクロってのは矛盾してるなあ。
新規ブックにデータを全部コピーして、そちらを保存するっていうのが定番かな。
Excel2007だと保存するときにマクロを含めるかどうか選択できるんだけど。

681 :名無しさん@そうだ選挙にいこう:2009/06/27(土) 13:23:28
>>679
十六茶でスッキリしてください。

682 :名無しさん@そうだ選挙にいこう:2009/06/27(土) 13:26:53
XPのMicrosoft FAXを使って、電話番号指定でFAXを送るマクロって可能ですか?

683 :679:2009/06/27(土) 13:47:28
>>680
シートコピーも考えたんですが、問題がありまして・・・
・大半のシート名が週ごとに変わるので、Sheets(Array("NAHA", 略)).Copyで書けない。
・塗りつぶしの色を淡色系に変えてるので、新規ブックだとセルの色が変わってしまう。


>>681
三矢サイダーじゃだめですか?

684 :名無しさん@そうだ選挙にいこう:2009/06/27(土) 13:56:26
>>682
可能です

685 :名無しさん@そうだ選挙にいこう:2009/06/27(土) 13:56:43
2000ならvbaprojectで調べればいろいろみつかんじゃね?
http://support.microsoft.com/kb/260993/ja
とか
この辺はセキュリティ的に致命的だから新しいバージョンだといろいろ制限されてんじゃねーかな

686 :名無しさん@そうだ選挙にいこう:2009/06/27(土) 14:01:41
>>683
ワークシートコレクションを使えばシート名が変わっても関係ない
色もActiveWorkbook.Colorsで簡単に再設定できる

それよりも、既存のシートにいきなりマクロを追加しちゃうような使い方をなおすべき

687 :679:2009/06/27(土) 14:30:32
>>686
ワークシートコレクションについて調べてみましたが、これってWorksheets(1)とか
書くわけですよね。不要なシートを選ばないようにもできますか?

色は33箇所だけなので、ActiveWorkbook.Colors(38) = RGB(255, 249, 249)とか
書けばいいですか?

それから、
>既存のシートにいきなりマクロを追加しちゃうような使い方
の意味がわかりません。
Sheets(Array("NAHA", 略)).Copyって、マクロを追加しちゃうんですか?

688 :679:2009/06/27(土) 15:35:51
i = Worksheets.Count
ReDim WS(1 To i)
For j = 1 To i
WS(j) = Sheets(j).Name
Next
Sheets(WS).Select
ActiveWorkbook.SaveAs Filename:="C:\Documents and Settings\yui\My Documents\新垣帳.xls"
これで大丈夫っぽいです。

689 :名無しさん@そうだ選挙にいこう:2009/06/27(土) 15:41:15
>>687
ワークシートは連番のほかに名前でも指定できる。
WorkSheets("Sheet1")
みたいに書く。
名前を見て除外するかどうかチェックすればいい。

690 :名無しさん@そうだ選挙にいこう:2009/06/27(土) 17:10:51
A列の一番下の行数はA = Range("A65536").End(xlUp).Row
2行目の一番右の列はどう書けばいいでそ?


691 :名無しさん@そうだ選挙にいこう:2009/06/27(土) 17:32:23
Range("IV2").End(xlToLeft).Colulmn

692 :名無しさん@そうだ選挙にいこう:2009/06/27(土) 17:34:35
ありゃ lが入ってしもた、、、orz

693 :名無しさん@そうだ選挙にいこう:2009/06/27(土) 18:54:39
d

694 :名無しさん@そうだ選挙にいこう:2009/06/27(土) 19:12:41
html・・・・
というのをコピペで貼り付けて、リンクとして表示し
クリックしたらブラウザで開くというのをやりたいのですが
どうすればいいですか?

htmlというのは複数あります。とりあえずコピペしたら
リンクになりクリックしたらブラウザで開くという動作に
したいと思っています。

695 : ◆unko14464g :2009/06/27(土) 19:47:53
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 ExcelXP

A1セルに1、B1セルに0.0104、C1セルに=A1*B1、D1セルに1、E1セルに0.0103、
F1セルに=D1*E1、G1セルに=C1-F1と入力したとき、G1セルには0.0001と表示される。

ところが、G1セルの桁数を増やしていくと・・・
0.0001000000000000

0.0010000000000000

0.000099999999999999

0.0000999999999999994

0.00009999999999999940

0.000099999999999999400…

なんで?

696 : ◆unko14464g :2009/06/27(土) 19:50:08
x 0.0010000000000000
o 0.00010000000000000

697 :名無しさん@そうだ選挙にいこう:2009/06/27(土) 19:52:36
>>694
セルを右クリックしてハイパーリンク
又はハイパーリンク関数
>>695
小数誤差
ttp://pc.nikkeibp.co.jp/pc21/special/gosa/eg1.shtml
http://support.microsoft.com/kb/813530/ja


698 : ◆unko14464g :2009/06/27(土) 20:28:52
>>697
どもw
695の例ではないんだけど、=EXACT(C1,F1)としたときFALSEを返すのがあって
値をみたら-0.00000になってますた。
仕様だと思って諦めますわ。

699 :名無しさん@そうだ選挙にいこう:2009/06/27(土) 20:37:59
正確な数を求めたいなら10000とか数を大きくしてから計算するといいよ
整数なら小数誤差は起こらない

700 :名無しさん@そうだ選挙にいこう:2009/06/27(土) 20:59:33
エクセル2007 アンインストールしようにもファイルが壊れてできません
無理矢理削除する方法知っていますか

701 :名無しさん@そうだ選挙にいこう:2009/06/27(土) 21:09:20
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2000・2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 不可
【5 検索キーワード     】 時給計算 ROUND

=IF(A1="","",ROUNDDOWN(A1*24*4000,-2))
A1とは分です。(表示形式 ユーザー定義[mm])
1時間4000円なので 
40分2600円と計算されるようにしています。
しかし30分だと1900円になってしまいます。
本当は2000円にならなければいけません。
どうして誤差がでるのでしょうか。





702 :名無しさん@そうだ選挙にいこう:2009/06/27(土) 21:33:02
>>684
プリンタを指定するまでは出来たのですが
番号はどうやればよいのでしょう?

703 :名無しさん@そうだ選挙にいこう:2009/06/27(土) 21:39:44
>>701
30分(0:30)だと2000(円)になりますが?

704 :名無しさん@そうだ選挙にいこう:2009/06/27(土) 21:46:23
>>703
C1 15:30:00(出発)
D1 16:00:00(終了)
E1 0:00:00 (休憩)
F1 1(人数)
G1
=IF(OR(C1="",D1=""),"",IF(D1-C1<0,(D1-C1-E1+1)*F1,(D1-C1-E1)*F1))
H1 
=IF(G1="","",ROUNDDOWN(G1*24*4000,-2))

だと1900円になるのです。
言葉足らずで申し訳ありません。


705 :名無しさん@そうだ選挙にいこう:2009/06/27(土) 22:01:50
>>704
カウントの仕方が間違ってネカ?
時給なら、終了するのは16:00ではなく、16:01でないとw

706 :名無しさん@そうだ選挙にいこう:2009/06/27(土) 22:04:58
これも小数誤差だな
1999.999…を切り下げてるんだ

707 :名無しさん@そうだ選挙にいこう:2009/06/27(土) 22:08:08
>>700
強制 アンインストールなどでぐぐるといい
ttp://www.vector.co.jp/soft/win95/util/se259857.html


708 :名無しさん@そうだ選挙にいこう:2009/06/27(土) 22:13:50
>704
エラー回避いれてないから直して
=(HOUR(D1-C1-E1)+MINUTE(D1-C1-E1)/60)*F1*4000

709 :名無しさん@そうだ選挙にいこう:2009/06/27(土) 22:14:02
>>704
C,D,Eの数値を10^8してから計算すれば誤差はでない。確認済み。

710 :名無しさん@そうだ選挙にいこう:2009/06/27(土) 22:26:55
>>705
間違ってるのはお前

711 :名無しさん@そうだ選挙にいこう:2009/06/27(土) 22:31:54
>>708
>>709
ありがとうございました。
ご参考にして解決いたしました。



712 :名無しさん@そうだ選挙にいこう:2009/06/27(土) 22:38:19
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 不明

いま、エクセルにデータをまとめているのですが
1行目にデータの種類(家計簿で言うならA列に日付、B列に出費、C列に金額という感じです)を打ち込んでいます。
データの種類が増えてきて下に伸びてくると1行目が表示されなくなって困るので常に表示する方法はありますか?

713 :名無しさん@そうだ選挙にいこう:2009/06/27(土) 22:39:40
>>712
ウィンドウ→ウイントウ枠の固定


714 :712:2009/06/27(土) 22:44:05
>>713
ありがとうございました。

715 :名無しさん@そうだ選挙にいこう:2009/06/27(土) 23:15:00
>>710
うちの会社は8〜17時だけど、8:00に出社(打刻)して17:00に退社(同)すると−0:15になるお

716 :名無しさん@そうだ選挙にいこう:2009/06/27(土) 23:17:53
それは通報しとけ

717 :名無しさん@そうだ選挙にいこう:2009/06/27(土) 23:18:41
レコーダーの設定がおかしいんじゃないか

718 :名無しさん@そうだ選挙にいこう:2009/06/27(土) 23:28:38
いや、フレックスで15分単位だからまちがってないお


719 :名無しさん@そうだ選挙にいこう:2009/06/28(日) 00:10:36
助けてください。

【1 OSの種類         .】 Windowsビスタ
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 △
【5 検索キーワード     】エクセル excel 一度(一回で、一発で)に閉じない

症状:エクセルのブックをひとつだけ開く→タイトルバーの×ボタンを押す
   →ブックは閉じるが、何もブックが表示されていない枠?だけ残る
   (ちょうど、メニューバーの×ボタンを押した状態と同じ灰色の画面になる)

1、個人マクロのPERSONALブックは、非表示にしている
2、原因と思われるのは、個人マクロを記録したらPERSONALの画面が
  表示されてしまったので、あわててXLSTARTフォルダや、PERSONALの
  ファイルを削除した。(確か、その時PERSONALのファイルが削除できなかった)
  状況が変わらず、さらに、マクロのメニュー画面で個人マクロを削除。

  その後調べて、PERSONALブックを非表示にする方法を知ったが、
  それは非表示に出来たが、上記のようにエクセルの枠?だけが残ってしまう。

3、会社のPCなのですぐに試せないのですが、お願いします。
  (自宅のPCはEXCEL2003なので、再現できません)

720 :名無しさん@そうだ選挙にいこう:2009/06/28(日) 00:12:15
2007って、そんなもんじゃなかったっけ?
officeボタンかなんかの閉じるじゃないと一括で閉じないんじゃね?

721 :719:2009/06/28(日) 00:23:54
>>720さん

もともとは、一回で閉じてました。
個人マクロを記録してから二段階で閉じるように変わってしまったのです。
エクセルは仕事で頻繁に使うので、すごい不便になってしまいました・・・

しかも、共用で大勢で使っているので、オフィスボタンでのエクセル終了や、
シフト+×のような一手間かかる操作を周知させるのは難しく、ただ、元に
戻せないかと相談させてもらってます。

722 :719:2009/06/28(日) 00:43:22
あ、2つ以上のブックを開いたときは、やっぱり個別に閉じてました。
それはそれで、まったく構わないんですが。

今まで
Aブック、Bブック→Aブック閉じる→Bブック残る

現在
Aブック、Bブック→Aブック閉じる→Bブック残ると共に、Aブックは閉じるが枠?が残る
→A枠を閉じるのにもう一度×をクリック

723 :名無しさん@そうだ選挙にいこう:2009/06/28(日) 01:01:43
【1 OSの種類         .】 Windows Vista
【2 Excelのバージョン   】 Excel2007

2009/6/28の表示をH21(2009).6.28と表示したいときどうしたらいいですか?
TEXT関数じゃなく表示形式でお願いしたいのですが。
あるところに表示形式をge[$-409](yyyy).m.dとすればよいと書かれてますが
H2009(2009).6.28と表示されます。

724 :名無しさん@そうだ選挙にいこう:2009/06/28(日) 01:32:37
"H"e.(yyyy).m.dとかじゃダメかな?

725 :名無しさん@そうだ選挙にいこう:2009/06/28(日) 01:43:57
>>723
当方2002環境ですがge[$-409](yyyy).m.dでおkでしたが2007環境だとダメなのかな?

726 :723:2009/06/28(日) 07:07:47
>>724
平成だけならいいのですが昭和や大正もあるんで....。
>>725
2002では出来るんですか。
2007では駄目なんですよね。

727 :名無しさん@そうだ選挙にいこう:2009/06/28(日) 07:13:36
>>723
2000だと
ge(yyyy).m.d
でいけるんだけどなー。

728 :723:2009/06/28(日) 07:27:53
>>727
サンクス。
バージョンによってころころ仕様が変わってるんですね。
2007ではyyyy(ge)とすれば2009(H21)と表示されますがgeを先に持ってくると年が同じに表示されて駄目ですね。

まぁ正直言うとこんな表示しないのですが某所で書かれてるようにやってみても出来なかったもので。

729 :725:2009/06/28(日) 09:35:49
>>723
ge[$-xxx]yyyy.m.dのxのところをいじってみては?
いまそこ弄ってみると表示が変わったりしたので。

730 :名無しさん@そうだ選挙にいこう:2009/06/28(日) 12:09:54
今北
>701みたいな少数誤差は四捨五入をかますが一般的じゃまいか。
=IF(G1="","",ROUNDDOWN(ROUND(G1*24*4000,0),-2))

731 :名無しさん@そうだ選挙にいこう:2009/06/28(日) 12:11:14
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 EXCEL 2byteコード

任意の1文字が2byteコードかどうか知りたいの
ですが、数式はどのようになるのでしょうか?

ある文字列の2byte目までと3byte目以降を別のセルに
表示したいのですがMIDBでは2byte目が2byteコードの
場合におかしくなります。

2byte目が2byteコードの場合は1byte目までと2byte目
以降としたいのですがIFの判定にはどのような数式が
あるのでしょうか?

A1="1□3"
B1=LEFTB(A1,2)
C1=IF(●●●,MIDB(A1,3,LENB(A1),MIDB(A1,2,LENB(A1))

よろしくお願いします。


732 :719:2009/06/28(日) 12:21:34
お〜い
俺のことも忘れないで

733 :名無しさん@そうだ選挙にいこう:2009/06/28(日) 12:33:50
>>731
普通に取り出してLENBで長さを見る
=IF(AND(LENB(LEFT(A1,1))=1,LENB(MID(A1,2,1))=2),"2バイト目が2バイトの先頭","")

734 :名無しさん@そうだ選挙にいこう:2009/06/28(日) 12:38:05
>731
2byte目のコードが 0x20 〜 0x7E 以外かつ 0xA1 〜 0xDF 以外

735 :731:2009/06/28(日) 12:51:01
>>733

2byte目というのは実際には40byte目で且つそれ以前にも1byteコード
が存在するんで MID(A1,□,1) は使えないんですよ。
簡略化して書いて申し訳ない。

>>734

MIDBで1byte取り出すと2byteコードだった場合には0x20が
返るんですよ・・・

736 :名無しさん@そうだ選挙にいこう:2009/06/28(日) 12:51:34
【1 OSの種類         .】 WindowsXP SP3
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Excel カーソルの色

Googleで検索すると様々な方法が出てきましたが,今ひとつ自分の希望とは異なりました。

(1) カーソルがあるセルだけに背景色をつけたい。(行,列にも色がついた十字ではなく。)
(2) 1つのシードだけでなく,ブック内の全てのシートで行いたい。
   なので,Thisworkbookに記述できると良い。(設定すべきシートが多いので)
   なので,条件付書式を使う方法は避けたい。(設定する箇所が多いので)

よろしくお願いします。



737 :名無しさん@そうだ選挙にいこう:2009/06/28(日) 13:04:55
追記
(3) 元々セルに背景色がついているときは,カーソルがずれたらもとの背景色に戻る。

738 :731:2009/06/28(日) 13:06:45
>>733

すみません。勘違いしておりました。
その案を戴きました。(LEFTの意図が不明ですが・・・)

=IF(LENB(MID(A1,2,1))=1,MIDB(A1,3,LENB(A1)),MIDB(A1,2,LENB(A1)))

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

739 :名無しさん@そうだ選挙にいこう:2009/06/28(日) 13:23:15
>>735
40バイト目に境界が存在するか調べる
A20:A40は20〜40の値を作るためなので意味は無い
=IF(SUMPRODUCT(1*(40=LENB(LEFT(A1,ROW(A20:A40))))),"","2バイト文字あるいは40バイト未満")

740 :名無しさん@そうだ選挙にいこう:2009/06/28(日) 13:50:25
答えがでて終わってるのにわざわざ披露するヤツって何なの?
しかも長げーし。

レス乞食ってヤツかなwww

741 :名無しさん@そうだ選挙にいこう:2009/06/28(日) 13:53:36
>>736-737です。

今のところ,もっとも近いのは下記のコードなのですが,
十字の選択であることとが希望と異なります。

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Application.EnableEvents = False
With Target
Range(.EntireColumn.Address & "," & .EntireRow.Address).Select
Target.Activate
End With
Application.EnableEvents = True
End Sub


742 :名無しさん@そうだ選挙にいこう:2009/06/28(日) 16:07:47
>>741
どこかに元セルの色を控えておけばいいんじゃね
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Static tmpRange As Range
Static tmpColor As Long
Static blnFlg As Boolean

If Not tmpRange Is Nothing Then tmpRange.Interior.ColorIndex = tmpColor

'If Target.Address(0, 0) = "A1" Then blnFlg = Not blnFlg
'If blnFlg Then Exit Sub

Set tmpRange = Target(1)
tmpColor = Target(1).Interior.ColorIndex

Target(1).Interior.ColorIndex = 35
End Sub

743 :名無しさん@そうだ選挙にいこう:2009/06/28(日) 16:28:20
ねぇねぇ、↓は何でダメぽ?

For @

  Do A

   Do B

   Loop B

  Loop A

Next @

744 :名無しさん@そうだ選挙にいこう:2009/06/28(日) 17:27:08
>>742
俺も似たようなこと考えた。
VBAスレでも似たようなコードで論争になったが、あの基地外君は元気だろうかw
それはおいといて、2003では多分うまくいくと思うんだがExcel2007では
何故かうまくいかないね。
元の色に戻らない色がある。
薄い青(初期状態のColorIndex33番)とか橙(初期状態のColorIndex44番)とか。
あとで色が薄くなってる。
どうなってんの?

745 :名無しさん@そうだ選挙にいこう:2009/06/28(日) 17:32:28
上の基地外君って使い物にならないものを、使えないほどじゃないとか言い張ったやつね。

746 :719:2009/06/28(日) 19:31:15
誰か・・・
俺の質問にも答えて・・・

747 :名無しさん@そうだ選挙にいこう:2009/06/28(日) 19:51:36
>>746
それが普通なんでないの?
うちも二台あるが最後に枠が残るよ。

748 :名無しさん@そうだ選挙にいこう:2009/06/28(日) 20:25:24
2007もってないんだよなぁ。買う予定もないし
会社とかの関係で持ってる人いたら答えてあげて

749 :名無しさん@そうだ選挙にいこう:2009/06/28(日) 20:57:20
おれらはVistaも2007もつかってないんだよ マイクロソフトに聞け


750 :743:2009/06/28(日) 21:00:51
誰か・・・
俺の質問にも答えて・・・

751 :名無しさん@そうだ選挙にいこう:2009/06/28(日) 21:38:58
>>743
なにがだめぽなんだよ?
構文間違ってるんでないの?
http://excelvba.pc-users.net/fol6/6_4.html

752 :名無しさん@そうだ選挙にいこう:2009/06/28(日) 21:39:52
>>743
あとは変数の使い方間違って無限ループしてるとかな

753 :名無しさん@そうだ選挙にいこう:2009/06/28(日) 22:17:17
>>750
どうダメなんだ?
エラーが出たのか、どんなエラーなのか、プログラムが終わらないのか、
期待した結果が出なかったのか、もうちょっと状況を詳しく書け。

754 :名無しさん@そうだ選挙にいこう:2009/06/28(日) 23:15:54
とあるQ&Aのサイトで見かけたものです。
手抜き宣言は出来きないと書いてる先生がいます。
でも、実際には変数として宣言できちゃうことが多くないですか?

┌───────────────────────────────┐
│> Dim s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13 As Worksheet    |
│                                             │
│よく見かけますが、                                      │
│こういう手抜き宣言は出来ません。                        │
│参考までに何故、こう宣言できると考えたのか教えて頂けないでしょうか? |
└───────────────────────────────┘

755 :名無しさん@そうだ選挙にいこう:2009/06/28(日) 23:19:35
デカイの来たな
そこで聞けよ

756 :名無しさん@そうだ選挙にいこう:2009/06/28(日) 23:20:03
先生に聞けば

757 :名無しさん@そうだ選挙にいこう:2009/06/28(日) 23:20:07
あ、s1〜s12がバリアント、S13がワークシートって意味ねw

758 :名無しさん@そうだ選挙にいこう:2009/06/28(日) 23:23:01
嫌味な先生だね

759 :名無しさん@そうだ選挙にいこう:2009/06/28(日) 23:37:30
いい先生じゃん。
最善を死んでも求めない人とか動けばいいって人には嫌味かもね。

760 :名無しさん@そうだ選挙にいこう:2009/06/28(日) 23:50:08
>こういう手抜き宣言は出来ません。 
神経質な奴なんだろうな
VBAは全部バリアント型で処理してるよ。メモリなんて腐るほど余ってるんだから使えるだけ使えばいいのに

761 :名無しさん@そうだ選挙にいこう:2009/06/28(日) 23:52:22
x こういう手抜き宣言は出来ません。
o こういう手抜き宣言はしないようにしましょう。

初心者だと知っていながらイジメるのはどうかと思うけどねw
わざと動作しないマクロを書いて、質問者の反応をみてる意地悪な先生もいるし。
そんなマクロでも質問者が「ありがとう」なんてレスしたときは笑える。

762 :名無しさん@そうだ選挙にいこう:2009/06/28(日) 23:55:38
【1 OSの種類         .】 WindowsVista
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 excel 縦軸 横軸 比

現在取り組んでいる課題である関数の平面図形を描く必要があり、
図形を描くことはできたのですが縦軸と横軸の比がバラバラになってしまいます。
方眼紙のように1:1対応させようとそれぞれの軸の最大・最小値を同じにしたり、
散布図のグラフの種類を変更したり試してみましたがどれもうまくいきません。
どなたかわかる方ご指導よろしくお願いします。


763 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 00:02:49
>>762
Excelでは寸法や比率を厳密に合わせるのは難しい
画面上では正方形でも印刷すると長方形になってしまう可能性もある。
とりあえず軸の範囲だけでなくプロットエリアのサイズも調整すべし
最終的に画面で見るのか印刷するのか。
印刷が目的なら、まずは1枚出してみて、そこから設定するサイズを逆算する。

764 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 00:07:30
>762
ものさし作成のマクロがフリーであるから、それ使うといいよw

765 :762:2009/06/29(月) 00:24:53
>>763,764

ExcelのヘルプにもWebにも方法が無かったので覚悟はしてましたがやはり厳密にあわせるのは難しいようですね。
Vectorでものさしのフリーソフトを見つけたのでExcelではそれを利用したいと思います。
また印刷する必要もあるので縮尺が変わってしまった場合は逆算して調整したいと思います。
お二方ご指導ありがとうございました。

766 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 00:38:08
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 関数 

○○小学○○ → 小学校
△△中学△△ → 中学校

文字列の中に"小学"が含まれている場合は、隣りのセルに"小学校"
文字列の中に"中学"が含まれている場合は、隣りのセルに"中学校"

と表示させたいのですが、共通の関数で処理したいのですが
どのようにすれば宜しいでしょうか。宜しくお願いします。

767 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 01:11:07
>>766
=IF(ISERR(FIND("小学",A1)),IF(ISERR(FIND("中学",A1)),"","中学校"),"小学校")

768 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 01:21:53
ISERRって必要か?

769 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 01:46:45
>>767
できました!
なるほど…ISERRで検索文字列があるかどうかを真か偽で判定させて
IFの条件式に利用させるんですね
これは他にも応用できそうです
素早い回答ありがとうございました!

770 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 03:05:57

パソコンから書き込めない環境なので携帯から失礼します

【1】 WindowsXP
【2】 Excel2003
【3】 いいえ
【4】 否
【5】 エクセル 関数 並び替え


獲得ポイント数に対応したランキング表を作っているのですが、ランク順に並び替えすると正しく表示されません。

順位、選手名、チーム名、総獲得ポイント数、大会番号、大会名、会場、結果、獲得ポイント数、
というような表になっているのですが、並び替えると選手名はランク順になっているのですが、順位、総獲得ポイント数、獲得ポイント数がその選手にあったものではなくなります。

ちなみに別シートに、大会番号に対応した大会名・会場の表と、大会名・結果に対応した獲得ポイント数の表があります。

大会名と会場は前者の表から、獲得ポイント数は後者から参照して、総獲得ポイント数は獲得ポイント数の合計から算出しています。



771 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 03:09:32
>>770
並び替えたい範囲全体をドラッグして選択状態にしてから並び替えてないか、
数式の相対参照と絶対参照の書き方が不適切かどっちか。

772 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 03:25:04
>>771
早速のアドバイスありがとうございます
前者を試したら結果が同じでしたので、恐らく後者だと思われます。

しかし後者の意味がわからず、調べてみたんだすけどやはりわかりませんでした。
どのようにすればいいんでしょうか?

773 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 06:25:01
Me使っているんですが、エクセルのファイルを閲覧する方法って無いでしょうか?
2000の場合、MSがヴューワを提供しているみたいなんですが・・・

774 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 10:09:09
旧ビューア(2003ではなく97)を使う

775 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 11:33:29
VBAについて質問です
Range("b2:f6") = Range("l12:p16")
という風に、valueをそのまま代入したいのですが、
これは複数セルではできないのでしょうか?
値だけコピーするしかないんでしょうか


776 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 11:55:38
チョット教えて下さい
COUNTIFの検索条件に小文字の"*"を指定するとちゃんとカウント出来ないんだけど。小文字の検索条件はできないのですか?


777 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 11:57:33
>>776
Range("b2:f6").value = Range("l12:p16").value
ちゃんとvalueつければいけんじゃね?

778 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 12:02:14
>>777
ありがとうございます!
範囲だと別のプロパティが優先されるのかな

779 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 12:03:40
>>776
半角文字のことか?
半角文字の「*」はワイルドカードといって特殊な記号だよ
「?」も同様
ttp://www.eurus.dti.ne.jp/~yoneyama/Excel/kansu/count.htm#countif


780 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 12:22:49
質問です

VBAで
TRUE+TRUE=-2
になるのはなぜでしょうか?
TRUE=1だと思っていたのですが、ウォッチウィンドウで確かめてもTRUEが-1という扱いになっています。

それと別の質問ですが、COUNTIFで離れた範囲(A1:A2とc1:c2)をカウントしたい場合、
COUNTIF(a1:a2,1)+countif(c1:c2,1)のように足し算するしかありませんか?

781 :776:2009/06/29(月) 12:26:43
レスどうもです。

ワイルドカード・・・、それがあるのを忘れてました

782 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 13:09:56
>>780
cbyte(true)とかすると255になるから、vbaでtrueって「全部ビット立ってる状態」みたいに管理してんじゃねーかな?
それだと符号付きの数値に自動キャストすると、符号ビット立ってるとみなされてマイナス扱いになって、で、残りのビット立ってるから補数取ると-1と判断してんじゃね?
trueは「0じゃない物」くらいに考えといた方がいいんじゃねーのかな。特に自動キャストの計算に直接使うのはやめといた方がいいんじゃね?

783 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 13:24:52
>>782
なるほど、ありがとうございます
エクセルのTRUEとは別物なんですね
TRUEの時は変数に1でもいれるようにします

784 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 13:41:46
>776 ん、カウントできるけど?
=COUNTIF(A1:A18, "*")

785 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 13:50:20
>>784
それだと「文字が入力してあるセル」全部カウントしちゃうんで*だけ数えたい
って話よ

786 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 14:03:50
チルダがいるね、すまんかった。
=COUNTIF(B1:B18, "~*")

787 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 15:11:59
エクセル2000のVBAについて質問です。
以下標準モジュールのマクロです。

Sub Macro4()
Sheets("a").Range(Cells(1, 1), Cells(1, 1)).Value = Sheets("tmp").Range(Cells(1, 1), Cells(1, 1)).Value
End Sub

実行時エラー'1004' アプリケーション定義またはオブジェクト定義のエラーです。
とエラーがでます。なぜでしょうか?
両辺Range(Cells(1, 1), Cells(1, 1))をrange("a1")に変えてもうまくいきますし、
両辺Range(Cells(1, 1), Cells(1, 1))をcells(1,1)にかえても成功します
また右辺をsheets("a")でも成功します。
違うシートで範囲で代入は出来ないと思ってよいのでしょうか?
シート"a"と"tmp"は存在していますし、セルの結合もしていません。


788 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 15:30:55
Sheets("a").Range(Sheets("a").Cells(1, 1), Sheets("a").Cells(1, 1))

789 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 15:34:05
>>788
ありがとうございます!
そういう記述でしたか、助かりました

790 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 15:34:47
いや適当だからうまくいくかわかんね

791 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 15:49:27

Application.ActivePrinter = "Fax on Ne03:"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
"Fax on Ne03:"

こんな感じでFax送信ダイアログを呼び出すところまでは出来ましたが
追加で電話番号を渡すにはどうしたら可能でしょうか?

792 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 16:15:24
>>790
上記の通りでうまくいきましたよ

793 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 16:57:22
先日ピボットテーブルの練習を開始しました。
そこで終わったセパ交流戦の入場者数を全て
新聞を見てメモを取り、日毎の入場者数を
対戦別入場者数としてセリーグ本拠地、
パリーグ本拠地でシートを分けて実施して
みました。駄作と思われるかもしれませんが
この練習法はどうでしょうか?

794 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 18:17:54
>>793
いいんじゃないかな。
検索したけど練習用の素材って無いね。
A商店の複数の部品の売り上げ、みたいな表があれば楽なのにね

一行目に見出し
A列にセ/パ
B列に球場
C列以降日付に対応する入場者数入れて作ればいいと思う
あれ、行列逆か?まぁいいか
とりあえず正規化の概念が分かればok

795 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 18:57:26
>>774
それは、どこからDLできますか?

796 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 21:42:40
質問です。
デバック時に、filecopyで実行時エラー 52
ファイル名または番号が不正です、になるのですが、
その部分を取り出して別で作ってみると実行できます。
mycsvにした部分を手入力だと問題がないようです。
どのように修正すれば動くでしょうか?
とりあえずうごかない部分の直前から抜粋しました。
よろしくお願いします。

If .Execute(msoSortByFileName, msoSortOrderDescending) > 0 Then
mycsv = .FoundFiles(1)
End If
FileCopy mydir & "\" & mycsv, mydir & "\test\" & "copy" & mycsv

797 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 21:56:19
イミディエイトウィンドウでmycsvの中身を確認してみれ

798 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 21:57:08
>>795
探したけどもうDLできないと思う。リンク切れだった

799 :796:2009/06/29(月) 22:11:18
>797
ありがとうございます。
mycsvにディレクトリ名も入っており、二重になっていたのが原因のようです。
ここから名前のみを抜き出すことはできますでしょうか?

800 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 22:13:04
なんで抜き出す必要があるの
mydir&を消せばいいだけやん

801 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 22:14:08
あー コピーするのにリネームするのか
文字列操作関数でどうにかできるんじゃね?しらんけど

802 :796:2009/06/29(月) 22:20:37
>800-801
そうですね、ファイル操作でやらなきゃと思ってて忘れてました。
今回の作業に関しては文字列操作で簡単にできそうです。
ありがとうございます。

803 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 22:29:18
>>795
オープンオフィスをダウンロードすれば見えるのでは

804 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 22:35:07
OOoはMEに対応してないって書いてある
インストールできるかもしれないけど

805 :名無しさん@そうだ選挙にいこう:2009/06/29(月) 23:14:50
このあたりを試してみてはどうでしょう
Meは持っていないので検証まではできませんでした

ttp://ja.openoffice.org/download/2.4.2/
ただ公式に対応と書かれていないので不安ですけど

ttp://wiki.services.openoffice.org/wiki/Ja.openoffice.org/start/environment
OpenOffice.org 2.x システム要件(動作環境)
Microsoft Windows
Windows 98, Windows ME, Windows 2000 (Service Pack 2 以降), Windows XP, Windows 2003
128 M バイトの RAM
200 M バイト (日本語版: 300 MB)の空きディスク容量
画像解像度 800 x 600 以上、256 色以上

806 :名無しさん@そうだ選挙にいこう:2009/06/30(火) 00:07:30
ちょっと質問です。
C列に部品の単価が入ってて、値はマイナスになりません。
真のとき何もしないのが無駄になっています。
別の書き方を教えてください。

If Range("C3").Value < 0 Then
'なにもしない
Elese
MsgBox "(・3・) エェー!!"
End If


807 :名無しさん@そうだ選挙にいこう:2009/06/30(火) 00:13:41
If Range("C3").Value => 0 Then MsgBox "(・3・) エェー!!"
この場合endifは不要

808 :名無しさん@そうだ選挙にいこう:2009/06/30(火) 00:21:39
>>798
ですよね
97使えとか書いてくるから、どこにあるのかと小一時間探しました

809 :名無しさん@そうだ選挙にいこう:2009/06/30(火) 00:26:26
>>805
http://wiki.services.openoffice.org/wiki/Ja.openoffice.org/start/environment

このページなんですが、文字化けしませんか?

ナビゲーション
メインページ
最近更新したページ
おまかせ表示
ヘルプ

って左上にありますが、「ナビゲーション」が「ナビゲ□ション」、「メインページ」が
「メインペ□ジ」みたいに、伸ばす音「ー」が「□」って表示されてます
これはMe特有の現象なんでしょうか?たまに、ブログ何かでも同じように文字化けすることがあります
あと、フォントがおかしくなっていて、読みにくいフォントになっています(うまく説明できません)
なんと言って良いか、カクカクしているというか、ザラザラしているというか、滑らかじゃありません
たまにWikipediaでもなる現象なんですが、ならない場合もあります・・・原因は分かりません

810 :805:2009/06/30(火) 00:33:49
>>809
vista ie8
文字化けはしていません
何なんでしょうね

811 :806:2009/06/30(火) 00:35:55
>>807
Range("C3").Value = "" のときは?

812 :名無しさん@そうだ選挙にいこう:2009/06/30(火) 01:04:03
>>809
XPでも問題なく表示される。
文字がおかしくなるのはリソース不足の症状。フォントを減らすと直ることもある。
けど、根本的な解決法はWindows2000以降のOSに入れ換えること。

813 :名無しさん@そうだ選挙にいこう:2009/06/30(火) 01:51:59
test


814 :名無しさん@そうだ選挙にいこう:2009/06/30(火) 04:59:15
>>810>>812
MEでIE6なんですよ

やっぱり、リソース不足でしょうかね
フォントがおかしくなる時と、ならないときがあるんで

ギコナビとか複数のアプリ起動した状態だと、おかしくなることが多い気がします


815 :名無しさん@そうだ選挙にいこう:2009/06/30(火) 09:00:30
>>811
=の反対は<>
Range("C3").Value <> ""
いろんなサイト眺めるといいよ

816 :名無しさん@そうだ選挙にいこう:2009/06/30(火) 10:57:53
たまに日本語入力するとエラーを吐いて落ちるんですがなぜでしょう
あとエラーログはどこに仕舞われてるのでしょうか

817 :名無しさん@そうだ選挙にいこう:2009/06/30(火) 11:35:39
日本語で(r

818 :名無しさん@そうだ選挙にいこう:2009/06/30(火) 12:07:02
変換するときにエラーならOSが不安定になってると思う
OSごと再インストールおすすめ


819 :名無しさん@そうだ選挙にいこう:2009/06/30(火) 13:08:08
IMEの辞書が壊れてるんでは

820 :名無しさん@そうだ選挙にいこう:2009/06/30(火) 15:12:05
グラフを作成するときにX軸を上下に2つ作りたいのですがどうすればできるでしょうか?
下の軸に時間、上の軸にはそれを分に換算した軸を表示させたいのです。

821 :名無しさん@そうだ選挙にいこう:2009/06/30(火) 19:22:34
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ

今度経理事務の正社員面接を受けるんですが、ワード、エクセルのテストがあるらしいです。
自分は市販の2007版をつかってしか勉強した事がないんですが(実務で扱った事はない)、
どうやらテストは2003版らしいです。
2007版で勉強したものは2003版でも活かせるんでしょうか。


822 :806:2009/06/30(火) 19:33:55
>>815
ゴメソ。間違えちゃった。
値が0とか""とかのときに、演算したいのよねん。

If Range("C3").Value > 0 Then
 'なにもしない
Else
 MsgBox "(・3・) エェー!!"
End If

823 :名無しさん@そうだ選挙にいこう:2009/06/30(火) 21:39:21
A4〜A10でデータがあって
間に空白があればエラーみたいにできますでしょうか?

たとえば
A1
A2

A4

A10
の場合A3が埋まっていればOKだけど、空白なのでエラーみたいにしたいのですが

もちろんデータの最後は可変です

824 :名無しさん@そうだ選挙にいこう:2009/06/30(火) 21:43:19
Excel2007なんですが
あるシートに書かれているすべての文字列のふりがなをまとめて空白(=削除)したいのですが
やり方とかあるのでしょうか?

825 :名無しさん@そうだ選挙にいこう:2009/06/30(火) 21:55:04
sub 全削除()

sheet(a).cells.clear

end sub

826 :名無しさん@そうだ選挙にいこう:2009/06/30(火) 22:01:00
>823
・検査対象セルを選択してからマクロ実行
・空白セルとはnullのこと
という前提でなら、こういうのでいいと思うけど
Sub テスト()
Dim flg As Boolean, c As Excel.Range
 flg = False
 For Each c In Selection
  If c.Value = "" Then
   flg = True
   Exit For
  End If
 Next c
 If flg Then
  MsgBox ("ERROR")
 Else
  MsgBox ("NO ERROR")
 End If
End Sub
空白セルをスペースだけのセルも含むのであれば、trimも組み合わせるといいです。

827 :名無しさん@そうだ選挙にいこう:2009/06/30(火) 22:07:53
"NO ERROR"


何かかわいいなw
もし社会人なら少しは英語の勉強してから英語使えよ。

828 :名無しさん@そうだ選挙にいこう:2009/06/30(火) 22:12:08
NO ERROR なんて英語は無いんだが・・バカ丸出しww

829 :名無しさん@そうだ選挙にいこう:2009/06/30(火) 22:14:00
>>821
機能自体は生かせるけど、GUI(見た目、大きなところではメニューバーとリボン)の違いははっきり言ってかなりキツイ
不安ならエクセルの入ってるマンガ喫茶で旧バージョンさわってみたらどう?大概のところには入ってるよ
>>822
If Range("C3").Value > 0  and Range("C3").Value <> "" Then
なにもしない
以降同じ
あと個人的には
If (Range("C3").Value > 0 ) and (Range("C3").Value <> "") Then
とカッコをつけたほうが見やすいと思っている。が別につけなくてよい


830 :名無しさん@そうだ選挙にいこう:2009/06/30(火) 22:21:16
>827、828
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1226024427
この質問の元となった問題を作った人へもどうぞ。

831 :名無しさん@そうだ選挙にいこう:2009/06/30(火) 22:22:31
>829

お前は何を言ってるんだ?

832 :名無しさん@そうだ選挙にいこう:2009/06/30(火) 22:24:42
>>830=826?


m9(^Д^)プギャー

833 :名無しさん@そうだ選挙にいこう:2009/06/30(火) 22:44:11
"NO ERROR" の検索結果 約 847,000 件中 1 - 10 件目 (0.21 秒)

834 :名無しさん@そうだ選挙にいこう:2009/06/30(火) 22:45:56
英語云々言ってるやつこれのコードみてみ
http://www42.atwiki.jp/syugyou/pages/186.html

835 :名無しさん@そうだ選挙にいこう:2009/06/30(火) 22:55:59
そんなに必死になって同じ馬鹿を探さなくても・・・

836 :名無しさん@そうだ選挙にいこう:2009/06/30(火) 22:57:57
NO ERRORに全く違和感を感じなかった俺・・
ちなみに本来の英語だとどう言うんだ?

837 :名無しさん@そうだ選挙にいこう:2009/06/30(火) 23:03:02
TOEIC800点レベルの俺には見当もつかんな

838 :806:2009/06/30(火) 23:04:10
>>829
あんがと。

839 :名無しさん@そうだ選挙にいこう:2009/06/30(火) 23:04:17
そんなことよりdimじゃなくて正しくはdimensionじゃねww

エクセル馬鹿wwww

840 :名無しさん@そうだ選挙にいこう:2009/06/30(火) 23:12:56
俺はTOEIC980点レベルだぜ!

841 :名無しさん@そうだ選挙にいこう:2009/06/30(火) 23:32:52
この騒動の張本人の>823はどうした?

842 :名無しさん@そうだ選挙にいこう:2009/06/30(火) 23:45:55
NO ERRORのどこがおかしいのか小卒の俺に優しく教えて下しあ

843 :名無しさん@そうだ選挙にいこう:2009/06/30(火) 23:57:12
おかしくないよ(棒読み

844 :名無しさん@そうだ選挙にいこう:2009/06/30(火) 23:58:03
引っ込みがつかなくなった>>827 >>828

845 :名無しさん@そうだ選挙にいこう:2009/07/01(水) 00:00:04
あと5日

846 :名無しさん@そうだ選挙にいこう:2009/07/01(水) 00:22:05
普通エラーでなければノーエラーとは言わないw
英語圏の人はOKとかGOODとか使うよ

よーく考えてみ、”エラーでない”とは言わんだろ

847 :名無しさん@そうだ選挙にいこう:2009/07/01(水) 00:24:41
フリチン≠ふるちん みたいな恥ずかしいレスやめようぜ

848 :名無しさん@そうだ選挙にいこう:2009/07/01(水) 00:24:45
ちと言い回しがおかしかった・・

×普通エラーでなければノーエラーとは言わない
○普通エラーでないときはノーエラーとは言わない

849 :名無しさん@そうだ選挙にいこう:2009/07/01(水) 00:30:21
禁煙がNO SMOKINGだから、NO ERRORは禁誤じゃね?

850 :名無しさん@そうだ選挙にいこう:2009/07/01(水) 00:40:35
英語圏厨はどこまでマジで書いてるかわからんな・・
日常のカタカナ英語にも全部噛みついてんの?

851 :名無しさん@そうだ選挙にいこう:2009/07/01(水) 00:46:30
テストでエラーを出したいSTやITAの場合
エラーが出れば成功
エラーが出なければテスト失敗のときは
Error、No Errorとするがな

852 :名無しさん@そうだ選挙にいこう:2009/07/01(水) 00:49:43
どうでもいいけどさー

・間違い
・正解(”間違いでない”とは普通書かない

だろ?



853 :名無しさん@そうだ選挙にいこう:2009/07/01(水) 00:52:11
No errorとGoodじゃ意味合いが違うよなあ
イチロー選手に今日もエラーが無かったっていうのを
No errorじゃなくてGoodと言ったんじゃ意味不明だし

854 :名無しさん@そうだ選挙にいこう:2009/07/01(水) 07:47:27
英語のNOじゃなくて排他のNOだろといってみる

855 :名無しさん@そうだ選挙にいこう:2009/07/01(水) 08:03:36
>>829
C3が0より大きければ Range("C3").Value <> ""はTrueになるに決まってるだろうよ。

856 :名無しさん@そうだ選挙にいこう:2009/07/01(水) 08:05:33
まあ 中学程度の英語力もないやつがNO ERRORがおかしいとかかみつくなってことだなw

857 :名無しさん@そうだ選挙にいこう:2009/07/01(水) 10:05:05
【1 OSの種類         .】 WindowsXP SP3
【2 Excelのバージョン   】 Office2003 Excel
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 クリップボード・クリップ・画像・挿入・図

具体的なやり方とかの質問ではないのですが、クリップボードであらかじめ用意されている画像というのは
使用に制限はないのでしょうか?
プレゼンや何かに色々と使っておりますが、一部のアイコンの表現がとてもよかったのでパンフに載せるという事になりまして
現在コンテンツについて確認しておりました。
使用制限などありましたら教えてください。

858 :名無しさん@そうだ選挙にいこう:2009/07/01(水) 11:06:15
>>857
クリップボードじゃなくてクリップアートね
使用制限はこちら
ttp://office.microsoft.com/ja-jp/help/HA010897061041.aspx
要約すると、配布はダメ

859 :名無しさん@そうだ選挙にいこう:2009/07/01(水) 12:07:04
つまり素材として再利用できる形で使っちゃERRORで
パンフに乗せるのはNO ERRORてことですか?

860 :名無しさん@そうだ選挙にいこう:2009/07/01(水) 12:45:46
>>858
その同じページにこう書いてあるぞ
--
単に配布物の装飾、イラストとして使用するだけであれば問題なくご使用いただけます。
たとえば、年賀状、ホームページ、お店のちらし、会社が無料で配布するパンフレット、
会社として出す年賀状、区立図書館の月報などにクリップ アートを使用することは可能です。
--

861 :名無しさん@そうだ選挙にいこう:2009/07/01(水) 18:15:09
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ

3万件くらいの市内住所録を作成していますが、最近合併により北区、南区などに分かれてしまいました。
郵便番号辞書で一括変換をする際に、郵便番号→住所は問題無いのですが、
区を省いた住所→郵便番号の変換はエラーになってしまいます
解決策は無いでしょうか・・?



862 :名無しさん@そうだ選挙にいこう:2009/07/01(水) 19:11:18
区の分割に対応した最新の郵便番号辞書をつかえばいんじゃないの

863 :名無しさん@そうだ選挙にいこう:2009/07/01(水) 19:22:11
記入して頂いたカードを打ち込む作業なんですが、○○市●区△△町と書いてくれている人はまだ少ないんです。
○○市△△町だと郵便番号に変換できないんですよ
かといって旧辞書だと○○市●区△△町が変換できません…

864 :名無しさん@そうだ選挙にいこう:2009/07/01(水) 19:23:43
>861
「区を省いた住所」とは「合併により政令指定都市となる以前の旧表示の住所」のことですか?
であれば、
・合併前の旧住所用の郵便番号辞書を入手する もしくは
・「区を省いた住所」から区を含む完全な住所に変換したのち郵便番号変換する
のいずれかでしょう。
合併協議会のウェブサイトに新旧住居表示対応表というのがあるはずです。

865 :名無しさん@そうだ選挙にいこう:2009/07/01(水) 19:25:38
>>863
市内の住所録程度なら
  △△町→●区△△町
という置換作業を何回か行えばいいんでは
該当する町名が何百とかあるわけじゃないっしょ?

866 :864:2009/07/01(水) 19:38:04
アップする直前にリロードしてなかった。
>863
住所録の入力と併せてということであれば、単語登録してしまうのがてっとり早いと思う。
最近の政令指定都市ということで岡山市を例にあげると、
http://www.city.okayama.jp/gyouseiku/kunaijuusho.html
にある町名区名対照表から 葵町 は 北区 とわかるので、「あおいちょう」の呼び名で
「北区葵町」って登録しとけばいい。
もしくは、そのまま入力してしまってから対照表(エクセルの表)を利用してVBAでも
使って区名を入れ込むこともできる。

867 :864:2009/07/01(水) 20:04:39
追加
IMEにATOKを使っているのであれば、一括で単語登録できる。(MS-IMEは知らん)
詳しい方法はスレが違うので割愛。
入力後に一括して置き換えするのにVBAが使えればいいけど、VBA:いいえって
書いてあるから、「がんばって置換してね」としか言えません。


868 :名無しさん@そうだ選挙にいこう:2009/07/01(水) 20:16:25
>>822
If Not Range("C3").Value > 0 Then MsgBox "(・3・) エェー!!"

869 :名無しさん@そうだ選挙にいこう:2009/07/01(水) 20:18:31
「NO ERROR」は、エラー禁止

エラーなしなら、「NON ERROR」

870 :名無しさん@そうだ選挙にいこう:2009/07/01(水) 20:20:30
えええww適当な事言ってんじゃねえw

871 :名無しさん@そうだ選挙にいこう:2009/07/01(水) 21:41:54
なぜフランス語

872 :名無しさん@そうだ選挙にいこう:2009/07/01(水) 22:09:16
Office Standard 2007 アップグレード 20周年記念 優待パッケージですが、
OfficeXPプリインストールモデルでも入れられるでしょうか?

873 :名無しさん@そうだ選挙にいこう:2009/07/01(水) 23:13:18
Sub テンション推移()
Dim i, j As Byte
Dim warosu As String
For i = 1 To 5
warosu = "NO ERROR"
For j = 1 To 5 - i
warosu = warosu & "ww"
Next
If i = 5 Then warosu = warosu & "、あるとおもいます"
MsgBox warosu, , "英語圏厨"
Next
End Sub

874 :名無しさん@そうだ選挙にいこう:2009/07/01(水) 23:34:24
>Dim i, j As Byte

よく見かけますが、   
こういう手抜き宣言は出来ません。     
参考までに何故、こう宣言できると考えたのか教えて頂けないでしょうか?

875 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 00:04:20
ん?できるぞ?
それそのまま標準モジュールにコピペして実行してみ

876 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 00:05:56
>875
できるけど、as Byte はjにしか効かない
だったらむしろdimする意味ないw

877 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 00:17:34
>>875
出来る出来ないの話じゃ(ry
iとjの両をByteにしたけりゃ

Dim i As Byte, j As Byte


878 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 00:20:54
iをByteにしたいなんて誰も言ってないだろw

879 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 00:25:07
屁理屈こいてじゃねーバカ


880 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 00:27:30
>>754からの流れでネタ楽しんでるんじゃねーのか
こういう中途半端は扱いに困る

881 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 00:28:01
754のパクリだよw

882 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 00:29:10
うわ、つまんね

883 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 00:29:26
実行できないのかと思った
そんなギャグみたいなコードで何いってんだww

884 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 00:29:33
どこの斉藤だよw

885 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 00:30:25
そろそろ1000だからあとはネタで埋めよう

886 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 00:31:16
>Dim i As Byte, j As Byte
i と j をByteで宣言するとき、もっと簡単に書く方法ってありゅ?


887 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 00:33:18
ギャグに妥協を許さない英語圏厨用に直してみた

Sub テンション推移()
Dim i As Variant
Dim j As Byte
Dim warosu As String
For i = 1 To 5
warosu = "NO ERROR"
For j = 1 To 5 - i
warosu = warosu & "ww"
Next
If i = 5 Then warosu = warosu & "、あるとおもいます"
MsgBox warosu, , "英語圏厨"
Next
j = 256
End Sub

888 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 00:33:29
何も書かなければいいじゃん

889 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 00:40:39
なんでDim i As Variant?

890 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 00:52:30

 一気に過疎ってきたから900ゲト
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ∧_∧       〜〜з
  ⊂(´Д`⊂⌒⌒`つ 〜〜〜 〜
        ̄ ̄       〜〜〜〜З
          ノタクリ〜

891 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 00:54:29

           ∧_∧
          /⌒ヽ ) トボトボ・・・・・ 899と見間違えた・・・・
         i三 ∪  
          |三 |
         (/~∪
        三三
       三三
      三三

892 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 01:49:16

∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵。∴∵
∴∵∴∵:。∴∵∴∵∴: --─- ∴∵∴∵∴∵∴∵
∴∵゜∴∵∴∵∴∵  (___ )(___ ) >>890 ∵。∴∵∴∵ ゜
∴∵∴∵∴:∵∴∵_ i/ = =ヽi ∴∵∴∵。∴∵∴
∴∵☆彡∴∵∵ //[||    」  ||] ∴:∵∴∵∴∵:∴∵
∴∵∴∵∴∵ / ヘ | |  ____,ヽ | | ∴:∵∴∵∴∵:∴∵
∴゚∴∵∴∵ /ヽ ノ    ヽ__./  ∴∵∴∵:∴∵∴∵
∴∵∴∵  く  /     三三三∠⌒> ∴:∵∴∵:∴∵
∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∵∴∵∴∵
   ∧∧   ∧∧  ∧∧   ∧∧
  (   )ゝ (   )ゝ(   )ゝ(   )ゝ 無茶しやがって・・・
   i⌒ /   i⌒ /  i⌒ /   i⌒ /
   三  |  三  |  三  |  三  |
   ∪ ∪  ∪ ∪  ∪ ∪  ∪ ∪
  三三   三三  三三  三三


893 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 08:04:04
教えてください。

下記の式で、C2〜のセルが未入力であれば""で返すと思うのですが、
C2〜のセル自体が、他のシートからのデータを引っ張って来るために
=Sheet1!A2・・・などという式が入っているためか、行数を返して来て
しまいます。
このC2以降のセルに式が入っていても""で返すようにするには
どうすればいいのでしょうか?


=IF(COUNTIF($C$2:C2,C2)=1,ROW(),"")
=IF(COUNTIF($C$2:C3,C3)=1,ROW(),"")
=IF(COUNTIF($C$2:C3,C3)=1,ROW(),"")
         ・
         ・
         ・

(表から文字データを抜き出す時に、重複の文字を省くための式の前段として作成中)

894 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 11:06:06
>>893
データでも数式でも、その式で大丈夫のはずだけど

895 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 15:11:44
>>894
いやーでも実際に空欄のところも行数を返してきちゃうんですよね。
だから、抜き出した行数をもとに以下の式で文字を抜き出しても

りんご
ごりら

らっきょ



のように、空欄が挟まってしまいます。

=IF(COUNT(E:E)<ROW(A1),"",INDEX(C:C,SMALL(E:E,ROW(A1))))
(Eの列に>>893の式)

ちなみに、C列の式をデリートすれば空欄が行数を返して来なくなりますが
本来の表には空欄がランダムにいくつも入っているので、手作業でデリートするのは
手間がかかりますし。

896 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 15:20:02
それと、本来の表では空欄ではなくて結合したセルの下段です。

897 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 15:33:13
>887
なしてjをわざとオーバーフローするん?

898 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 17:44:53
>>897 NO ERROR

899 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 19:33:28
C1=8:30
D1=20:00
E1=休憩あれば
F1=人数
G1=総分数
=IF(OR(C1=",D1=""),"",IF(D1-C1<0,(D1-C1-E1+1)*F1,(D1-C1-E1)*F1))

H1=支払金額
=IF(G1="","",ROUNDDOWN(HOUR(G1)*6000+MINUTE(G1)/60*6000,-2))

時給6000円での計算です。
1人だと69000円になるのに
(2人もOK)
4人だと132000円になります。
どこがまちがっているのでしょうか。




900 :899:2009/07/02(木) 19:35:02
すみません。
テンプレ挿入忘れていました。
よろしくお願いします。

【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 時給計算 minute関数

901 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 19:52:10
>>899
G1の式が使えない
コピーしなおして

902 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 19:57:25
>>899
HOUR(G1)
は24:00を超えると0:00に戻る
H1=IF(G1="","",ROUNDDOWN(G1*6000*24,-2))
が正解

903 :899じゃないけれど:2009/07/02(木) 19:58:45
G1の式でエラーがでたので調べてみたら、"のかたわれがなかったのを発見。
正しくは
=IF(OR(C1="",D1=""),"",IF(D1-C1<0,(D1-C1-E1+1)*F1,(D1-C1-E1)*F1)) になります。
で、三人のときもおかしい。H1セルの中のHOUR(G1)が桁あふれしている模様。
HOURは23の次は0になるんじゃないかな?

904 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 20:00:37
同時にレス付いてワロタw

先生方 お疲れ様ですm(__)m


905 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 20:04:30
いやいや NO ERROR

906 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 20:21:18
はやらせたいのは伝わってくるが、そんなに面白くないぞ

907 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 20:59:12
>>899
だからおとなしく、俺が >730 に書いたようにしておけと。
本当はG1の方で金額をROUNDしておいて人数を掛けるんだが。

There is no error.
It is not a error.
別に NO ERROR でもおかしくない。

908 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 21:10:57
Excel2007で関数のグラフを作りたいのですが、
x+Δxのようにちょっとずつ同じ数値を足していくにはどうすればいいのでしょうか?
定義域は-1<x<1です。

909 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 21:33:35
「インデックスが有効範囲にありません」というエラーが出るんです。
どこがマズーなのん?

Sub test1()
Dim WB1 As String, WB2 As String

WB1 = "Book1.xls"
WB2 = "Book2.xls"


Workbooks(WB1).Worksheets("Sheet1").Range("C2").Copy
Workbooks(WB2).Worksheets("Sheets1").Range("C2").PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False

End Sub

910 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 21:34:33
>>909
ワークシートの名前
sheetとsheetsになってるぞ

911 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 21:48:36
>>910
あんがと。
超初歩的なミスで恥ずかスィ〜

912 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 21:54:02
ついでに、
値だけをコピペしたいんだけど、もっと簡単な書き方あるますか?

Workbooks(WB1).Worksheets("Sheet1").Range("C2").Copy
Workbooks(WB2).Worksheets("Sheet1").Range("C2").PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False

913 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 22:00:28
Workbooks(WB1).Worksheets("Sheet1").Range("C2").Copy
Workbooks(WB2).Worksheets("Sheet1").Range("C2").PasteSpecial xlValues

914 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 22:04:59
Workbooks(WB1).Worksheets("Sheet1").Range("C2").value=Workbooks(WB2).Worksheets("Sheet1").Range("C2").value

915 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 22:06:35
>>913-914
あんがと。
イコールでいいなんて、知らんかった・・・

916 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 22:21:31
Excelで同じ漢字を入れた場合
同じ漢字を入れているのに場合によって並び返してもうまくいかない場合があります

調べたところ
以前に入力した感じにはふり仮名が設定されていないのですが
新しく入力した漢字はオートコンプリートで使ったとしても自動的にふりがなが設定さ
れてしまうので
その結果、漢字は同じでも並び替えをするとバラバラになるのですが
これを回避する方法とかありますでしょうか?

自動的にふり仮名をつけなくさせるか
シート内のすべての文字列のふり仮名を一括して削除するか

917 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 22:39:16
>>916
漢字をキーにして並べ替えないようにする

918 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 22:47:19
>>916
VBAで゛ふりがな降る方法があったけど忘れた
IMEの履歴を取るとか何とか
シフト+alt+↑を同時に押せばふりがな編集できるよ

919 :名無しさん@そうだ選挙にいこう:2009/07/02(木) 23:07:28
Selection.SetPhonetic

920 :名無しさん@そうだ選挙にいこう:2009/07/03(金) 00:04:28
あと3日

921 :名無しさん@そうだ選挙にいこう:2009/07/03(金) 01:23:05
Windows vista

Excel2007


パソコン初心者、Excel初心者です。

ひとつのセルの中で文字をならびかえることはできますか?

AbCabC→AabbCC

よろしくお願いします。

922 :名無しさん@そうだ選挙にいこう:2009/07/03(金) 01:25:29
>>921
1文字ずつMID関数で取り出してソートしてふたたび結合するか、VBA

923 :名無しさん@そうだ選挙にいこう:2009/07/03(金) 01:30:44
>>922さん、ありがとうございますっ!!!

でも全然わかりません。VBAとはなんですか?

924 :名無しさん@そうだ選挙にいこう:2009/07/03(金) 02:14:49
VBAや関数に関してはド素人ですが、よろしくお願いします。


【1 OSの種類】 Windows XP
【2 Excelのバージョン】 Excel2003
【3 VBAが使えるか】 いいえ
【4 VBAでの回答の可否】 なるべく不可
【5 検索キーワード】 検索 抽出 データベース

なるべくシンプルに操作出来るデータベースを作ろうと思っています。
そこで考えたのが、googleトップページの様なシンプルな検索ボックスのみを
sheet1に置き、sheet2のデータベースからデータを抽出する。
検索・抽出結果はsheet1の検索ボックスの下に表示する。
データは氏名、住所、電話番号、年齢とする。

で、sheet1の検索ボックスに氏名、住所、電話番号、年齢のいずれを入力しても
該当する列を検索結果として表示したいのです。

こんなことは出来るのでしょうか?

925 :名無しさん@そうだ選挙にいこう:2009/07/03(金) 02:31:21
>>921
>>922ではないけれど、超初心者という前提で言えばひとつのセル内での並び替えは無理と思っていいのでは?
文字を複数セルに分割して作業してよければ、Excelの並び替え機能が活かせる。
その手掛かりがmid関数

vbaで解答なら簡単だけれどそれ以前っぽいし。
まずmid関数をヘルプなりGoogleなりで調べて解らない点を再質問すれば?

926 :名無しさん@そうだ選挙にいこう:2009/07/03(金) 02:46:58
>>924
できるだけド素人に解決できそうな手掛かりを考えてみた。
(ただし「年齢」を抽出条件に入れるなら複数ヒット確実っぽいのでとりあえず除外)

Sheet1に氏名、住所、電話番号入力セルを別々に用意

出力行も別々に用意

出力行にIndex関数とMatch関数の組合せでSheet2からデータを引っ張る


あたりがとりあえず近道かと
(質問のブック構成を度外視すればフィルタオプションあたりがいいかも)

927 :名無しさん@そうだ選挙にいこう:2009/07/03(金) 02:50:55
>>924
検索結果が必ず1つだけになるんならワークシート関数でできるけど、
たとえば年齢で検索すると、該当するデータが複数出てくるはず。
そういうのはVBA使わないと無理

928 :924:2009/07/03(金) 02:56:17
>>926
早速のご返答感謝します。
えーと、ちょっと補足しますと、別に複数ヒットは全然構わないです。
例えば「東京」で検索した場合、3人とか4人とかヒットしても
構いません。

あと、これを使うのがほんとに私以上のド素人のおばさん連中なのです。
一つの検索ボックスでことを賄うのはやはり高度な技術が必要でしょうか?
出来ればどシンプルにいきたいのですが・・

929 :名無しさん@そうだ選挙にいこう:2009/07/03(金) 03:22:00
>>928
書き方が悪かったね。もうちょっと簡潔に書くと…

まず、検索ボックスの数は関係ない。
検索結果がいつも1件に絞られるなら簡単。
検索結果の件数が不定だとちょっと難しい。

930 :名無しさん@そうだ選挙にいこう:2009/07/03(金) 03:25:47
作業列1…検索にヒットしたかどうか
作業列2…ヒットしたうちの何番目か

これらを頼りにSheet1に検索結果を表示するような式を作ることになると思う
微妙にめんどくさいね
VBA使った方が楽かな

931 :名無しさん@そうだ選挙にいこう:2009/07/03(金) 04:45:43
>>928
ところでコントロールキーを押しながらfキーを押すと検索用のウィンドウが出るという機能はご存知?


932 :924:2009/07/03(金) 06:22:56
おはようございます。
えっと、皆さんのアドバイスをまとめると
検索結果が複数を想定しているので、VLOOKUPとかじゃ無理よ。VBA使いなさい
ってことですか?
未だに具体的に見えなくて困っています・・

933 :名無しさん@そうだ選挙にいこう:2009/07/03(金) 06:54:43
>>932
コントロール+Fで検索しとけ。

934 :名無しさん@そうだ選挙にいこう:2009/07/03(金) 07:03:46
少し使える人ならオートフィルタでも良いと思うけど。

935 :名無しさん@そうだ選挙にいこう:2009/07/03(金) 07:20:01
>>932
簡単だ。
氏名,住所,電話番号,年齢を1つのセルに入力して
後はオートフィルタ使うだけ。


936 :名無しさん@そうだ選挙にいこう:2009/07/03(金) 07:59:19
使うのがど素人なのは仕方ないが
作る方がど素人だと使わされる側が大変だね・・・

937 :名無しさん@そうだ選挙にいこう:2009/07/03(金) 08:00:36
>>924
普通はvbaだろうな
ほとんどが一件だけなら、vlookup
COUNTIFを別セルに用意して、2以上のときは大きく"注意!2件以上該当しています"
と表示させてオートフィルタ使うとか

938 :924:2009/07/03(金) 08:02:56
ふむ、やはりVBAですか
ちょっくら調べてきます

939 :名無しさん@そうだ選挙にいこう:2009/07/03(金) 08:20:46
別に、↓に大量の抽出セルを用意すればいいし

940 :名無しさん@そうだ選挙にいこう:2009/07/03(金) 08:48:21
>>916に対してまともなレスがついてないのが悲しいな
バージョンによって多少違いがあるかも知れんが「並べ替え」のオプションに「ふりがなを使わない」というのがある

941 :名無しさん@そうだ選挙にいこう:2009/07/03(金) 09:14:13
>>924
名前〜右端の列を選択してオートフイルタをかけておく
先にフアイル、またはシートをコピーしておく
後は検索項目だけ入力、保存しておくのがいいんじゃないかなぁ

オバチャンというのが非常にひっかかる

942 :名無しさん@そうだ選挙にいこう:2009/07/03(金) 09:17:28
          ____
       / \  /\ キリッ
.     / (ー)  (ー)\    <「>>916に対してまともなレスがついてないのが悲しいな 」
    /   ⌒(__人__)⌒ \
    |      |r┬-|    |
     \     `ー’´   /
    ノ            \
  /´               ヽ
 |    l              \
 ヽ    -一””””~~``’ー?、   -一”””’ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))

          ____
        /_ノ  ヽ、_\
 ミ ミ ミ  o゚((●)) ((●))゚o      ミ ミ ミ   <だっておwww
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\   /⌒)⌒)⌒)   
| / / /     |r┬-|    | (⌒)/ / / //       
| :::::::::::(⌒)    | |  |   /  ゝ  :::::::::::/      
|     ノ     | |  |   \  /  )  /
ヽ    /     `ー’´      ヽ /    /
 |    |   l||l 从人 l||l      l||l 从人 l||l  バンバン
 ヽ    -一””””~~``’ー?、   -一”””’ー-、
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))

943 :名無しさん@そうだ選挙にいこう:2009/07/03(金) 12:10:54
Ctrl+Fだと検索結果が複数あった時に一覧表示できないじゃん
2桁の数字を入れた時、年齢なのか住所の一部なのかもわかんないし
人名と地名がかぶることもあるよな

結論、元々の発想に無理がある

944 :名無しさん@そうだ選挙にいこう:2009/07/03(金) 12:18:45
検索フォーム作れ
初心者向けなら、名前検索用、年齢検索用と、入力欄を分けた方がいいぞ
1つにまとめて多機能にすると、かえって混乱する

945 :名無しさん@そうだ選挙にいこう:2009/07/03(金) 12:20:09
2003なら普通に範囲指定して[すべて検索]で、ハイパーリンク付きで候補一覧でるんじゃね?

946 :名無しさん@そうだ選挙にいこう:2009/07/03(金) 12:24:31
>>942
俺は普通に15へぇくらい関心したが

947 :名無しさん@そうだ選挙にいこう:2009/07/03(金) 14:28:33
>>938
どうやら最初からVBAと結論は出ていて、それ以外の話は聞こえていないようだな。
お前みたいなド素人のオナニーを見せつけられるおばちゃん達がかわいそうだ。

948 :名無しさん@そうだ選挙にいこう:2009/07/03(金) 14:33:25
>>947
勘繰り過ぎ

949 :名無しさん@そうだ選挙にいこう:2009/07/03(金) 14:39:47
EXCEL2007です。VBA不可。

イメージを挿入した後、180度回転して、貼り付け位置に移動し、
サイズ調整を行いました。

挿入したイメージでは、通常、外側の辺の線は表示されません(元々無い)が
上辺と左辺の箇所に線が表示されます。
印刷プレビューで見ても線が表示されます。

この線が表示されないようにするには、どうすれば良いのでしょうか

950 :949:2009/07/03(金) 14:53:25
↑OSはVista Ultimateです。

951 :名無しさん@そうだ選挙にいこう:2009/07/03(金) 17:02:37
>>949
たぶん画像と縮小方法と倍率の相性。どーしょもねーんじゃね?
結果が大事ならExcel以外のお絵かきアプリで回転とサイズ変更やればいいんじゃねーのかな

952 :名無しさん@そうだ選挙にいこう:2009/07/03(金) 17:05:33
検索の人はおばちゃんに検索機能教えてやれば済む話じゃ?
対人恐怖症でもあるまいし、5分で済むでしょ
おばちゃんだってそんなにバカじゃねーよ。めんどくさがってるだけ

953 :名無しさん@そうだ選挙にいこう:2009/07/03(金) 17:11:37
「フィルタオプションの設定」って意外と知られてないんだな。
>>924をそこそこ満足させられる機能だと思うんだが。
快適な操作性を考えるとVBAも使う必要が出てくるけどググればすぐサンプルが出てくる。

954 :949:2009/07/03(金) 17:16:39
>>951
レスありがとうございます。


955 :名無しさん@そうだ選挙にいこう:2009/07/03(金) 20:38:33
>>953

いや、こういうヤツがVBAを作ると・・・ハァ

956 :名無しさん@そうだ選挙にいこう:2009/07/03(金) 20:46:18
U

957 :名無しさん@そうだ選挙にいこう:2009/07/03(金) 22:10:16
>>953
フィルタオプション?
そんなしちめんどくさいことをおばさん連中がやるわけないだろって w

958 :名無しさん@そうだ選挙にいこう:2009/07/03(金) 22:13:23
命令してやらなかったらクビだから・・・
問題は「いかに操作を間違えないか」じゃないかなぁ

959 :名無しさん@そうだ選挙にいこう:2009/07/03(金) 22:14:28
まあ、マクロでフィルタオプションをいじるUIを作ることだな
フィルタオプションなんて触らせたら文句バッカくるよ

960 :名無しさん@そうだ選挙にいこう:2009/07/03(金) 22:29:38
検索・抽出ならピボットテーブルを使えよw

961 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 00:00:04
あと2日

962 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 02:06:14
それぞれ書式が日付型で
A1に2001/01/22
A2に2003/01/01
A3に2007/04/19
A4に2001/12/30

みたいにあった時

=COUNTIF(A1:A500,"2001")
みたいにA列のすべてのデータから、2001年だけをカウントで取得したいのですが
書式が日付型なのでどうしてもうまくいきません

他の列に=YEAR(A1)みたいにしてそこからカウントを取るやり方もあると思いますが
A列内だけで完結できないものでしょうか?

963 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 05:30:28
>>962
=SUMPRODUCT((YEAR(A1:A500)=2001)*1)

964 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 08:45:42
なんで初心者って異様に作業セル(列)使うことを嫌がるんだろう?
> 他の列に=YEAR(A1)みたいにしてそこからカウントを取るやり方
で結果には何も問題ないんだからそれでいいじゃん

逆に>>963の式には問題がある
間違いが有るわけではないし、不適切な要望とは言え、962の要望通りの
式を出してる963を非難するわけではないが、他の人がこの式を見たときに
「2001年の件数をカウントしてる」とすぐに解るかどうかって話だ
962もそういう手法を知らなくて質問に来たように、この式の意味を理解できない人は多い

会社などの組織・団体で使う場合は、そういう部分はかなり重要になる
今回は個人で使うにしても、作業セルを使ったところで結果に間違いが生じるわけではないんだし
社会に出てからも通用する方法に慣れておいた方がいいと思うのだが

作業列を使わない方が無駄がないとか勘違いしてるのかも知れないが
実際の所、作業列を使ったことによって列数が足りなくなることなんて殆ど無いし
列数を多く使ったからって経費が嵩むわけでもない
逆に他の人が式を読解するのに無駄な手間が掛かる方がよっぽど問題だ


とか、暇なので熱く語ってみる
まぁ初心者共からの反応は目に見えてるがなw

965 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 08:57:54
>>964
べつにSUMPRODUCTの式が一個ならいいんじゃない?
年別のカウントなら駄目だけどな。
要するに配列数式やSUMPRODUCTをフィルコピーしちゃいかんってことだ。
年別のカウントならもちろんピボットテーブルでグループ化だな。

966 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 09:21:39
SUMPRODUCT使うと簡単だけど単純ではないんだよな
エレガントでは無いというか何というか

967 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 09:33:10
=COUNTIF(A1:A4,"<2002/1/1")-COUNTIF(A1:A4,"<2001/1/1")
で・・・

968 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 10:31:54
>>964
確かにあるなぁ
作業セル含めて答えても「1行ですませられませんか?」とか聞かれたこともある
気持ちは分からんでもないが、意味はないことに気づいて欲しいな

969 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 10:44:39
FOM出版のデータCDロム付き中古テキストを買ってきたんですが、
ワード2002はインストできましたが、エクセル2002の方がインストできません。
自力でインストする方法はありますか?
ちなみに、ワード、エクセル2007もインストしてます。

970 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 11:29:19
出版元に聞いてください

971 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 11:29:41
>>968
元となるデータ側のフォーマットが決まってて、
追加(または更新)が来たときに、そのフォーマットのままコピペできるほうが便利だから
作業列を挿入したくない、ってことはたまにあるな
そういうときに配列使って式入れてたりすることはある

基本的には>>964に同意だけど
くせのある作成者のExcelを修正しなきゃならんときは解読に無用に手間がかかる…

972 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 12:32:16
>>964
実務を分かっている方ですね
ほんと一番大事なことだよ
配列数式なんかで書いた時には自分でも後でんんん?とかなるし w

973 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 12:50:47
やむなく作業列を使わないときはコメントとか入れておくけどね
作業列云々とは関係ないけど、いきなり=A1*234.85 とか入っててこの234.85って何?みたいなこともある
そういうのも説明書いておかないと後の人が困るんだよね。

ところでさ、実務で使ってる人に聞きたいんだけど、
データ元の別のブックからリンク貼り付けしてるような一連のブックの管理ってどうしてる?
同じブックにデータ元が入ってるほうが管理はしやすいけどブックのサイズがとんでもないことになるし
別々にしてるといつのまにかリンク切れしてて貼りなおしが厄介になるんだが…
今はフォルダに入れて、コピペとかするときはそのフォルダごと!って言ってるんだが気づくとリンク切れorz

974 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 12:54:46
可能な限り一つのブックかマクロかコピペで更新

975 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 12:58:29
>>964
たとえばB1〜B30000ぐらいまでYear(A?)を入れていて
B列を非表示にしていて、
新規で途中の行を追加するとその行のYear(A?)はないから
うまくカウントされない時があるから、
たまにうざい時があるけどね

たしかに追加するたびにマクロを使って記述を追加できるけど


976 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 13:30:50
句点"。"が打てないやつって、義務教育を受けてないの?

977 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 13:49:04
うわぁ・・

978 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 14:44:23
NO ERROR です


979 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 15:10:34
あれ?今日は何故かまともなやつがいるなw
作業列の嫌いな大先生見てるかい?
死ぬまで治らんだろうなぁ。

980 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 16:05:04
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 2000

選択したセルの色が出ないのですが出るようにするにはどうしたら良いのでしょうか?

981 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 16:19:50
>>980
?条件付書式設定になってるとか?

982 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 16:25:17
すみません説明不足で
薄い水色みたいな奴の事です

983 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 16:39:43
2000は最初から色付かないよ
そういうもの

984 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 16:48:42
>>983
え!?そうだったんですか・・・
会社のエクセルの事だったんですが転属先のエクセルが選択した所(Ctrl+クリックとかで)に色がつかず
やりにくいので質問させてもらいました。

先輩に何かいじった?最初は色出てたとか言われたんですが勘違いだったのでしょうか?

985 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 17:11:11
【1 OSの種類         .】 Windows**
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 虚数 乗 小数
こんにちは。行き詰ったとき度々お世話になっています。
虚数の小数乗(1.5~1.9)を計算する必要があり、調べたところIMPOWERとIMSQRTを組み合わせればできると思ったのですがうまくいきません。
具体的にはIMPOWERを用いて3乗した後、IMSQRTを1回使用したり、IMPOWERを用いて15乗した後、IMSQRTを3回使用したりしました。
試しにIMPOWERで4乗した後IMSQRTを1回使用したものと、IMPOWERで2乗したものを比べてみたところまったく違う結果が出たので
比較してみてやっとIMSQRTでは正数しか算出されないのでうまくいかないとわかりました。
そこでこの問題を解決する方法か小数乗を計算できる他の方法を教えていただきたいです。
どなたかよろしくお願いします。

986 :985:2009/07/04(土) 17:40:43
985を書き込んだものです。
自分の参考にしたサイト(ttp://www.cs.reitaku-u.ac.jp/infosci/excel/excel10.html#engi)
には「IMPOWER 複素数の整数乗を返します。 」と記述されているのですが、EXCEL2007では小数乗もIMPOWERで計算できるようです。
この記述を読んでいたので整数しか試していなかったのが盲点になっていました。
もし調べていただいた方がいればお手数かけて本当に申し訳ないです。
しかもテンプレ埋めきれてませんね…OSはVistaです。重ねて申し訳ありません。
次に利用させていただく際にはこのようなことは無いよう努めますので、その際はどうかご助力ください。
お騒がせしました。


987 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 17:41:48
Excelファンクラブ落ちてるね

988 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 17:42:50
うん、数日前からね。

989 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 20:15:34
>>976
お前も間違えてるじゃん

990 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 20:22:50
>>975
今回のケースじゃないけど、
会社から勤務表フォーマットを送られていろいろ入れたけど、何をどうやっても計算が合わない。
で、聞いたら途中で新規で行を追加したら非表示設定の部分の計算列が丸ごと空白になっていて
そりゃ計算があわないわなって事はあったなぁ。

ふざけんじゃねぇと思ったが、
ドシロウトにの人間に文句言うのは簡単だけど、
そういう隠しキャラはこっちには見つけられっこないし。

991 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 21:06:58
非表示になってたら表示してみるのは男のさが

992 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 21:29:58
表示ロックしてる
計算式の部分は非表示にしてる

993 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 21:32:17
ついに>>622は答えてもらえなかったか

994 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 21:37:59
>>993
具体的な内容を見ないとナンとも
ブックをアップロードして

995 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 21:45:55
Excel総合相談所 84
ttp://pc11.2ch.net/test/read.cgi/bsoft/1246711121/
立てた

うめ

996 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 21:48:55


997 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 21:55:49
>>994
さすがに勤務表は会社の固有資産なのでここで公開するのは無理
それにすでに修正は入っているから目に見えるバグはなくなってる

998 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 22:03:56
句読点が打てないバカw
社会人失格だなw

999 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 22:11:21
NO ERRORです

1000 :名無しさん@そうだ選挙にいこう:2009/07/04(土) 22:11:36
>>1000なら俺は天才。
>>999なら俺は盆栽。

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

317 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)