Excel総合相談所 98

このエントリーをはてなブックマークに追加
1名無しさん@そうだ選挙にいこう
▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★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総合相談所 97
http://hibari.2ch.net/test/read.cgi/bsoft/1304307841/
2名無しさん@そうだ選挙にいこう:2011/08/09(火) 22:32:38.72
▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━
・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名無しさん@そうだ選挙にいこう:2011/08/09(火) 22:32:48.67
★ルールを無視すると…
 >>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名無しさん@そうだ選挙にいこう:2011/08/09(火) 22:33:04.20
★ 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名無しさん@そうだ選挙にいこう:2011/08/09(火) 22:33:14.82
上記 「Excelで出来ないこと、仕様上の制限」 は、一般的に出来ないとされていること、出来ないと思われるものです。
間違いがある可能性もあるので、上記に挙がってるもので「コレはこうすれば出来るよ」というものがあったらご指摘ください。
Excel2010についても未確認な項目が多いので変更点が有ればご指摘下さい。

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

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

以上でテンプレ終わり (Excel総合相談所 94からコピペ、一部改定)。
6名無しさん@そうだ選挙にいこう:2011/08/10(水) 14:05:44.15
ここの回答者ってほんとに頭いいですよね
7名無しさん@そうだ選挙にいこう:2011/08/10(水) 19:38:09.92
はい
8名無しさん@そうだ選挙にいこう:2011/08/10(水) 20:52:14.25
>>6
はい。私以外は皆、頭の良い方達ばかりです。
9名無しさん@そうだ選挙にいこう:2011/08/11(木) 10:38:07.05
excel2003に「Microsoft数式3.0」をアドオンして使っています。
数式を表示させるため、同アドオンのオブジェクトを挿入しました。
で数式を書いて表示しました。

ここまではOKなのですが、Excel上でオブジェクトのサイズを広げてしまうと、それに併せてストレッチされてしまいます。
例えば縦に伸ばすとそのまんま、縦長になります。香港映画ですよ。

縦横比が狂うと、∫が全部違った角度で寝てしまいます。

オブジェクトのサイズを広げても一定のフォントサイズで綺麗に書かれていてほしいのですが、どうすればよいのでしょうか?
(Excelワークシート上でオブジェクトをリサイズするのが御法度なの?)
10名無しさん@そうだ選挙にいこう:2011/08/11(木) 11:10:52.03
オートシェイプのサイズを変更したくない
http://www.relief.jp/itnote/archives/000480.php
11名無しさん@そうだ選挙にいこう:2011/08/11(木) 11:15:10.13
【1 OSの種類         .】 Windows Vista
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 (excel 入力 ジャンプ先) (excel 入力 enter 位置)

ttp://muryoudeai.sumomo.ne.jp/up/src/up1439.jpg
上記画像のように、
Aでenterを押すとBに入力位置が常に自動で移動する方法は
ないでしょうか?
あらかじめctrlでセル選択やジャンプのダイアログではなく、入力するべき欄の
末尾でエンターを押すと、次の入力するべき欄の先頭へ常に自動で
移動するようにしたいのです。
マクロで実現しているのは見かけましたが、当方、教える相手先ともに
マクロは使えないのでできればマクロなしでお願いします。
12名無しさん@そうだ選挙にいこう:2011/08/11(木) 14:12:56.55
>>11
簡易に [Ctrl] + 左クリックで、入力したい範囲を指定(反転)させておく
  または
様式が決まっているなら、入力範囲のロックを外してして、シート保護をかける。
13名無しさん@そうだ選挙にいこう:2011/08/11(木) 15:30:26.62
>>12
ありがとうございます

>入力範囲のロックを外してして、シート保護をかける。
これでTABキーで入力したい位置にだけ移動は
できるようですが、
入力欄末尾でenterを押すと次の入力欄の先頭に行く
という風にする方法はないのでしょうか?
14名無しさん@そうだ選挙にいこう:2011/08/11(木) 16:24:50.55
>>10
ありがとうございます。

どうやらオブジェクトのサイズを変更したりせず、
しかもオブジェクトをダブルクリックして編集するのではなく、
右クリックでコンテキストメニューから「開く」とやって、
専用の数式エディタを起動した後、メニューから「Excelに戻る」みたいなヤツを選んで抜けると
正しいサイズで描画してくれるようです。

ゴミか。。どうしてマイクロソフトの技術はいつもそんなんばかりなんだ
15名無しさん@そうだ選挙にいこう:2011/08/11(木) 16:59:56.14
Aファイルのシート1のセルデータを
Bファイルのシート1の元からあるセルデータの末端から
結合して貼り付けるには、どのようなVBAのコードをかけばよいでしょうか?
データはstring型です。

2003です。
16複乳:2011/08/11(木) 18:04:04.88
>>15
開始も終了もよく分からないし、最初から末端かけてどういう順序かもわからない
まー大体は
dim 文字列 as string
最後 = ctrl+↑
for 1= to 最後
文字列 = 文字列 & cells(i,1).value
みたいな感じ
17名無しさん@そうだ選挙にいこう:2011/08/11(木) 18:14:26.62
>>16
あ、そんな感じでおkです。
セルへの文字列結合の数式が分からなかったので・・・
&でいいのですねー ありがとうございます
18名無しさん@そうだ選挙にいこう:2011/08/11(木) 20:47:15.23
僕の家のPCに入っているのはoffice2003なのですが
友だちが使っている2010を使いたいです

友だちのoffice2010のデータをコピーなどで入れることはできないでしょうか?
19名無しさん@そうだ選挙にいこう:2011/08/11(木) 21:04:22.90
>>18
無理です。買ってね(`・ω・´)
20名無しさん@そうだ選挙にいこう:2011/08/11(木) 21:40:12.30
A列に上から「田中・田中・鈴木・鈴木・伊藤・伊藤」と並んでいるとします。
このA列を利用して、別のセルに「田中・鈴木・伊藤」と3つのプルダウンメニューから選べる方法はありますか?

名前はよく追加されるので(佐藤が追加される。伊藤がなくなるなど)
リストを作らずにA列参照にて出来る方法があればと思っています。

EXCEL2003です。
21名無しさん@そうだ選挙にいこう:2011/08/11(木) 21:53:00.61
>>19
そうですか
ありがとうございました
22名無しさん@そうだ選挙にいこう:2011/08/11(木) 21:57:23.01
>>18
大学生だったら自分の通っている大学がMSキャンパスアグリーメント
という包括契約をMSと結んでいるかどうか調べるといいよ。そこの
大学生ならOfficeは無償で出来るはず。
23名無しさん@そうだ選挙にいこう:2011/08/11(木) 22:08:38.81
>>20
作業列を使うなら、
どっかの列(この場合B列)に、
=INDEX(A:A,SMALL(IF(MATCH($A$1:$A$20&"",$A$1:$A$20&"",0)=ROW($A$1:$A$20),ROW($A$1:$A$20),10^3),ROW(A1)))&""
と入力して、式を編集状態の時に、CTRL+SHIFT+ENTERで確定させる
(式の前後に { } がつく)
適当に下までずるずるっとコピー

リストは
=OFFSET(B1,0,0,COUNTIF(B:B,"?*"))
こんな感じで指定
24名無しさん@そうだ選挙にいこう:2011/08/11(木) 22:11:01.37
あ、元の列の途中に空白が出来るとうまく行かないよ
25名無しさん@そうだ選挙にいこう:2011/08/11(木) 23:29:21.65
Excel2007から様々な仕様が変更されたのはわかっていましたが,
2007と2010の違いに悩まされています。
関数が少し増えたのと,UIが多少変わったぐらいと考えていたのですが・・・

2010で作った条件書式を使ったファイルを2007で開くと,意図したようになりません。
2010と2007の挙動の違いについて,まとめてあるサイトなど教えていただけないでしょうか?
26名無しさん@そうだ選挙にいこう:2011/08/11(木) 23:36:50.09
27名無しさん@そうだ選挙にいこう:2011/08/12(金) 15:12:12.38
EXCEL2010でガントチャートをシェイプで作成したけど、そのシートをコピーしたらシェイプが全くコピーされない謎現象が発生しました。
こんな現象聞いたことありますか?
28名無しさん@そうだ選挙にいこう:2011/08/12(金) 21:13:10.30
はい。あります。
29名無しさん@そうだ選挙にいこう:2011/08/12(金) 21:59:22.33
rank関数で出した順位を☆で表示させたいと思い
countif関数で出来そうと試したのけれど失敗しました
分かる方お願いします

178pt 1位 ☆☆☆☆☆
163pt 2位 ☆☆☆☆
145pt 3位 ☆☆☆
120pt 4位 ☆☆
107pt 5位 ☆

こういう感じです。ソフトはExcel2007です。
お願いします。
30名無しさん@そうだ選挙にいこう:2011/08/12(金) 22:03:36.06
>>29
よく分からないのですが、1位は必ず☆が5個とか決まってるの?
であれば、b1に1と入っているとすると
=REPT("☆",6-B1)

だけど、たぶん違うんだろうなあ
31名無しさん@そうだ選挙にいこう:2011/08/12(金) 22:11:38.58
>>30
素早い返信に感謝です。
教えて頂いたREPT関数で思い描いていたことが出来そうです。

上記に出した参考例では5人の中でという前提なので☆5個表示でよかったです。
実際は仲間内6人でポイントを競うゲームをしているので1位は☆6個表示になりますが(笑

まだまだ勉強が足りませんでした。ありがとうございました。
32名無しさん@そうだ選挙にいこう:2011/08/13(土) 00:33:39.44
>>29
対象数が可変する場合の式
=IF(B1="","",REPT("☆",SUM(COUNTA(B:B)+1)-LEFT(B1,LEN(B1)-1)))

※ >>30さんの式を参考にさせていただきました。
3329:2011/08/13(土) 19:43:16.49
>>32
帰省中で今すぐには確認できないのですが
後学のため提示頂いた方法は試してみます
ありがとうございました
34名無しさん@そうだ選挙にいこう:2011/08/13(土) 21:17:57.91
一日一回計測した数値データが数年分あり、これを折れ線グラフにしたいと
思っています。ただし計測をしていなかった日が不定期にあるので、そのまま
折れ線グラフにしてしまうとグラフの傾斜の意味が時期によって異なってしま
います。

これを週平均データとすることで傾斜の意味は一定になると思うのですが(平均
算出のためのケース数が異なることには目を瞑るとして)どのようにすれば効率
的に日データを週平均データとすることが出来るのでしょうか?

ExcelはMac, Winの2004以降の各版があります。
よろしくお願いします。
35名無しさん@そうだ選挙にいこう:2011/08/13(土) 21:41:24.97
>34
日付データから 年 と その日がその年の第何週目にあたるか を作業列に出して、
ピボットテーブルで週毎の平均だしたらどうですか?
日付データがA列、数値データがB列にあるとして、作業列に=Year(A1)*100+Weeknum(A1)で
6桁の数字が出ます。
36名無しさん@そうだ選挙にいこう:2011/08/13(土) 22:34:28.24
>>35
早速のご教示ありがとうございます。恥ずかしながらWeeknum関数という便利なものが
あるのを知りませんでした。昔の版でも分析ツールを入れることで動作いたしました。
37名無しさん@そうだ選挙にいこう:2011/08/14(日) 17:30:39.14
>>34
考えた方法でもいいでしょうけど、
折れ線じゃなくて、散布図で観測された点をつなぐんじゃだめなの?
3834:2011/08/14(日) 18:02:20.68
>>37
ご教示ありがとうございます。散布図試してみました。これだと横軸=日付の時、観測実施日の
疎密に横軸の間隔が影響されないのですね。勉強になりました。


39名無しさん@そうだ選挙にいこう:2011/08/14(日) 19:56:32.11
XP、Excel2003使用。
一つのセル内に時間(hh/mm/ss,0)を表す数値が入っていたとします。
00 01 20 160

これを

00:01:20,160

こんなふうにして数字の空白に記号を追加することは可能ですか?
セルの書式設定をしようにもイマイチうまくいきませんでした。
どなたかお知恵を…。
40名無しさん@そうだ選挙にいこう:2011/08/14(日) 20:28:46.53
>>39
エディタと併用した方が簡単かと思います。
問題となっている列だけを例えば秀丸に書き出します。

置換で正規表現をチェックし次のようにします。spaceは実際にスペースをうちます。

検索:^(..)space(..)space(..)space(...)
置換:¥1:¥2:¥3,¥4

うまく置き換わったら、これをエクセルに読み戻せばいいはずです。
41名無しさん@そうだ選挙にいこう:2011/08/14(日) 20:56:21.81
>39
>ss,0
ss.000じゃなくて?
42名無しさん@そうだ選挙にいこう:2011/08/14(日) 20:59:43.64
>>39
2桁(スペース)2桁(スペース)2桁(スペース)3桁

↑絶対にこのリズムが守られているんであれば、一旦数値を4つのセルに分解して、
記号を追加した上で一つのセルに集合させることもできるけど…
43名無しさん@そうだ選挙にいこう:2011/08/14(日) 21:15:14.68
"160"の手前の文字がコンマじゃなくて小数点なら時間として認識したんだけど↓
A1セル 00 01 20 160
A2セル =MID(A1,1,8)&"."&MID(A1,10,3)
A3セル =SUBSTITUTE(A2," ",":")*1
44名無しさん@そうだ選挙にいこう:2011/08/14(日) 21:40:55.02
>>39
【A】 時、分、秒、ミリ秒をそれぞれ切り出して、シリアル値に変換する方法
=TIME(LEFT(A1,2),MID(A1,4,2),MID(A1,7,2))+(RIGHT(A1,3)/24/60/60/1000)

 (TIME関数の第三引数に小数を渡してもミリ秒として扱われないので、ミリ秒は算術演算でシリアル値化する)


【B】 「時:分:秒.ミリ秒」形式の文字列を作って、シリアル値に変換する方法
=TIMEVALUE(SUBSTITUTE(LEFT(A1,8)," ",":")&"."&RIGHT(A1,3))

 (シリアル値への変換は、*1などの無意味な算術演算をする方法もあるが、可読性が落ちるのでTIMEVALUE使った方が良い)


「0 1 20 60」を「00:01:20.060」にしたいとかなら、正規表現でも一発では対応出来ない(ミリ秒部が0.060秒ではなく0.600秒扱いになる)ので
正規表現2段重ねかVBAってことになるが、わざわざ「00」「01」と表記してるってことは、各位の桁数というか文字数は揃ってるのだろうから
それならわざわざ外部エディタで正規表現使うまでもない

因みにミリ秒の区切り文字は「,」ではなく「.」が正解ね
文字列として表示だけ整えば良いなら「,」で表示することも可能だが、日時データとしたいなら「.」を使うこと
4543:2011/08/14(日) 21:58:21.37
>>44が最も合理的な回答で自分の書き込みが恥ずかしい・・
46名無しさん@そうだ選挙にいこう:2011/08/15(月) 12:58:14.27
文字列0のセルを、空白と認識させる方法はありますか?


47名無しさん@そうだ選挙にいこう:2011/08/15(月) 13:01:11.28
>>46
ケースによる。
48名無しさん@そうだ選挙にいこう:2011/08/15(月) 13:42:10.01
>>39です。
>>44が最も合理的とのことですが、浅学のためシリアル値という単語も
timevalueという関数も初めてだったので、自分の頭では
>>43のやり方のほうが理解しやすかったようです。
いずれにせよ、皆さま教えて下さってありがとうございました。
ここには天才がたくさんいらっしゃるんですね…。

もう一つだけ、あとでまた質問するかもしれません。
4946です:2011/08/15(月) 17:42:57.82
>>47

データの入力規則→入力値の種類→リスト
(空白を無視する、ドロップダウンリストから選択))
としていて、元の値にif関数で作った””(文字列ゼロの空白)があって
それが空白として無視されないのですが
50複乳:2011/08/15(月) 17:47:09.32
>>49
エクセルの仕様です
""は、文字列0のセルではない別の何かと認識されます
>>49さんの場合、文字列0は恐らく未使用セルと置き換えたほうが良いでしょぅ

その条件でリストを作るなら作業列に、空きセルのない自作リストを作ると良いと思います
もしくはvba
5146です:2011/08/15(月) 17:59:05.49
>>50
迅速な回答ありがとうございます!!
やっぱり仕様ですか・・・

""を未使用セルに置き換えたんですが
そしたら空白じゃなくて「0」になってしまいます・・・
52複乳:2011/08/15(月) 18:17:52.44
>>51
エクセルの仕様です。
未使用セルは文字列0、数値も0という前提で計算やら何やらされます(エラー値は別です)
式も入ってない未使用セルならisblankでTRUEが帰りますが・・・

式が入ってるセルに、isblankは通用しません

仮にそのifの式の戻り値を"hoge"として、
=COUNTIF(A:A,"hoge")
とかするしかないですねー
5346です:2011/08/15(月) 21:21:56.87
>>52
結局自作リストにしました
お世話になりました
54名無しさん@そうだ選挙にいこう:2011/08/15(月) 22:44:34.41
つーか、「空白を無視する」の意味を勘違いしてないか?

なんか

1|AAA
2|BBB
3|
4|CCC
5|DDD
6|
7|EEE

というソースから

3行目、6行目を無視して

[    ]▼]
 AAA
 BBB
 CCC
 DDD
 EEE

というリストを作りたがってるように見えるけど、「空白を無視する」ってのはそういう意味じゃないぞ
たとえ完全な空白(Empty)にしても、こうはならない

「リスト」以外の入力規則でも、この「空白を無視する」ってオプションがあるのを見れば解るとおり
これはリスト表示を行う上でのオプションではなく、入力規則全体の、入力制限上のオプション

リストの使い方で言えば、通常、入力規則のリストを設定したセルには、リストにあるものしか選択出来ず
任意の入力は出来ないが、このオプションを使うとリストからの選択も、任意の入力も出来るセルを作れる
コンボボックスで言うところの、ドロップダウンリストとドロップダウンコンボの違いみたいなものだ
55名無しさん@そうだ選挙にいこう:2011/08/15(月) 22:45:07.97
因みに
> ""は、文字列0のセルではない別の何かと認識されます
は間違い
""は文字列(長)0のセルと認識される
ただ、文字列(長)0のセルは、Blankと認識されないだけ

VBAで言うと、Emptyは数値にすれば0で、文字列にすれば""で、論理値にすれがFalseだが
0も""もFalseもEmptyそのものではなく、EmptyでなければBlankではないってことだ

ということで
> 未使用セルは文字列0、数値も0
も間違い

未使用セルはEmptyで、Emptyを文字列にすると文字列長0の値になり、数値にすると0という値になるだけで
未使用セルが文字列長0の値や、0という数値を最初から持っているわけではない
56名無しさん@そうだ選挙にいこう:2011/08/16(火) 02:53:14.91
【1 OSの種類         .】 Windows7 pro 64bit
【2 Excelのバージョン   】 Excel07
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】「VBA セル 入力」など

VBAを使用して、特定のセルに関数を入力したいです。
その際、引数の一部に、VBAで取得した変数を利用したく、

Sub tes()
Dim a As String
Dim b As String
a = InputBox("url")
b = "http://www." & a & ".co.jp"
Cells(1, 1) = "=hyperlink(" & b & ")"
End Sub

のようなコードを組んだのですが、実行時エラー1004のエラーが出ます。
エラー名でググっても解決方法が出ないのでお手上げ状態なのですが、
引数に変数を利用した関数を入れることはできないのでしょうか?
57名無しさん@そうだ選挙にいこう:2011/08/16(火) 03:16:53.66
>>56
Excel07 で動くかどうかはしらんよ(笑)

Cells(1, 1).Formula = "=hyperlink(""" & b & """)"
58名無しさん@そうだ選挙にいこう:2011/08/16(火) 12:55:56.75
>>57
できました。ありがとうございます。

office tanakaのダブルコーテーションのtips読んでもあまり理解できないのですが、
両端の"で文字列と認識させて、中の"""ではさむと、エスケープできるってことで良いのでしょうか?
59名無しさん@そうだ選挙にいこう:2011/08/16(火) 13:26:38.10
【1】Windows7
【2】Excel2007
【4】VBA不可

PHONETIC関数で表示される ふりがな をまとめて編集したい

A列:漢字の名前データ
B列:ひらがなの名前データ

データは多数あり、A列とB列の対応は取れています。
B列のデータをA列の名前の「ふりがなデータ」として一気に流し込むようなことは可能でしょうか?

やはり全部手打ちで入れるか、「ふりがなの表示」から編集するしかないでしょうか?
60名無しさん@そうだ選挙にいこう:2011/08/16(火) 13:55:28.02
>>58
ちょっと違うような
 >両端の " で文字列と認識させて、中の"""ではさむと、エスケープできる
ぢゃなくて
 >両端の " で文字列と認識させて、中の"" が 文字 " として認識される
だよ
文字列記述  "=hyperlink(""" は
文字列として =hyperlink(" を表している
61名無しさん@そうだ選挙にいこう:2011/08/16(火) 14:25:32.43
>>59
VBA使えばどうにでもなるけど、VBA無しだと最後の1行のようにやるしかない
62名無しさん@そうだ選挙にいこう:2011/08/16(火) 20:53:35.90
>>61
質問者じゃないんですが、VBAだとどうなるのか教えてください。
63名無しさん@そうだ選挙にいこう:2011/08/16(火) 21:12:38.08
>>61 どうも。りょうかいです
64複乳:2011/08/17(水) 00:06:44.58
6562:2011/08/17(水) 01:00:17.45
>>64
ありがとうございます。このサイト知りませんでした。
66名無しさん@そうだ選挙にいこう:2011/08/17(水) 19:47:50.87
質問です
G5セルが○の時A5~G5セルに色をつける、というのを条件付書式でやったのですが、
これをA500~G500セルまでする方法はありますか?
そのまま下げてくとA5~G5の文章が下がっちゃって;;
>>66
A5:G5を選択したらG5セル右下の罫線位置にある黒十字をクリックしながらG500セルまで下げるとか。
68名無しさん@そうだ選挙にいこう:2011/08/17(水) 20:37:59.30
それだと入力してある文字が下がっちゃって・・・
69名無しさん@そうだ選挙にいこう:2011/08/17(水) 20:41:25.41
XP 2003
横棒グラフについて

牛丼  12
天丼.   7
親子丼. 6
中華丼. 2
その他. 4

上記のような表があったとして、これで横棒グラフを作った場合、
どうしても「その他」が一番上に来る仕上がりになってしまいます。
しかも他のグラフと違って順番の入れ替えができず…

表とグラフを一緒に印刷したいので、縦の並び順が同じになるのが希望です。
今はグラフ用に順番を逆にした表を用意して、その表は非表示にした上で印刷しています。
毎回のことで面倒なので、一つの表で表と同じ並び順の横棒グラフを作成する方法が
ありましたら是非アドバイスをお願いします。
>>68
じゃあ、先に入力されている文字をどこかに避難(コピペorカット&ペースト)しておけばいいんじゃないかな?
71名無しさん@そうだ選挙にいこう:2011/08/17(水) 20:48:30.37
72名無しさん@そうだ選挙にいこう:2011/08/17(水) 21:07:24.29
>>70
出来ました!ありがとうございます
73名無しさん@そうだ選挙にいこう:2011/08/17(水) 23:23:52.89
書式コピーじゃダメだったん?
7469:2011/08/17(水) 23:51:18.27
>>71
うおおおお!出来た、すげええええ!
ありがとう!
75名無しさん@そうだ選挙にいこう:2011/08/18(木) 11:05:51.42
>>71の解説作ってる奴も、表題と冒頭の解説見る限り同じような勘違いをしてるけど、
縦棒グラフの縦軸だと、縦軸のデータを下から積み上げるのが正順で、上から吊り下がるのが反転状態だと見るのに
横棒グラフの縦軸だと、縦軸のデータを下から積み上げるのが逆順だと勘違いする奴がたまにいるんだよな

>>69のデータに対して

その他. |]]]]
中華丼. |]]
親子丼. |]]]]]]
天丼.   |]]]]]]]
牛丼.   |]]]]]]]]]]]]

というグラフは、間違いなく「表と同じ並び順」であって、間違っても逆順じゃない

小学校で習うが、棒グラフの基点は縦横基準軸の交差するところで、標準的には左下になるから
その基点から1番目に1件目のデータ、2番目に2件目のデータと「表と同じ並び順」に並べれば、
上記のグラフのようになる

Excelで横棒グラフの基点を左下ではなく左上にしたいと言うならまだしも
縦軸の並びが逆になるからデータと同じ順に直したいとか言い出す奴が出る度に、
「こいつは算数レベルの理解すら出来てないんだなぁ」と思わずにはいられない
76名無しさん@そうだ選挙にいこう:2011/08/18(木) 11:23:29.56
ある列全体のセル要素に、シングルコーテーションで囲うのを一気にやりたいのですが、
何か機能的なもので簡単にできますか?
77名無しさん@そうだ選挙にいこう:2011/08/18(木) 11:30:56.57
=CONCATENATE("'",a1,"'")
78名無しさん@そうだ選挙にいこう:2011/08/18(木) 11:38:52.76
>>77
サンクス!
79名無しさん@そうだ選挙にいこう:2011/08/18(木) 12:25:00.77
="'"&a1&"'"
80名無しさん@そうだ選挙にいこう:2011/08/18(木) 18:46:14.78
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 excel 2010 オブジェクトの位置またはサイズが変更されます

元はexcel2003で作成したブックを2010で使用していたところ、
セルを選択したり、スクロールしたとたんに「オブジェクトの位置またはサイズが変更されます」というダイアログが延々と出続けます。
シート上にはオブジェクトはありません。
OKしか押せない上、×で閉じてもいつまでも出てきます。
どうしようもなく強制終了しています、対策はないのでしょうか。
81名無しさん@そうだ選挙にいこう:2011/08/18(木) 19:16:02.78
Excelの使い方を説明する書類を作りたいのですが、参考書にあるようなワークシートやツールバー等のExcelの画面は、どうすればwordに使用できますか?

最近一般の方のHPでも、初心者向けにわかりやすくツール→データを開いた項目が掲載されていますよね。文章のみの説明より実際の画像があればわかりやすくなるので、どなたかアドバイスお願いします。
82名無しさん@そうだ選挙にいこう:2011/08/18(木) 19:16:36.80
2つファイルを開かせて、前者のデータを後者のデータにデータを流し込む
作業をしたいのですが、マクロでどのように作ればよいでしょうか?
問題点は、ファイルによって読みだし箇所、書き出し箇所が違います。(読み込み開始の行・列・シート)

[1] 読み出し用ファイルの見出し開始列をユーザが選ぶ。(見出しのある所が1行目と限らないので)
[2]選んだ、もしくは入力した列から最大列を読み込む。
例:見出し開始は、A3だとする。 そこからA3「氏名」 B3「電話番号」 C3「クラス」のように見出しをプログラムがかき集める
[3]それぞれの見出しの内容を、2つめのファイルのどこに書きだすか聞く
  例:1つめのファイルの「氏名」は2つめのファイルのどのシートのどこに書き出しますか?→入力例:シート名を選んだあと「A1」
    上の処理が終わったら、「電話番号」はどのシートのどこに書き出しますか?→シート名を選んだあと「A1」 (ファイルの選択は1度やっているので再度は聴かない)
[4]見出しから一行下にデータが続くのは共通なので、そこから最下部までのデータを流しこんでいく

エクセルは2003です。
ちょっと上の方法しか思いつかないので、他に良い方法があればよいのですが・・・。
83名無しさん@そうだ選挙にいこう:2011/08/18(木) 19:36:53.66
>>81
PrintScreen
84名無しさん@そうだ選挙にいこう:2011/08/18(木) 19:37:46.50
>>81
それはwordスレで聞いたほうがいいんじゃないかい。
85複乳:2011/08/18(木) 19:55:00.98
>>80
コメントを削除するか、オートフィルタを外すか

2010で新しいブックを作って、全シートをコピーするとか
それで無理なら一個ずつコピーするか

イマイチ解決方法が見当たらないね
86名無しさん@そうだ選挙にいこう:2011/08/18(木) 21:25:50.84
質問です
Aの1〜30までに空白or文字が入ってます
文字の入っているセルの合計をA31に出すにはどのような方法が簡単でしょうか?
87名無しさん@そうだ選挙にいこう:2011/08/18(木) 21:28:33.70
>>86
=COUNTA(A1:A30)
88名無しさん@そうだ選挙にいこう:2011/08/18(木) 21:31:36.68
>>87
それでよかったんですね、ありがとうございます
89名無しさん@そうだ選挙にいこう:2011/08/18(木) 22:59:32.96
>81
>83さんのPrintScreenで画面イメージを一時的にコピーしたあと
ペイントに貼り付けて、不要な部分を消したり説明書に必要な範囲を選択して
Wordに貼り付けです。
ただし、マウスカーソル(エクセルだと白くて太い十字、黒くて細い十字、メニュー
から選択してるときの矢印など)は、PrintScreenでは取得できないので、自分で
工夫してください。これ以上のことはWord相談スレにてどうぞ。
90名無しさん@そうだ選挙にいこう:2011/08/18(木) 23:11:48.97
>82
Q1 列の見出しの文字列は毎回決まっているんですか?
   例:氏名、電話番号、クラス・・・というキーワードは毎回固定?

Q2 入力側のブック・シートと出力側のブック・シートとで、見出しの文字列は完全に同一ですか?
   例:入力側は 氏名 になってるけど、出力側は 名前 なんてことはない?
91名無しさん@そうだ選挙にいこう:2011/08/19(金) 07:22:26.34
>>90
レスありがとうございます。たいへん悩んでいるところです・・・

Q1・・・厳密には、いろんなフォーマットから集計を取る作業と、
集計を取ったDBから、様々なフォーマットへ登録する作業があるのです。
基幹となる統一のDBの見出し文字列は、常に同じです。

(例)集計: [A社フォーマット内容]→[社内DB] 登録:[社内DB]→[B社フォーマット]

各社フォーマットは見出しの位置が違うため、どのフォーマットで合っても
どこに見出しがあるか一旦読みだしてから(ユーザに聞いてから)の形式がよいかなーと・・・

Q2・・・上記のことがあるので、一致していません。例を書いていただいたような状態がよくあります^^;
  そのため、エクスポート時にどの列・行に書きだすか、いちいち聞かないといけないのかなと思います。
(ただし、各社フォーマットも毎度仕様が変わるわけではないので、何らかの方法で出力先ポジションを保存できればよいですが・・・)
92名無しさん@そうだ選挙にいこう:2011/08/19(金) 09:41:31.05
>>91
日本語(自然言語)がまともに出来ない奴に
VBA(プログラム言語)は無理だぞ

まずは、自然言語で理路整然とした文章を書けるようになろう
93名無しさん@そうだ選挙にいこう:2011/08/19(金) 14:57:37.89
>>92
すんません・・・
フォーマットが違う物同士を、指定した箇所(行・列)にエクスポートできるようなものがほしいのですが・・・
94名無しさん@そうだ選挙にいこう:2011/08/19(金) 15:19:13.73
>>93
データの要素は氏名、電話番号、クラスの3つでいいの?
95名無しさん@そうだ選挙にいこう:2011/08/19(金) 15:48:11.18
>>94
収集用のデータ要素は、かなりあります。
新しいものを扱うタイミングで、要素が追加になることもあります。
ついでに、エクスポート先のフォーマット次第では、
要素の一部を別のシートへ入れ込んだりもします。

両者一覧化した状態で、ユーザに紐付けさせてからインポート・エクスポートを動的に行う必要があるのでは・・・と思っています。
96名無しさん@そうだ選挙にいこう:2011/08/19(金) 17:58:49.47
>>85
ありがとうです
やはりいい解決法は無いみたいですね。

バグっぽい意見もあったようなので、修正アップデートまちます。
9790:2011/08/19(金) 18:37:46.47
>82,95
入力側と出力側で「項目見出しの文字列」が一致しない場合があるのであれば、
別のシートで対応付けさせる必要がありますね。
>エクスポート先のフォーマット次第では、 要素の一部を別のシートへ入れ込んだりもします
ここまでくると具体例を(データは架空のものとして)画面イメージをどこかのアプロダに示して
もらわないと無理なんじゃないかなあ。

念のため確認しますが、入力側の項目見出しと出力側のそれは、1対多ですか?それとも
多対多ですか?

1対多 とは:入力側は 氏名、電話番号、クラス・・・であるが、出力側は
         「氏名」に対応する部分が氏名、名前、氏名(漢字)・・・
         「電話番号」に対応する部分が電話番号、TEL、Tel・・・

多対多 とは:入力側も「氏名」だったり「名前」だったりバラバラ
          
98名無しさん@そうだ選挙にいこう:2011/08/19(金) 19:20:54.23
>>97
うまく説明できずにすいません・・・

■統一用 
※こちらは、項目は変更ありません。

[A1:氏名][B1:電話番号][C1:クラス][D1:出席番号]・・・

■色んなフォーマットDB
※フォーマットの一例

[A3:名前][B3:組名][C3:TEL][D3:成績]

この場合、成績の列は統一用の要素に必要ないので、A3〜C3を、それぞれインポートしたいです。
例 他[A3:名前]→統[B3:組名]

色んなフォーマット側から統一用へ流すときもあります。(過去入力分の集計のため。)
なので、汎用的にデータを相互移動できる仕組みに捉えたほうがいいかもしれません。
(色んなフォーマットには、シートが2あったりするときもあります。)
フォーマットによって見出しの開始位置も違いますので、そのせいで一回見出しをユーザに選んでもらおうかと・・・
9990,97:2011/08/19(金) 19:34:56.37
>82,95 いくつか質問です。
集計: [A社フォーマット内容]→[社内DB] の部分と
登録:[社内DB]→[B社フォーマット] の部分のそれぞれの処理が必要、ということですか?

それと、[社内DB]における項目数(列の数)は実際にどれだけありますか?
また、集計の方の入力側のフォーマットは何パターンぐらいありますか? 実際にデータがきてからでないとわかりませんか?
同じように、登録の方の出力側のフォーマットは何パターンぐらいありますか? 実際にデータをつくるときでないとわかりませんか?

>82の[3]を見て疑問に思ったのは、出力側シートにはあらかじめ項目見出しがなく、操作する人が
「この項目は○列」って個別に指定しなきゃならないんですか?(出力シートの1行目からデータだけ?)
100名無しさん@そうだ選挙にいこう:2011/08/19(金) 19:51:37.04
>>99
>それぞれの処理が必要、ということですか?

必要になってしまいます。
集計とレポートを行うため、といえば通じるでしょうか…?

社内DB(統一DB)の列数は、65あります。

登録のフォーマット側は10パターンほどありますが、まれに仕様変更があります。

82の[3]の部分は大変紛らわしくてすいません。
出力先は必ず見出しはあります。ただ、出力元の要素ごとに書き出し先が順に流し込まれるわけではないので、
出力元の要素(例:氏名)を出力先のどの要素に出力しますか?のようなアナウンスを入れたらよいかなと・・・。(例:名前)
101名無しさん@そうだ選挙にいこう:2011/08/19(金) 20:06:01.48
【1 OSの種類         .】 Windows vista
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 excel 条件付き書式 削除

ファイルが重いので、条件付き書式によるセル色の変更を維持しつつ条件付き書式を削除できませんか。
数式はコピーして[値]で貼り付けをすることで、結果だけにできたので、書式も同じようにして軽量化したい。
102名無しさん@そうだ選挙にいこう:2011/08/19(金) 20:16:45.87
>>101
今メモリー価格安いらしいからメモリー増設したら?
103名無しさん@そうだ選挙にいこう:2011/08/19(金) 23:30:16.40
>>89
ありがとうございます。>>83さんのコメントを見た後にスレチに気づきました。親切に教えてくださったので頑張ります!
104名無しさん@そうだ選挙にいこう:2011/08/20(土) 00:41:45.19
>>101
今VBA組めないので考え方だけだけど
条件にあてはまるセルを塗るというプログラムを組んで走らせて、
後でも先でもいいから条件付き書式を削除すればいいだけの話だよね
105名無しさん@そうだ選挙にいこう:2011/08/20(土) 14:07:09.79
WindowsXP
Excel2007
VBA/はい(少し) /可
「EXCEL 検索 個数 含む」や「COUNTIF」

A B C
1あ 1 あいううう
2い 6 いいいいい
3う 3 かかかかか

上記A列に書いてある文字列が、ある範囲内(C1:C3)に何個あるか検索します。
その結果(個数)をB1、B2、B3…とそれぞれの隣の列に表示していきます。

B1に数式を入れ込み、あとはオートフィルタで結果を簡単に出したいです。
どうぞ、よろしくお願い致します。


=COUNTIF(C1:C3,"*"&A1&"*")
とした所、セルの個数はでてきたのですが、文字の個数が出てきませんでした。
10690,99:2011/08/20(土) 14:09:28.82
>82,100
処理を実行するときに、「この項目はこの列、この項目はこの列・・・」と指定していくなんてこと、
項目数が数個ならともかく、65個もあるのにいちいち指定するのは間違いのもとでしょう。
フォーマットの種類が10パターン程度ということであれば、設定用のシートに統一DBと各社
独自フォーマットの対応一覧を作っておいて、どのフォーマットで入・出力するのかを操作員に
選ばせるのが無難。
対応一覧に載せるのは「列名」ではなく「項目名」の対応とすれば、実際の列が変わっても
柔軟に対応できると思う。対応表をボチボチ作っているので、できたらどこかにUpします。
107名無しさん@そうだ選挙にいこう:2011/08/20(土) 15:35:04.52
【1 OSの種類         .】 Windows 7
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】計算 範囲 

6500という数字があります
1-3000は*5、3001-5000は*3、5001-は*1という計算をして、
それぞれの答えを出したいのです。
   A    B   C   D
1  6,500
2     1-3,000   5  15,000
3   3,001-5,000   3  6,000
4   5,001-     1  1,500
5         合計  22,500
としたいです。
合計はSUMで出せばいいですが、その上の小計をどういう式で書けばいいのか迷っています。
いつも範囲の境目が3000、5000ならいいのですが、その都度変わります。
変更がある点は3点です。
「6500」「範囲の境目(今回なら3000と5000)」「掛ける数字(5、3、1)」です。
範囲の境目については、無い場合もあります。これがややネック。

自分なりに考えた結果、IF関数を使った式を使いました。
D2「=IF(A1>=B2,B2*C2,A1*C2)」
D3「=IF(A1>=B3,(A1-B2)*C3,(B3-B2)*C3)」
D4「=IF(A1>B3,(A1-B3)*C4,0)」
D5「SUM(D2:D4)」
以上です。
ただ、これだと問題点が2点ありまして…。
1、範囲がなくなったときに数式が出せない。
2、A1がB2以下だと、D3がマイナスで計上されてしまう。
助けて下さい。頭こんがらがりました。
108名無しさん@そうだ選挙にいこう:2011/08/20(土) 16:40:55.61
>>105
回りくどかったらゴメン。
とりあえずこれで希望する結果は出るけど、VBA書き慣れてる人の手直しキボンヌ


Sub A列と同じ文字数をカウント()

Dim 算出する最後の行 As Integer
Dim C列の文字数 As Integer
Dim A列と同じ文字数 As Integer
Dim i As Integer
Dim j As Integer

算出する最後の行 = Range("A" & Rows.Count).End(xlUp).Row

For i = 1 To 算出する最後の行
Range("B" & i).Select
C列の文字数 = Len(Range("C" & i))
A列と同じ文字数 = 0

For j = 1 To C列の文字数
If Mid(Range("C" & i), j, 1) = Range("A" & i) Then A列と同じ文字数 = A列と同じ文字数 + 1
Next j

Selection.Value = A列と同じ文字数
Next i

End Sub
109名無しさん@そうだ選挙にいこう:2011/08/20(土) 16:42:05.51
>107
A2には0、B2には3000、A3には式=B2、B3には5000、A4には式=B3、B4には99999999とし、
D2セルに  =IF($A$1>=B2,(B2-A2)*C2,(($A$1-A2)*C2)*($A$1>A2))  って入れて、
下にドラッグしてみてください。

範囲の境目がないときは、B2、B3に 99999999 といれたらいいです。
99999999 の部分は、A1に入力する数よりも十分大きな数ならなんでもいいです。
110109:2011/08/20(土) 17:00:16.18
>107
解説というほどのことではありませんが
>2、A1がB2以下だと、D3がマイナスで計上されてしまう
の問題は  (($A$1-A2)*C2)*($A$1>A2)  の部分で解決してます。

掛け算の右側は条件式で、成立しなければ 0 とみなされるので、
($A$1-A2)*C2) がマイナスになる場合は ($A$1>A2) が 0 になります。
111名無しさん@そうだ選挙にいこう:2011/08/20(土) 17:23:32.51
PERSONAL.XLSは編集のためロックされています。
使用者は '水嶋夏月' です。
[読み取り専用]で開くか、または、読み取り専用で開き、ほかの人がファイル
の使用を終了したときに通知を受け取るには、[通知]をクリックします。

Excel2003を機動させると、↑のメッセージが出るので、出ないように
するにはどうすればいいですか?
ググってみたら、XLSTARTフォルダ内にあるPERSONAL.XLSを
削除すればいいとかありましたが、もうね(ry
112名無しさん@そうだ選挙にいこう:2011/08/20(土) 17:25:17.00
>>109
できました!ありがとうございました!!

ちょっといじって、
A2に1、A3には式=B2+1、A4には式=B3+1、B4には999999とし、
D2には  =IF($A$1>=B2,(B2-A2+1)*C2,(($A$1-A2+1)*C2)*($A$1>A2))
にしてみました。
999999の表示も、ユーザー定義で「;;;」にして隠してみました。

本当に助かりました。ありがとうございました!
113109:2011/08/20(土) 17:32:21.70
>112 結果が変になりませんか?
A1セルに 3001 って入れたとき、D2セルに 3 って表示されないと思うけど。
114名無しさん@そうだ選挙にいこう:2011/08/20(土) 17:38:21.88
>>105
=LEN(C1)-LEN(SUBSTITUTE(C1,A1,""))
115109:2011/08/20(土) 17:39:38.17
>112
(($A$1-A2+1)*C2)*($A$1>=A2)
掛け算の右側の条件式に = が必要です。
この場合でも、A1セルに小数点が含まれる場合はへんなことになります。
A1セルに 3000.5 とか 5000.5 など入れてみるとわかります。
116名無しさん@そうだ選挙にいこう:2011/08/20(土) 18:28:06.31
>>106
おお・・・すいません・・・
117名無しさん@そうだ選挙にいこう:2011/08/20(土) 19:11:08.30
>>113
あ、本当ですね。>>115の=を入れたら直りました。
お伝え忘れていましたが、A1には整数しか入らないので、大丈夫です。
ご心配ありがとうございました!
118105:2011/08/20(土) 19:26:44.90
>>108,>>114
回答ありがとうございました。
頂いたデータを参考に試してみます!
119114:2011/08/20(土) 19:50:33.41
間違って理解してました。

とりあえず三つのセルだけのようですので下記の式でB列に入れてみてください。

=LEN(C$1&C$2&C$3)-LEN(SUBSTITUTE(C$1&C$2&C$3,A1,""))
120名無しさん@そうだ選挙にいこう:2011/08/21(日) 11:59:51.27
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel 2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 チェックボックス 関数 (-コントロール)

チェックボックスのレ点の数を数えたいのですが、すでにレ点があるボックスとないボックスがあり
「コントロール書式設定からTRUEを表示させる」→「設定したものをコピー」が使えない状況です。

関数でカウントしたり、レ点の有無を維持したまま設定をコピーできる方法などはあるのでしょうか?
121名無しさん@そうだ選挙にいこう:2011/08/21(日) 16:30:40.24
>>120
ワークシート関数では、直接コントロールの状態を取得することは出来ない
しかし、チェックボックスコントロールの状態は、セルにリンクさせることが出来、
そのリンクさせたセルの値を関数・数式で取得・集計することで、目的は果たせるはず

コピーについては、俺語ではなく日本語で説明してくれないと訳わからん
122名無しさん@そうだ選挙にいこう:2011/08/22(月) 01:11:13.52
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

B列に、yyyy/mm/dd(aaa)で日付を入れてます。
2011/08/20(土)や2011/08/21(日)のとき、
"(土)"を青文字、"(日)"を赤文字にするには
どうすればいいでしょうか。
123名無しさん@そうだ選挙にいこう:2011/08/22(月) 11:32:55.05
セルを分ける。
124名無しさん@そうだ選挙にいこう:2011/08/22(月) 16:53:23.89
>>122
セル分けたくなければVBAだな
全体なら条件付き書式で出来るけど、一部だとVBAしかない

やり方はマクロの記録で"(土)"だけを青文字にする作業を録れば解るはず
あとはIfかSelect Caseで条件分岐させれば良いだけ
125名無しさん@そうだ選挙にいこう:2011/08/22(月) 17:47:58.94
>>122
値を入れるセルと表示するセルが一緒だと無理だと思う。
セルが別でいいなら >>124 の通り。
12690,106:2011/08/23(火) 03:48:13.44
>82,100
遅くなりましたが、列と列の対応の調べ方の部分だけ説明図を作りました。
各社フォーマットのデータを統一DB様式にする方の処理です。
http://www.dotup.org/uploda/www.dotup.org1936618.png.html (パスワードは excel です)
入力側がどのフォーマットかを操作者に選択させても、それが正しいのか間違っているのかを
調べる必要があることに気付いたので、別の方法を検討しているところです。

最初の部分(ブックやシートを指定するところ)から始めるのはそちらの状況をもう少し聞かないと
進められないので、時間がとれたらまとめて質問します。

ところで、この処理って作成期限ってあるの? ここで聞くよりどこかに頼んだ方が早いと思う。
(費用はかかるけど)
12790,126:2011/08/23(火) 07:25:17.19
126で書いた図を基に列の対応を調べる部分はできました。ただし、入力処理(各社フォーマット→統一DB)のみ。
出力処理(統一DB→各社フォーマット)の方は、>98で書いてあるように複数シートに出力の場合があるらしいので、
2ch掲示板上でのやりとりではちょっとむずかしいと思う。
以下は同一ブック内の3シートを「統一DB」「各社フォーマット」「設定」とし、各社フォーマットシートの
項目名や列の並びをいろいろ変えて試したときのVBAマクロです。
Option Explicit
Dim sh_i As Worksheet, sh_o As Worksheet, sh_s As Worksheet
Dim tate_i As Long, tate_o As Long, yoko As Integer, myAREA As String
Dim j As Integer, kensaku As String, c As Variant, a(100) As Integer
rem 配列aの要素数100は65より十分大きな数というだけ
128127:2011/08/23(火) 07:27:28.01
続きです
Sub test()
 Set sh_i = Worksheets("各社フォーマット")
 Set sh_o = Worksheets("統一DB")
 Set sh_s = Worksheets("設定")
' 第一ステップ 列対応の設定
  For yoko = 1 To 7  rem 65列から7列に減らしています
  j = 0
  Do
   kensaku = sh_s.Cells(1 + j, yoko).Value
    If kensaku = "" Then
    kensaku = sh_s.Cells(1, yoko).Value
    MsgBox (kensaku & " に対応する列がありません 異常終了します")
    Exit For
   End If
   If yoko = 1 Then
    myAREA = "A1:IV65536"
   End If
   Set c = sh_i.Range(myAREA).Find(What:=kensaku, LookAt:=xlWhole)
129127:2011/08/23(火) 07:30:13.85
続きです
   If (c Is Nothing) Then
    j = j + 1
   Else
    a(yoko) = c.Column  rem ここで列の対応を設定
    If yoko = 1 Then
     myAREA = c.Row & ":" & c.Row
     tate_i = c.Row + 1  rem見出し行の次からデータがある
    End If
    Exit Do
   End If
  Loop
 Next yoko
 Set sh_s = Nothing
' 第二ステップ 各社フォーマットから統一DBへ
 tate_o = 3  rem出力側(統一DB様式)は3行目から出力するものと仮定
 Do
  For yoko = 1 To 7
130127:2011/08/23(火) 07:32:31.96
続きです これで最後
rem第一ステップで設定した列の対応を利用して転記
   sh_o.Cells(tate_o, yoko).Value = sh_i.Cells(tate_i, a(yoko)).Value
  Next yoko
  tate_i = tate_i + 1: tate_o = tate_o + 1
 Loop While (sh_i.Cells(tate_i, a(1)).Value <> "")
 Set sh_i = Nothing: Set sh_o = Nothing
End Sub 以上
131名無しさん@そうだ選挙にいこう:2011/08/23(火) 10:03:15.94
>>127
ありがとうございます!
ただ、途中でどうしても「 の対応表がありません」とでてエラーになるので、
ただしく動く構成のxlsファイルを一回アップしてもらってもいいでしょうか・・・?
132名無しさん@そうだ選挙にいこう:2011/08/23(火) 10:58:58.75
>131 xlsファイルは個人情報が漏れるので、画面イメージをupしました。
http://www.dotup.org/uploda/www.dotup.org1937185.png.html

○○ の対応表がありません と出るのは、設定シートに入れた項目名と
入力シート(各社フォーマット)の項目名が異なるためです。
英数字やカタカナの全角・半角の違いや、項目名の中にある空白の全角・半角の
違いもダメです。
133名無しさん@そうだ選挙にいこう:2011/08/23(火) 11:17:45.35
>>132
ありがとうございます。
こちら、例えば各社フォーマットの「名前」「Tel」「クラス」にあたる部分だけインポートすればいい
という場合、他の列は空白状態で実行してしまうとエラーが起きてしまうのですが、
現仕様だとすべてインポートする仕様ということでしょうか?
134名無しさん@そうだ選挙にいこう:2011/08/23(火) 11:39:12.66
セルA1に次のような入力規則を設定したいのですが可能でしょうか

セルB1が空白なら、特に入力規則なし
セルB1がそれ以外なら10-B1

135132:2011/08/23(火) 11:39:17.89
>133
そうです。最終的に65列すべて入力シートから持ってくるわけではない、ということならば、
列の対応の設定方法をちょっと変えます。
>106で 65個もあるのにいちいち指定するのは間違いのもとでしょう
と書いたことに対してコメントが特になかったので全項目転記するものと判断して進めてました。
dim b(100) as Integer
kensaku = sh_s.Cells(1, yoko).Value
Set c = sh_o.Range(2:2).Find(What:=kensaku, LookAt:=xlWhole)  rem見出し行が2行目と仮定
b(yoko) = c.Column

sh_o.Cells(tate_o, b(yoko)).Value = sh_i.Cells(tate_i, a(yoko)).Value
こんな感じでいけると思います。午後〜夜間は用件があるので、次は明日にでも書き込みます。
136名無しさん@そうだ選挙にいこう:2011/08/23(火) 11:56:16.15
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel 2003 + 2010
【3 VBAが使えるか    .】 はい


DB上で重複してる商品番号の列を、1つの列にまとめたいです。
元のデータがexcelで、データは上から新しい順に入っております。
まとめる際、新しい(上から)ものを基準にまとめたいです。
ただし、空白の際は入ったものを固定基準とします。


A001 食品 赤 \100
A002 \200
B001 食品 青
A001 食品 紫 \160
A002 玩具 \200

結果
A001 食品 赤 \100
A002 玩具 \200
B001 食品 青
137名無しさん@そうだ選挙にいこう:2011/08/23(火) 12:36:21.95
>>134
入力規則?
関数式なら
=IF(B1="","",10-B1)
「10-B1」の表示をA1にさせたい場合は
=IF(B1="","","10-B1")
とすればおK。
138名無しさん@そうだ選挙にいこう:2011/08/23(火) 13:43:39.40
セルA1に、if関数で真の場合は計算結果、偽の場合は計算結果+メッセージボックスを表示するようにしたいのですが
139名無しさん@そうだ選挙にいこう:2011/08/23(火) 14:52:12.37
許可します。
140名無しさん@そうだ選挙にいこう:2011/08/23(火) 15:42:20.34
>>138
VBEを開き、目的のセルが存在するworksheetに直接記述。

チェンジプロシージャ

If Range("A1") = "偽" Then
MsgBox("計算結果は偽です")
EndIf
EndSub
141名無しさん@そうだ選挙にいこう:2011/08/23(火) 17:32:56.29
入力済みの列を真っ黒にする条件書式の書き方は、どうすればよいでしょうか。
(ワークシートが空なら、全部真っ黒になる)
142名無しさん@そうだ選挙にいこう:2011/08/23(火) 18:12:57.28
>141
日本語で説明してください。

入力済みの列 の定義
ワークシートが空なら、全部真っ黒になる との矛盾
143135:2011/08/23(火) 21:17:38.45
>133
予定が変わったので作ってみました。ダウンロードパスは前に同じです。

説明図
http://www.dotup.org/uploda/www.dotup.org1938941.png.html

変更後のマクロ全文(2chでは分割しなきゃならないので)
http://www.dotup.org/uploda/www.dotup.org1938951.txt.html
144名無しさん@そうだ選挙にいこう:2011/08/23(火) 22:07:05.26
Excel2003です。
A1セルに A を入力したらB1セルに1、
A1セルに B を入力したらB1セルに2、
A1セルに C を入力したらB1セルに3を返す方法を教えてくださいです。
145144:2011/08/23(火) 22:09:10.15
入力はA〜Nなので、IF文だとだめでした。
146複乳:2011/08/23(火) 22:10:28.64
>>144
=CODE(A1)-64
147144:2011/08/23(火) 22:28:40.81
>>146
おぉ、凄い!
ありがとうございました。
148複乳:2011/08/23(火) 22:32:37.48
>>147
こうしたら大文字小文字どちらも対応

=MOD(CODE(A1)-64,32)
149名無しさん@そうだ選挙にいこう:2011/08/24(水) 01:41:49.82
=LEN(A1)
文字数をカウントするには上記ですが
たとえば
A1から下に数えて次に空白以外になるまですべての
B2,B3…のカウントの合計を取りたい場合
どうすればいいのでしょうか?
150名無しさん@そうだ選挙にいこう:2011/08/24(水) 02:09:43.23
>>149
取り急ぎ、こんな感じはどうでしょう?

A1からA5のセルに含まれる文字列を数える場合。
B1に=LEN(A1)を入力
続いてオートフィルでB1の数式をB5までコピー

B6に=SUM(B1:B5)
これでA1からA5に入力した文字数がでる。
【B列は作業用列なので目障りなら非表示に
ただし非表示にするならB6の数式を別の列に移動すること】

もうひとつの方法は
文字列を数えた値を返したいセルに
=SUM(LEN(A1),LEN(A2),LEN,(A3),LEN(A4),LEN(A5))これでもできますが
メンテナンスや入力の手間を考えるとやはり前者がオススメです

151名無しさん@そうだ選挙にいこう:2011/08/24(水) 06:28:43.05
>>149
=SUMPRODUCT(LEN(A1:A10))
ってこと?
152名無しさん@そうだ選挙にいこう:2011/08/24(水) 09:27:42.24
セルA1、B1、C1、D1に入力規則でリスト(東、西、南、北)
と設定したいんですが、例えばセルA1に「東」と入力した場合
セルB1、C1、D1には(西、南、北)からしか選択できないように
したいんですけど可能でしょうか?
153名無しさん@そうだ選挙にいこう:2011/08/24(水) 09:44:04.80
入力規則のリストのセルに
=IF(COUNTIF($A$1:$D$1,"東")>0,"","東")
とか
154152:2011/08/24(水) 10:32:07.85
>>153
ありがとうございます!
155152:2011/08/24(水) 10:53:34.89
countifで範囲指定するときに連続したセルじゃなくて
飛ばし飛ばし(11セルごと)に範囲指定する方法ってありますか?
156名無しさん@そうだ選挙にいこう:2011/08/24(水) 12:04:01.64
>>143
ありがとうございます!
これは図解通り、設定シートの1行目に統一DBに書き出したい見出しを、
2行目に各社フォーマット見出しをコピーすればよいのですよね?

(統一DBシートはエクスポート先なので、すべての見出し、
 各社フォーマットシートは、すべてのデータが入った内容を・・・であってますか?)
157143:2011/08/24(水) 12:25:41.10
>156
説明図を見てもらえばわかると思ったんだけど・・・・・
設定シートに入れる項目見出しは「転記する項目だけ」ですよ。
新旧、見比べられるように説明図を作ってます。
「すべての見出し」を設定したら「○○ に対応する列がありません」って
なるのはご存じのはずですが。
設定シートに入れていない項目見出しの列は空欄になります。
>143のマクロ、試してみましたか?
158143,157:2011/08/24(水) 12:36:33.75
>156
念のため
設定シートに入力する項目見出しは連続している必要があります。
統一DB様式の項目数が全部で65あるうち、転記する項目が40項目だった場合は、
その40項目をA1からAN1まで「詰めて」入力してください。
次に、それぞれの項目名の下に各社フォーマットのシートで用いている項目名のバリ
エーションを入力してください。
バリエーションがなかった場合は1行目の統一DB様式での項目名だけだし、いくつも
バリエーションがある場合は、説明図でいう電話番号の列のようにどんどん下に書き
足していくことになります。
159122:2011/08/24(水) 12:49:28.98
>>124
マクロの記録で"(土)"だけを青文字にする作業をやろうとしても、
セルに入ってるのは文字列ではなくシリアル値なのでできません><
160名無しさん@そうだ選挙にいこう:2011/08/24(水) 13:04:43.78
>159
シリアル値を文字列にしてからならどうにでもできるよ
msgbox Range("A1").text ←A1のところは実際に日付が入っているセルに変更
ってやってみて

Range("A1").Value = "'" & Range("A1").text
でシリアル値から文字列に変更してから、必要な書式を設定したらいい
161名無しさん@そうだ選挙にいこう:2011/08/24(水) 15:07:57.28
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 エクセル 乱数

RAND関数を使った遊戯王のランダムドローツール
を作りたいと思っています。中学生で知識不足ですがよろしくお願いします。

↓以下どのようなツールが作りたいかの箇条書き
1〜X(デッキ枚数)のなかからランダムに一枚表示。
数字に対応したカードを表示し、枠の色を変える。
カードを使う場合はその数値を入れることで枠の色が戻る(よって手札がどれかわかる)

1度使われた数はデュエルが終わるまで再度ランダムに表示されない。
(数を指定して再度ランダムに表示、または数を指定してランダムに表示されないようにする)

デッキ一つあたりだいたい40枚ほどなのでかなり大変な作業になりそうですが
がんばっていきたいと思います。
RANDBETWEENやifなどを使うくらいしか見当がつきません。
よろしくお願いします。
162名無しさん@そうだ選挙にいこう:2011/08/24(水) 18:06:08.37
ランダム表示は作業列作ってそこにRAND関数入れてその列をキーにしてソートすればいいじゃない
で、上から順番に選択していけば
あとは遊戯王のルール知らないからわからないけどマクロなしじゃ無理なんじゃ
163名無しさん@そうだ選挙にいこう:2011/08/24(水) 19:53:01.06
>>162
遊戯王のルールを全部記憶させるのではなく、とりあえず
箇条書きの部分が使えるツールにしたいです。

ここのスレでVBAって機能を初めて知ったので難しそうだと
思ったのでけっこうきついかなと思うんですが・・・
VBAでググって出てきたプログラム見ても何が何だか
わからない((汗
164名無しさん@そうだ選挙にいこう:2011/08/24(水) 21:18:51.80
>>163
「一枚表示」とか「カードを表示」って具体的には何をどこに表示するの?
カードのパラメーターを表にしてあってそのデータを表示するとか?
それから「カードを使う場合は〜」って言うけど例えばA1にカードの番号が表示されてるとしてB1にそのカードの番号を
入れるとA1の背景の色が変わるようには出来るけど(マクロ使えば)そのあとどうするの?
その辺そのゲームのルールが分からないから想像できないんだよね
165122:2011/08/24(水) 22:02:53.29
>>160
ありがとうです。
キレイなマクロじゃないですが動作しました。

Sub 土日の色を変える()
b = Range("B65536").End(xlUp).Row
For i = 5 To b
'Range("A1").Value = "'" & Range("A1").Text
Cells(i, 2).Value = "'" & Cells(i, 2).Text
If Right(Cells(i, 2).Value, 3) = "(土)" Then
Cells(i, 2).Characters(Start:=11, Length:=3).Font.ColorIndex = 5
ElseIf Right(Cells(i, 2).Value, 3) = "(日)" Then
Cells(i, 2).Characters(Start:=11, Length:=3).Font.ColorIndex = 3
End If
Next i
End Sub
166名無しさん@そうだ選挙にいこう:2011/08/24(水) 22:44:01.36
>>163
例としてトランプで作ってみた
質問者の考えてるのとはかなり違うと思うけどエクセルの一般機能だとこんなもん
http://hishou.ddo.jp/~bbs/up/img/up1598.zip
167名無しさん@そうだ選挙にいこう:2011/08/25(木) 01:22:22.15
並んでるセルの内容を1つずつ手作業で修正しようと思ってる時に

⇒1:右手マウス操作でセル選択 
⇒2:マウスでカーソル操作〜左クリックでツールバー下の欄を選択
⇒3:内容修正してエンター

これを繰り返すのがかなり非効率的なんですが、
2の部分をキーボードのみでできる方法はないでしょうか?
結構ググったけど見つからないので教えて欲しいです。
168名無しさん@そうだ選挙にいこう:2011/08/25(木) 06:27:02.70
>>167
F2を押して編集状態にする、ってことかな
169名無しさん@そうだ選挙にいこう:2011/08/25(木) 09:38:35.17
>>168
あれは「編集状態」というのが正しいんでしょうか
「アクティブ」かと思ってたんですがそれは単にセルが選択された状態なんですよね
そのせいでどう検索したらいいか自体がわかりませんでした。

なんにせよこれでわざわざマウスでセル選択と編集欄(?)を選ばず済みそうです。
ありがとうございます。
170名無しさん@そうだ選挙にいこう:2011/08/26(金) 11:59:44.33
【1 OSの種類         .】 Windows XP以降全て
【2 Excelのバージョン   】 Excel2000以降全て
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
セルに「11.1111」と入れた後セルの書式設定から表示書式で数値を選び
小数点以下の桁数を1に
桁区切りを使用するにチェックをつける
以上の2点を行うと実際の値もその書式にそった値となり「11.1」になってしまう
ただし該当するブックのみその症状で新規作成されたブックはそうはならない
これってそういう風になるようなブック側の設定があるのでしょうか?
171名無しさん@そうだ選挙にいこう:2011/08/26(金) 12:34:47.30
>>170
これじゃね
ツール → オプション → 計算方法
 ブックオプション "表示桁数で計算する" が On になってる
172名無しさん@そうだ選挙にいこう:2011/08/26(金) 12:52:41.33
>>170
>小数点以下の桁数を1に
>桁区切りを使用するにチェックをつける
>以上の2点を行うと実際の値もその書式にそった値となり「11.1」になってしまう

当然そう書式設定すればそう反映されます。

>ただし該当するブックのみその症状で新規作成されたブックはそうはならない
>これってそういう風になるようなブック側の設定があるのでしょうか?

そのブックでの書式設定が以降の新規作成のブックに反映されることはありません。
ブックを作成するたび以前の設定が反映してしまうなど非常に厄介ですから。
もし、設定内容を反映させたブックを作成したい場合は前のブックの名前を変更して
保存してそのブックを使えば良いでしょう。
173170:2011/08/26(金) 13:07:20.84
>>171
見事に正解でした
誰かが原本ファイルのオプションを変更していたらしいです
174名無しさん@そうだ選挙にいこう:2011/08/26(金) 19:08:39.51
vlookupで空欄になるはずのところに0。
これを空欄のままにするには?
175名無しさん@そうだ選挙にいこう:2011/08/26(金) 19:27:42.58
2010でピボットテーブルを使う際、
どうやれば引き算での算出ができますでしょうか?
急ぎなので答えていただける方がいると幸いです・・・
176名無しさん@そうだ選挙にいこう:2011/08/26(金) 20:16:42.13
>174
そのvlookupを含む式の結果が常に文字列だけっていうことなら &"" を最後にくっつけたら?
=A1 などの、単純な式でも、参照先が空欄だと結果は0になるのと同じことでしょ?
177名無しさん@そうだ選挙にいこう:2011/08/26(金) 20:35:50.99
>>175
引き算での算出って意味が分からないけど、
http://office.microsoft.com/ja-jp/excel-help/HP005199482.aspx
のことかねえ。2010でもこの部分は大体同じ
178174:2011/08/26(金) 20:36:30.85
How intellectual you are!
I never thought of that way before.
179名無しさん@そうだ選挙にいこう:2011/08/26(金) 20:48:31.12
たとえば予算から支出を引いて残額をピボットで出したいって場合は
予算を正の数、支出を負の数にして単純に合計してたね俺は。もっと簡単な方法があればいいのに。
180名無しさん@そうだ選挙にいこう:2011/08/26(金) 20:49:09.88
範囲選択してCtrl+Gでセル選択→空白セルの機能を使っても
空白のくせに空白が選択されないことが非常に多くて困っている。

原因と対策はありますか?

よく使う機能なのに使えないから実に不便です。
181名無しさん@そうだ選挙にいこう:2011/08/26(金) 22:03:48.69
文字としての空白とかがはいってんじゃないの
182名無しさん@そうだ選挙にいこう:2011/08/26(金) 22:05:16.62
>>180
完全な空白セルだけだよ。
計算式で空白セルとかはダメ
183180:2011/08/26(金) 22:51:07.08
>>181-182
いやそれは本質じゃないと思う

あれからいろいろ実験してるんだけど
例えばまっさらなシートを開いて
E10セルに「セシウムさん」と入力し
A1〜I20の長方形を選択して
Ctrl+Gでセル選択→空白セルの機能を使ったら、なんと「!」な結果になった。

このことから推測するに、
いわゆるExcelの「最後のセル」よりも右方よび下方にあるセルたちは
存在すら認知されないセルと言えるのではないということだよ。
184名無しさん@そうだ選挙にいこう:2011/08/26(金) 22:51:55.98
○ 言えるのではない「か」ということだよ。
185名無しさん@そうだ選挙にいこう:2011/08/26(金) 22:57:37.11
A列だけを使ってて
そこにはいろんな文字列が書いてあって
もちろん重複してるものがたくさんある。

【例】 A列
セシウムさん
怪しいお米
ウランさん
セシウムさん
怪しいお米
汚染された米
ヨウ素さん
セシウムさん
プルトニウムさん
怪しいお米
セシウムさん
汚染された米
セシウムさん
プルトニウムさん

これを重複していないのだけ、つまり文字列の全種類を、B列に取り出すにはどうしたらいいですか?
本例だとこんな感じ。

【例】 B列
セシウムさん
怪しいお米
ウランさん
汚染された米
ヨウ素さん
プルトニウムさん
186名無しさん@そうだ選挙にいこう:2011/08/26(金) 23:03:08.60
>>185
B列にコピペしてデータ→重複の削除を押す。
187名無しさん@そうだ選挙にいこう:2011/08/27(土) 07:25:49.47
>>183
ああ、それはその通り。

>>185
2007以降なら重複の削除
2003までなら、ピボットテーブルを使うのが一番楽
188名無しさん@そうだ選挙にいこう:2011/08/27(土) 07:52:19.16
ときどき日本語のひらがなから漢字の変換が
まったく機能しなくなるのだけど
この原因と対策はありますか?

たとえば「げんいん」と入力してスペース押すと普通は「原因」となるのに
ときどき「ゲん員」みたいになるんです。
189名無しさん@そうだ選挙にいこう:2011/08/27(土) 09:27:07.29
>188
このスレの >2-5 を見てください。
190名無しさん@そうだ選挙にいこう:2011/08/27(土) 10:30:57.06
189みたいなやつって一体・・・
191名無しさん@そうだ選挙にいこう:2011/08/27(土) 15:10:48.81
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

セルA1→2011/8/1
セルB1→2009/9/30

B1〜A1の期間を○年○ヶ月と計算させたいのですが
=DATEDIF(B1,A1,"y")&"年"&DATEDIF(B1,A1,"ym")&"ヶ月"

当然結果は1年10ヶ月になるのですが
これを1年11ヶ月(○ヶ月"目"という認識)とすることはできますか?
192名無しさん@そうだ選挙にいこう:2011/08/27(土) 15:34:06.82
+1
193名無しさん@そうだ選挙にいこう:2011/08/27(土) 15:38:59.78
>192

=DATEDIF(B1,A1,"y")&"年"&DATEDIF(B1,A1,"ym")+1&"ヶ月"
おぉできた!
ありがとうございます!
194名無しさん@そうだ選挙にいこう:2011/08/27(土) 15:49:34.53
>193
1年12ヶ月 という表示でもいいの?
195名無しさん@そうだ選挙にいこう:2011/08/27(土) 15:59:46.91
>194
あ、だめか・・・


セルA1→2011/8/1
セルB1→2009/8/30
で見てみると、1年12ヶ月になりましたorz
1年12ヶ月の場合は2年、とするようにはできないのでしょうか・・・
196名無しさん@そうだ選挙にいこう:2011/08/27(土) 16:27:46.23
A1を+1月すればいいじゃん
197名無しさん@そうだ選挙にいこう:2011/08/27(土) 17:25:53.41
長くても嫌じゃなければ
=INT(((YEAR(A1)-YEAR(B1))*12+MONTH(A1)-MONTH(B1))/12)&"年"&
MOD((YEAR(A1)-YEAR(B1))*12+MONTH(A1)-MONTH(B1),12)&"ヶ月"
198名無しさん@そうだ選挙にいこう:2011/08/27(土) 17:38:14.28
>197
ありがとうございます!!

仕事で使用したいので、>192さんの+1か>197さんの数式かどちらを使うか同僚と相談してみます。
助かりました。
199名無しさん@そうだ選挙にいこう:2011/08/27(土) 18:16:10.15
手入力で+1ヵ月修正して>191の数式を適用すれば解決しちゃうけども
いちいち修正するのが面倒なので以下の数式をでっち上げたらバグっちまった
=DATEDIF(B1,A1,"y")&"年"&DATEDIF(B1,DATE(YEAR(A1),MONTH(A1)+1,DAY(A1)),"ym")&"ヶ月"
仮に開始日付を2011/9/1にしてみたら1年0ヵ月と表示されて1年分足りない結果に
これがDATEDIF関数のバグなのかな
200名無しさん@そうだ選挙にいこう:2011/08/27(土) 19:45:50.77
196みたいなやつって一体・・・
201名無しさん@そうだ選挙にいこう:2011/08/27(土) 20:09:48.89
頭いいねw
202名無しさん@そうだ選挙にいこう:2011/08/27(土) 20:31:50.69
2007のカラーパレットを2003のように変えるには
どーしたらいいでそ?
203名無しさん@そうだ選挙にいこう:2011/08/27(土) 21:39:52.81
>>202
無理ぽ
204名無しさん@そうだ選挙にいこう:2011/08/27(土) 23:11:24.82
アドインがいくつか公開されてますが、標準の40色のみ。
Excel2003ColorPallet.xlam、Excel2003Colors.xlamなど、ググればすぐに見つかります。
標準色だけで作成する人って多いのでしょうか。
私はローズ、ベージュ、ラベンダーなどは濃すぎるのでカスタマイズして使ってました。
205名無しさん@そうだ選挙にいこう:2011/08/28(日) 03:50:31.01
綺麗に印刷したい物はDTPソフトつかうからなぁ
Excelを本来の表計算用途のみに使うなら、標準色セットで十二分
Excelで文書作成もカタログやポスターなどもなんでも作ろうとする奴には
標準色セットでは不十分なのかもしれないけどね
206名無しさん@そうだ選挙にいこう:2011/08/28(日) 11:16:02.04
2003だと、予め自分で設定した色がコピー元ファイル名で呼び出せるけど、2007はできないの?
207名無しさん@そうだ選挙にいこう:2011/08/28(日) 11:45:10.81
>>206
どう設定してどう呼び出すの
オレはcolor=vbred, vbwhite, vbblueみたいな方法しかしらないから教えてくれよ
208名無しさん@そうだ選挙にいこう:2011/08/28(日) 12:15:59.70
超基本技かもしれません。

"2011.08.26"のような文字列を
Excelで自由に扱えるシリアル値に変換するには
一番簡単な方法ではどうすればいいですか?
209名無しさん@そうだ選挙にいこう:2011/08/28(日) 12:17:15.65
超基本技かもしれません。

"20,000円"のような文字列を
Excelで数値として扱うには
一番簡単な方法ではどうすればいいですか?

("円"の文字列は削除します。いったん数値にしてしまえば表示として"円"を加えるのは簡単なので)
210名無しさん@そうだ選挙にいこう:2011/08/28(日) 12:24:27.05
余計な文字列がなければそのまま計算できる +0でも*1でもいいし
211名無しさん@そうだ選挙にいこう:2011/08/28(日) 12:36:57.58
>>207
1.ツール → オプション → 色 → 変更で、変えたい色にする。

2.適当なファイル名(例えば (;´Д`)ハァハァ.xls )で保存。

3.新規ファイル作成(または、カラーを変えたいブックを開く)。
  (このとき、2つ以上のブックが開いてる状態)

4.3のブックをアクティブにして、ツール → オプション → 色 → コピー元ファイル名の
  プルダウンメニューから、2で設定したブックを登録

これをマクロでやれば、特に煩わしさもない・・・かな?
212名無しさん@そうだ選挙にいこう:2011/08/28(日) 12:40:37.33
>>208
まず、置換で.→/へ替える。
書式を日付から標準や数値へ変更する。

>>209
まず置換で円→  (変換する文字の所は空欄)にすると数字だけになる。
数字だけならおせっかい機能で計算などとりあえずは問題無い。
213名無しさん@そうだ選挙にいこう:2011/08/28(日) 12:45:31.15
>"20,000円"のような文字列を
>Excelで数値として扱うには
>一番簡単な方法

20000と入力すればいい
214名無しさん@そうだ選挙にいこう:2011/08/28(日) 14:12:35.79
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 並び替え 参照 シート分けて

自転車駐輪シールの管理に使いたいと思っています。

シート1
A列に通し番号
B列にマンション名
C列に号室

これをシート2に自動的に
最優先 B列
次に優先 C列
で並び替えて表示させたいのですが・・・

皆様、よろしくお願いいたします。
215名無しさん@そうだ選挙にいこう:2011/08/28(日) 14:32:56.77
それはシート1でやれ ボタンに登録しとけばかんたん
216214:2011/08/28(日) 17:52:30.09
>>215

時には2つを同時に表示させたいのですが…。
ボタンに登録でググってみます。
ありがとうございました。
217名無しさん@そうだ選挙にいこう:2011/08/28(日) 18:22:56.59
シート2にピボットテーブルを作る方法もある
218名無しさん@そうだ選挙にいこう:2011/08/29(月) 10:26:18.26
【1 OSの種類         .】 Windows 7
【2 Excelのバージョン   】 Excel 2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 オートフィルタ ペースト 0件

在庫管理でExcel VBAを組んでやっているんですが
現在庫を参照する際、オートフィルタで抽出をし別シート(抽出シート)に抽出結果をペーストしています
その際、オートフィルタ抽出結果がまったくない場合、セルの最下部まで選択範囲してしまい抽出シートにペーストしてしまい
データサイズが膨大になってしまいます(100kb→24Mb)
保存やファイルを開くのにも支障がでてくるので、オートフィルタで抽出した際抽出結果が0件の場合の条件分岐のVBAを教えていただければ嬉しいです
よろしくお願いします
219218:2011/08/29(月) 10:28:41.00
一応コードになります
見よう見まねで組んだので見難いとおもいますが重ねてお願いします
Dim 検索値1 As String
Dim myrow1 As Long '列の変数を宣言
Dim myRow2 As Long '列の変数を宣言
Dim zan As String
zan = 0
検索値1 = 名前.Text '検索値1に名前リストで選択したtextを代入
If 検索値1 <> "" Then '検索値1に何かしらの文字列が代入された場合の処理
ActiveSheet.Unprotect 'シートの保護を解除
ActiveSheet.Range("A2:C2").AutoFilter Field:=3, Criteria1:=検索値1
ElseIf 検索値1 = "" Then '検索値1が空欄の場合の処理
MsgBox "名前が入力されていません。" 'エラーメッセージの記述
名前.SetFocus
Exit Sub
End If
名前.Value = ""
myrow1 = Worksheets("抽出シート").Range("D4").End(xlDown).Row
Worksheets("抽出シート").Activate
If Range("D4").Value = "" Then
ElseIf Range("D4").Value <> "" Then
Range("A4:J" & myrow1).Select
Selection.Delete
End If
Worksheets("在庫伝票").Activate
myRow2 = Worksheets("在庫伝票").Range("C3").End(xlDown).Row
Worksheets("在庫伝票").Range(("A3:J") & myRow2).Copy
Worksheets("抽出シート").Range("A4").PasteSpecial xlPasteAllUsingSourceTheme
220名無しさん@そうだ選挙にいこう:2011/08/29(月) 14:41:34.35
Range("D4").End(xlDown).Rowのところを
Range("D4"&rows.count).End(xlup).Rowにしすればいいんでは
Range("C3").End(xlDown)のところも同じかんじで

元のデータの見出し行がどこで抽出シートのどこに張り付けるのかはっきりすれば
もっと効率いいコード書けると思う
221名無しさん@そうだ選挙にいこう:2011/08/29(月) 14:46:53.41
訂正
×Range("D4"&rows.count)
○Range("D" & rows.count)
222218:2011/08/29(月) 15:57:52.12
返信ありがとうございます
上記の方法でとりあえずデータが膨れ上がることはなくなりました
ただフィルタ検索結果が0件の際、元のシートの2列目に見出しがあるのでその列が抽出シートにペーストしてしまいます
If Range("D4").Value = "品名" Then
Range(Rows("4"), Rows(myrow1)).Select
Selection.Delete
End If
で削除してとりあえず形にすることができました

効率のいいコードを考えているのですがまだまだ勉強不足ですので精進していきます
ちなみにマクロボタンが1行目 見出し行が2行目
3.4行目がオートフィルの関係上調整用の行で非表示にしています
抽出用シートが印刷を考慮しているため4行目からのペーストにしています
223名無しさん@そうだ選挙にいこう:2011/08/29(月) 20:39:28.36
AVERAGE((A1+C1*0.1)+(A2+C2*0.1)…(A10+C10*0.1))
という関数を簡単に記述する方法ってないでしょうか?

また、AVERAGE((B1+C1*0.1)+(B2+C2*0.1)…(B10+C10*0.1))という計算をさせようとして
一番上の関数をコピーするとCがDに変わってていちいち書き直さなきゃいけないんですが、
書き直さなくていいような方法はないんでしょうか
224名無しさん@そうだ選挙にいこう:2011/08/29(月) 20:48:09.30
>>223
こういうことかなあ
=SUMPRODUCT(A1:A10+(C1:C10)*0.1)/COUNT(A1:A10)
averageは何のaverageなんだ?

Cを$Cとすれば、Cは固定できます
225名無しさん@そうだ選挙にいこう:2011/08/29(月) 20:57:50.10
+いらなかったですね。
(A1+C1*0.1),((A2+C2*0.1),((A3+C3*0.1)の平気値を取りたかったんです。
226名無しさん@そうだ選挙にいこう:2011/08/29(月) 21:09:38.92
>>225
まあとりあえず、>>224の式でOKのはずです。

コピー対応として
=SUMPRODUCT(A$1:A$10+($C$1:$C$10)*0.1)/COUNT(A$1:A$10)
こういうことかな
227名無しさん@そうだ選挙にいこう:2011/08/29(月) 21:32:09.50
ありがとうございました
228名無しさん@そうだ選挙にいこう:2011/08/29(月) 21:56:20.19
>>227の感じだと理解出来てないみたいだな・・・。
229名無しさん@そうだ選挙にいこう:2011/08/29(月) 22:27:38.99
普通に分配法則効かせればよくね?
average(A1:A10) + 0.1 * average($C1:$C10)
230名無しさん@そうだ選挙にいこう:2011/08/29(月) 23:16:26.07
単に"A"と一文字だけかかれたセルを抽出しようとして"A"で検索したら
"All"とか"ANGEL"とか"a"とか"This is a pen."とか"apple"とか
関係ないものもひっかかってきやがる。
これを防ぐ方法は?
231名無しさん@そうだ選挙にいこう:2011/08/29(月) 23:40:31.89
>>230
「セル内容が完全に同一であるものを検索する(O)」のチェックボックスをONにする
232名無しさん@そうだ選挙にいこう:2011/08/30(火) 14:33:31.15
セシウムさん作者の解雇はかわいそうと思う。
このスレだってセルの例として「りんご」「みかん」「うんこ」が使われてきたけど
お米の当選者に適当に名前を入れてと言われれば
当時話題になったセシウムを擬人化して「セシウムさん」にするのは
きわめて普通に思いつくこと。
逆に「セシウムさん」じゃなかったら何を入れたらいい?
「名無しさん」は2chみたいで不適切だし
「田中さん」「鈴木さん」みたいによくある名字を使うのもなんか変。
あらためて「セシウムさん」は自然だと思う。
233名無しさん@そうだ選挙にいこう:2011/08/30(火) 20:20:23.88
解雇は当然だな。
あれだけ騒がれて、責任者も呼ばれたんだろ?
俺が勤めてる会社だと、仕事中にエロサイトを見てただけで
解雇になったのがいるけど、それよりはるかに罪が重い。
それを『当時話題になったセシウムを擬人化して「セシウムさん」に
するのはきわめて普通に思いつく』とか、232はキチガイか?
234名無しさん@そうだ選挙にいこう:2011/08/30(火) 21:10:00.76
>>232
で、Excelでどうしたいのですか?
235名無しさん@そうだ選挙にいこう:2011/08/31(水) 00:10:58.16
マクロを動かすボタンは、あのグレーのやつが一般的なの?
236名無しさん@そうだ選挙にいこう:2011/08/31(水) 00:13:30.34
うん
237名無しさん@そうだ選挙にいこう:2011/08/31(水) 00:16:05.68
238名無しさん@そうだ選挙にいこう:2011/08/31(水) 00:18:08.02
>>235
グレーのヤツは味気ないから、俺はオートシェイプの額縁で
カラフルにしてるよ
239名無しさん@そうだ選挙にいこう:2011/08/31(水) 15:00:49.10
マクロさん
240名無しさん@そうだ選挙にいこう:2011/08/31(水) 15:08:58.64
【1 OSの種類         .】 Windows
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 ?
【4 VBAでの回答の可否】 ?
【5 検索キーワード     】 更新されない、リンク、ミラー、2つ同時

元になるデータファイルがありまして
共有の問題で他の人はリンクで値を元データから
持ってきたミラーファイルを見てもらう仕様にしているのですが
そのミラーファイルを開くと更新がされておらず
元データを開くとミラーファイルの値が更新がされるといった状況です。

いちいち元データを開くとミラーファイルの意味がなく
共有の問題で元データは開かせたくないため
自動で更新されるようにしたいのですがどうしたらよいでしょうか?

excel2010で保存するようになってからこの現象が起こるようになったようです。

よろしくお願い致します。
241名無しさん@そうだ選挙にいこう:2011/08/31(水) 15:47:26.73
【1 OSの種類         .】 Mac/Win
【2 Excelのバージョン   】 Excel 2004 for Macほか
【3 VBAが使えるか    .】 OK
【4 VBAでの回答の可否】 OK


ダブルクリックによるオートフィルでシリアル値を入力する時に
既存データ列の空欄セル位置で停止するのを回避するにはどうし
たらよいのでしょうか?

行数が膨大であることが多いためドラッグを使わないで入力したい
と思います。
242名無しさん@そうだ選挙にいこう:2011/08/31(水) 19:51:30.14
>>241
いろんな方法が考えられますが、状況がわかりません。
具体的な状況を教えて下さい
243名無しさん@そうだ選挙にいこう:2011/08/31(水) 20:10:00.10
>>242
説明が足りず申し訳ありません。例えばこんな感じです。

・A列は全空欄。B列以降にはデータがあるが、ところどころ空欄。
・B列の最初の空欄をB100とします。
・A列に1, 2, 3, と連続番号をB列の最終データセル(例えばB5000)に対応したセル(A5000)
までオートフィルで挿入したい。
・A1=1, A2=2とし、それを選択してダブルクリックでオートフィルを試みるとA99=99で停止。

A99で止まらず、A5000=5000と一気に入力できたらと考えています。
(IF関数やLEN関数などの値をA5000まで自動で得られれば、それを暫定的に新B列としてA列の連続
値を得られるかとも思ったのですが、ifやlenもA99で停まってしまいます。)
244名無しさん@そうだ選挙にいこう:2011/08/31(水) 20:17:21.93
>>243
自分がよくやる方法は
数式ボックスに
A1:A5000
と入れて、1を入れてCTRL+ENTER
これで全てのセルが埋まるので、次にa1のセルをダブルクリックして連続データ

でもこの方法は邪道かも。

優等生的答えは
連続データの作成。これは個人的にはあまり好きじゃないけど紹介だけ
http://kokoro.kir.jp/excel/renzokudata.html
245名無しさん@そうだ選挙にいこう:2011/09/01(木) 00:04:08.02
>>239
これだから出稼ぎ百姓は
246名無しさん@そうだ選挙にいこう:2011/09/01(木) 12:29:54.58
94556とかの数値を単純な文字列に変換する関数ってありますか?
TEXT関数だとどの書式にしていいのか分からないし

よろしくお願いします
247名無しさん@そうだ選挙にいこう:2011/09/01(木) 12:34:12.57
関数いらない 文字列と&でつなげれば勝手に文字列になる
248名無しさん@そうだ選挙にいこう:2011/09/01(木) 12:37:27.90
【1 OSの種類         .】 WindowsVista 会社はXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 学び始めたばかりです
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 型が一致しません String Dim FoundCell.Row

簡単な顧客管理のようなものを作っています。下記のようにお客様シートと商品シートがあります。
[お客様シート]
1          2
(名前)   (注文商品名)
日本太郎   みかん
日本花子    りんご
[商品シート]
1            2
(商品名)    (産地)
みかん      愛媛
りんご       青森
新しいお客様をユーザーフォームで入力する際に、既に入力済みの商品シートから銘柄を選び、
お客様シートの商品名の後ろにカッコ付きで産地を表示させたいのです。
例  日本太郎   みかん(愛媛)
下記のようにユーザーフォームの中にコードを書きましたが、型が一致しませんのエラーになります。
お分かりの方いらっしゃいましたら、アドバイス頂けませんか?

Sheets("お客様シート").Select
i = 2 '1行目は見出し
Do While Cells(i, 1).Value <> ""
i = i + 1
Loop
Dim FoundCell As Range, shouhin As String
shouhin = ユーザーフォーム.商品リスト.Value
Set FoundCell = Sheets("商品データ").Cells.Find(shouhin)
Sheets("お客様シート").Cells(i, 8).Value = shouhin + "(" + Sheets("商品データ").Cells(Foundcell.Row, 3).Value + ")"
249248:2011/09/01(木) 12:57:45.93
すみません、コードのところにコピペし忘れましたが、
変数iの宣言はしてあります。
250名無しさん@そうだ選挙にいこう:2011/09/01(木) 13:10:42.99
>>218の人か
どんなユーザーフォーム使っててどこにコード記述してるのかわからないんだよね
251248:2011/09/01(木) 13:14:33.43
>>250
私でしたら、初めての書き込みです。
分かりにくかったみたいで、すみません。
終業後にもっと整理してご相談に上がります。
252名無しさん@そうだ選挙にいこう:2011/09/01(木) 13:25:19.22
>>251
パッと見て変なのは最終行の
shouhin + "(" + Sheets("商品データ").Cells(Foundcell.Row, 3).Value + ")"

shouhin & "(" & Sheets("商品データ").Cells(Foundcell.Row, 3).Value & ")"
じゃないの
253名無しさん@そうだ選挙にいこう:2011/09/01(木) 13:39:59.59
>>248
リストボックスのRowSourceはどうやって指定してるの?
254名無しさん@そうだ選挙にいこう:2011/09/01(木) 14:39:53.13
>>247
いや、数値が入ったセルを、セル左上の文字列マークが出るようにしたいのですが
255名無しさん@そうだ選挙にいこう:2011/09/01(木) 14:46:19.45
>>248
自分で作るならこんな感じかなあ
商品リスト(て言うリストボックスがあるんだよね?)のRowSourceに商品データのデータ範囲を指定しておいて

Private Sub list2_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
  Dim targetRow As Long

  targetRow = Sheets("お客様シート").Range("a1").CurrentRegion.Rows.Count + 1

  With 商品リスト
    Sheets("お客様シート").Cells(targetRow, 8).Value = .List(.ListIndex, 0) & "(" & .List(.ListIndex, 1) & ")"
  End With

End Sub
256名無しさん@そうだ選挙にいこう:2011/09/01(木) 14:52:11.34
257名無しさん@そうだ選挙にいこう:2011/09/01(木) 19:27:17.14
数字を文字列として認識させるにはどうすればいいですか?
緑の三角が出てきてうざい。
258名無しさん@そうだ選挙にいこう:2011/09/01(木) 19:37:56.99
Excel2007です。
A1セルに文章を入れるフォーマットで、半角文字があったら
エラーメッセージを出すようにしたいです。
入力規則で次のように設定しましたが、半角文字だけなら
問題ないですが、全角と混在するとだめになります。
=len(a1)<>lenb(a1)
どうすればエラーメッセージが出るようになりますか?
259名無しさん@そうだ選挙にいこう:2011/09/01(木) 19:59:23.30
>>258
=JIS(A1)<>A1
260名無しさん@そうだ選挙にいこう:2011/09/01(木) 20:01:40.57
>>257
緑の三角がないと困ることのほうが多いと思うけど。

バージョンが分からないけど、エラーを出さないようにすればいいんじゃないの?
261名無しさん@そうだ選挙にいこう:2011/09/01(木) 20:13:39.31
>>259
ありがとうございまうs
262名無しさん@そうだ選挙にいこう:2011/09/01(木) 20:44:11.73
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 オートフィルタ 非表示 コピペ等

オートフィルタを使用して、抽出したデータに対してペーストしようとしても、
非表示行を含む複数範囲に対して(書式を維持するために)値貼り付け等をすると、
非表示行も変更されてしまいます

ググった結果、一度不要列にコピペしてから書式をそちらにコピーし、
それを本来の場所にペーストする方法が書いてあったのですが、
もっと簡単な方法は無いでしょうか?

また他に、オートフィルタで意図せずに非表示データを変更しかねない操作があったら教えてください
263名無しさん@そうだ選挙にいこう:2011/09/01(木) 20:48:55.50
>>262
何がやりたいのか、微妙に分かっていないけど、
alt+;(れ)で可視セル選択してから貼りつけてもダメ?
264241:2011/09/02(金) 00:07:22.55
>>244
レスありがとうございます。
どちらも最終行の行ナンバーが分かっていれば、それを指定した連続値を使うのがよいという
ことですね。(ある列の最終セルに移動する時も空白セルがあるとそこで一旦停止するのが
悩ましいです。)
265名無しさん@そうだ選挙にいこう:2011/09/02(金) 00:55:19.66
シートの固定について質問です。
ウインドウ枠の固定のようにsheet1だけを固定して
その右にあるシートだけを移動させ
sheet1の隣にsheet3やsheet5等を表示させる事は可能でしょうか?
よろしくお願いします。
266248:2011/09/02(金) 01:01:05.83
レス下さった方々、ありがとうございます。

>>252
&に変えただけで希望通りに入力されました!
本当に助かりました、ありがとうございました。

>>253 >>255
Private Sub UserForm_Activate()
i = 2 '1行目は見出し
Do While Sheets("商品データ").Cells(i, 1).Value <> ""
i = i + 1
商品リスト.AddItem Sheets("商品データ").Cells(i, 1).Value
  Loop
End Sub

このようにリストに商品名を足していました。
255さん、コードも書いて下さってありがとうございました。
自分のコードではまだまだ無駄も多い書き方だと思うので、ぜひ参考にさせて頂きます。

帰宅が遅くなったもので、お礼が遅れて申し訳ありませんでした。
とても助かりました、本当にありがとうございました。
267名無しさん@そうだ選挙にいこう:2011/09/02(金) 05:03:58.72
OPenofficeとLibreofficeしか使ったことがないんですが見た目が全く違って戸惑ってます
ちなみに新しくパソコンを買い替えてマイクロソフトオフィス2010です。
どちらが果たして使いやすくて優秀なんでしょうか
268名無しさん@そうだ選挙にいこう:2011/09/02(金) 05:31:04.97
                       ,
                      ,/ヽ
                     ,/   ヽ
  <<267? →   ∧_∧  ,/      ヽ
           ( ´∀`),/          ヽ
           (  つつ@            ヽ
        __  | | |                ヽ
      |――| (__)_)                ヽ
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|                ヽ
/⌒\/⌒\/⌒\/⌒\|彡~゚ ゜~ ~。゜ ~ ~ ~ ~~ ~ ~~ ~ ~~ ~~ ~~
⌒\/⌒\/⌒\/⌒\/⌒\彡 〜 〜〜 〜〜 〜〜 〜 〜
269名無しさん@そうだ選挙にいこう:2011/09/02(金) 21:10:36.30
Excelの入門レベルは突破したから
こんどは仕事で使える「便利技」を重点的にたくさん学びたいんだけど
そういう中級レベル以上を対象としてる
とくに便利技のサンプル例がたくさん載ってる本はありませんか?
270名無しさん@そうだ選挙にいこう:2011/09/02(金) 21:52:25.07
マルチ イクナイ
271名無しさん@そうだ選挙にいこう:2011/09/02(金) 22:41:52.20
vlookupで空欄になるはずのところに0。
これを空欄のままにするには?
そのvlookupを含む式の結果が常に文字列だけではなく数字や日付のこともあるので
&"" を最後にくっつける裏ワザを使ったら数字や日付になるべきところが空欄になって困ります。
272名無しさん@そうだ選挙にいこう:2011/09/02(金) 22:58:00.64
・IF文でゼロだったら""にする
・オプションでゼロを表示しないにする
273名無しさん@そうだ選挙にいこう:2011/09/03(土) 00:07:00.03
>>265
同じブック内の別シートを縦横に並べて見比べたいという用途なら、

[ウィンドウ]>[新しいウィンドウを開く]

[ウィンドウ]>[整列]で「並べて表示」

表示領域(子ウィンドウの大きさ)はドラッグでお好みに

当方2000使いなんで、コマンド名とかメニューの位置とかは適当に読み替えて
274名無しさん@そうだ選挙にいこう:2011/09/03(土) 07:52:21.45
すみません関数に詳しい人いますか

50個の因子があって、その因子にはAとBという数値が割り振られていて
50個の因子のうち8個の因子のAの合計が150以内で、Bの合計が最大となる因子の組み合わせを調べる関数ってできますかね?
ぜんぜん関数の組み合わせが思いつかないんですが
ちなみにエクセル2003です。
275262:2011/09/03(土) 08:31:04.99
>>263
こんな機能があったんですね、
無事解決しました
的確な返答をありがとうございました
276名無しさん@そうだ選挙にいこう:2011/09/03(土) 08:55:14.10
>>274
関数じゃ無理そうなので総当りを不器用にVBAでやってみた。
50個はめんどくさいので因子4個の場合のサンプル。ここの4618にうpした
ttp://www.kent-web.com/pubc/book/test/uploader/uploader.cgi
277名無しさん@そうだ選挙にいこう:2011/09/03(土) 09:23:05.72
274はパズルの懸賞問題か?
278名無しさん@そうだ選挙にいこう:2011/09/03(土) 19:40:04.57
>>276
thx
やっぱ関数じゃ無理か総当りしかないかなぁ
>>277
パズルじゃないんだけどそんな懸賞問題でもあったのかな
279名無しさん@そうだ選挙にいこう:2011/09/03(土) 20:09:58.28
よく考えたら >>276の場合2^50行必要になるからこのままじゃ無理だな何日かかるかもわからん
280名無しさん@そうだ選挙にいこう:2011/09/03(土) 20:11:55.57
A  B
1  1
2  2
3  3
4  1
5  2
6  3
7  1

A→Bになる関数を教えてください
281名無しさん@そうだ選挙にいこう:2011/09/03(土) 20:14:04.46
>>↑
mod
282281:2011/09/03(土) 20:15:14.78
B1が「=MOD(A1-1,3)+1」
B2以下オートフィル
283280:2011/09/03(土) 20:31:03.34
>>281-282
即レスありがとうございます。
284名無しさん@そうだ選挙にいこう:2011/09/03(土) 22:02:22.47
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003

マクロでSheet1の最下行+1行目にSheet2のデータをコピペするとき、
B列とE列を比較して、重複してるデータを避けるには
どうすればいいでしょうか?

データは時系列で並んでおり、B列は時刻ですが文字列です。
下記の例では、Sheet2の4行目だけをコピペしたいです。

Sheet1
 A       B    C    D     E
9月1日  10:08:27  A01  りんご  秋映
9月1日  13:16:39  A01  りんご  姫小町
9月1日  15:47:51  A01  りんご  富士   (重複してる)
9月2日  10:11:55  A01  りんご  王林   (重複してる)
9月2日  14:45:02  A01  りんご  姫小町  (重複してる)

Sheet2
 A       B    C    D     E
9月1日  15:47:51  A01  りんご  富士   (重複してる)
9月2日  10:11:55  A01  りんご  王林   (重複してる)
9月2日  14:45:02  A01  りんご  姫小町  (重複してる)
9月2日  16:03:57  A01  りんご  富士
285複乳:2011/09/03(土) 22:23:16.23
>>284
こうしたまえ

Sub セシウムさん()
Sheets(2).Activate
Cells(1, 1).CurrentRegion.Copy
Sheets(1).Activate
Cells(1, 1).End(xlDown).Offset(1, 0).Activate
Sheets(1).Paste
Cells(1, 1).Activate
ActiveCell.CurrentRegion.AdvancedFilter Action:=xlFilterInPlace, Unique:=True
End Sub
286名無しさん@そうだ選挙にいこう:2011/09/03(土) 22:51:37.82
ダメじゃんw
287名無しさん@そうだ選挙にいこう:2011/09/03(土) 22:57:32.05
いったんぜんぶ貼りつけて、A-Eを結合したキーをつくって、キーの重複を検査
(COUNTIF)してフラグを立ててから手動で削除するしかないかな
288名無しさん@そうだ選挙にいこう:2011/09/03(土) 23:05:00.46
手動で削除かよw
289284:2011/09/04(日) 12:43:59.81
>>285
意図と違いますが、何かの参考にさせていただきます。

>>287
マクロでいまくできました。
ただ、F列を作業列にして = "=CONCATENATE(RC[-4],RC[-1])" にすると
"10:08:27秋映" ではなく "0.422534722222222秋映" になります。

動作は問題ないようですが、"10:08:27秋映" にするには
どう書けばいいでしょうか?
290名無しさん@そうだ選挙にいこう:2011/09/04(日) 12:59:26.78
TEXT()でフォーマットつける
291284:2011/09/04(日) 18:35:27.37
x いまく
o うまく

>>290
できました。
Format()じゃないんですね・・・
292名無しさん@そうだ選挙にいこう:2011/09/05(月) 02:03:43.91
Excelで犬猫の糞管理をする人たち

【michael】マイケル・ジャクソン【jackson】Part1152
689 魅せられた名無しさん 2011/09/05(月) 00:04:10.18
>>686
ふつうに使うお
ヌコ達の小便大便の管理とかエサ管理とか
ワードは年賀状とか手紙かくとか

710 魅せられた名無しさん 2011/09/05(月) 00:13:35.72
>>703
私は犬の体調管理に使ってるけど
うんはK
しっこはH
で書いてるよ

721 魅せられた名無しさん 2011/09/05(月) 00:20:04.10
各トイレと各ヌコの大便小便の回数と状態を記入だお
療法食のヌコのはそれに食べたご飯の種類やら成分値を入れて
その時の小便回数などから分析
月一回のpH検査の値も入れてグラフ表示までやるお
293名無しさん@そうだ選挙にいこう:2011/09/05(月) 18:10:15.37
【1 OSの種類         .】 WindowsXP SP3
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否

IF文で条件よってセルに値を入力する事って出来ますか?
if(A1>100,A2=100,A3=0)
みたいなイメージです。
294名無しさん@そうだ選挙にいこう:2011/09/05(月) 18:56:22.46
>293
A2セルに =IF(A1>100,100,0)  A1が100より大きければA2は100、それ以外ならば0
A3セルに =IF(A1>100,0,100)  A1が100より大きければA3は0、それ以外ならば100
こういうことならできます
295名無しさん@そうだ選挙にいこう:2011/09/05(月) 20:00:46.48
>>294
トンです。
そうか、逆は無理ですか。
296名無しさん@そうだ選挙にいこう:2011/09/05(月) 20:19:15.63
>>293
そーゆー事例はどんなときに使うの?
297名無しさん@そうだ選挙にいこう:2011/09/05(月) 20:28:10.24
VBAならできるんじゃないかな

参考
Private Sub Worksheet_Change(ByVal Target As Range)
'行1、列1(A1)のセルが変更された時の処理
If Target.Row = 1 And Target.Column = 1 Then
MsgBox (Target.Value & "が選択されました。")
End If
End Sub
298名無しさん@そうだ選挙にいこう:2011/09/05(月) 20:31:43.15
ドヤ顔でヘボいコードまで書いて得意げなところ悪いが

> VBAならできるんじゃないかな
そんなことは皆解ってるが、
> 【4 VBAでの回答の可否】 否
だから触れないだけ
299名無しさん@そうだ選挙にいこう:2011/09/05(月) 20:52:29.06
>>293
>if(A1>100,A2=100,A3=0)
>みたいなイメージです。

イメージがぜんぜんわからないのは俺だけ?
300名無しさん@そうだ選挙にいこう:2011/09/05(月) 20:53:55.10
>>296
シートのチェンジイベントを起こしたくて、苦肉の案です。
A2が書き換わる時にチェンジイベントを利用して処理をしようと
考えたのですが、294さんの例だとチェンジイベントは起きないので。
多分、Calculateイベントで関係するセル総当たりでみていくしかないみたいです。
301名無しさん@そうだ選挙にいこう:2011/09/05(月) 21:03:39.25
人からもらったファイルで、ある列のセルに適当に数字入れると
数字の大きさによって、背景白の文字黒色、背景緑の文字赤色
に変わるんだけど、どうなってるの?
少なくともマクロはない。
セルにもそれらしき関数は入って無いっぽいんだけど。
302名無しさん@そうだ選挙にいこう:2011/09/05(月) 21:04:57.16
>>301
条件付き書式
303名無しさん@そうだ選挙にいこう:2011/09/05(月) 21:05:03.02
>293,300
>シートのチェンジイベントを起こしたくて
だったら、なんでVBA利用:否って書いたの?
304名無しさん@そうだ選挙にいこう:2011/09/05(月) 21:05:47.40
>>303 いいじゃないかw ひとそれぞれだよww
305名無しさん@そうだ選挙にいこう:2011/09/05(月) 21:08:38.47
>>303
だって、if分での書き換えではイベント起こらなかったんだもん。
306名無しさん@そうだ選挙にいこう:2011/09/05(月) 21:10:49.39
>>302
おお!ありがまんこ
307名無しさん@そうだ選挙にいこう:2011/09/05(月) 21:23:34.03
とうさんをま○こに変えちゃダメ!
308名無しさん@そうだ選挙にいこう:2011/09/06(火) 00:29:40.33
条件付き書式で条件3つ付けたら条件によって
文字サイズが微妙に変わるんだけど何でですか?
条件付き書式のフォントの設定ではサイズとかは
グレーアウトしていて選ぶ事は出来ません。
309複乳:2011/09/06(火) 00:36:47.26
うんこ!ちんこ!まんこ!
310名無しさん@そうだ選挙にいこう:2011/09/06(火) 01:00:01.74
>>309
うんこといえば

Excelで犬猫の糞管理をする人たち
【michael】マイケル・ジャクソン【jackson】Part1152
689 魅せられた名無しさん 2011/09/05(月) 00:04:10.18
>>686
ふつうに使うお
ヌコ達の小便大便の管理とかエサ管理とか
ワードは年賀状とか手紙かくとか

710 魅せられた名無しさん 2011/09/05(月) 00:13:35.72
>>703
私は犬の体調管理に使ってるけど
うんはK
しっこはH
で書いてるよ

721 魅せられた名無しさん 2011/09/05(月) 00:20:04.10
各トイレと各ヌコの大便小便の回数と状態を記入だお
療法食のヌコのはそれに食べたご飯の種類やら成分値を入れて
その時の小便回数などから分析
月一回のpH検査の値も入れてグラフ表示までやるお
311名無しさん@そうだ選挙にいこう:2011/09/07(水) 00:04:21.81
>>308
太字にしたら、標準よりは大きく見えるけど
…って、そういうことではないのかな

どういう条件および書式を設定してるかの詳細と、
条件が適用されてるときとされてないときの
セルのスクショでもうpしてくれれば、何か分かるかも
312名無しさん@そうだ選挙にいこう:2011/09/07(水) 14:26:07.07
Excel2010で条件付き書式の練習をしています
日曜日のセルを赤く塗る為に条件を入力した後、土曜日のセルを青く塗る為に追加入力したいのですが
Excel2003のように【追加(A)>>】のボタンが存在していないので一度【OK】して完了し、また範囲指定してから土曜日の設定をしています
Excel2010では追加入力をするには別の方法があるのでしょうか?
313名無しさん@そうだ選挙にいこう:2011/09/07(水) 19:32:03.15
>>312
ルールの管理から入ると少しはマシかも。
314名無しさん@そうだ選挙にいこう:2011/09/07(水) 20:47:49.77
教えてください。
セルに特定の記号が入力されたらそれを特定の数値としてカウントし、合計させたいです。
たとえば○→5点、□→3点というふうに条件付けるとして
A1に○、A2に□が入力されたらA3に8点と表示したいわけです。
どの関数を使えばいいでしょうか?
countifもsumifも違うように感じました。どなたかご教授を…。

315名無しさん@そうだ選挙にいこう:2011/09/07(水) 20:59:30.67
A3セル
=(A1="□")*3+(A1="○")*5+(A2="□")*3+(A2="○")*5
316複乳:2011/09/07(水) 21:02:16.70
>>314
標準的にはcountifを使い、こうだな。

A3セル
=COUNTIF(A1:A2,"□")*3+COUNTIF(A1:A2,"○")*5
317名無しさん@そうだ選挙にいこう:2011/09/07(水) 21:17:36.85
できました!
さっそくのレスありがとうございました。
318名無しさん@そうだ選挙にいこう:2011/09/08(木) 10:23:42.26
>>315
この数式があえいでる顔に見えてすごくエロく感じた
疲れてるな俺
319名無しさん@そうだ選挙にいこう:2011/09/08(木) 11:10:42.66
>>313
出来ましたありがとうございます
質問続きですみませんがweekday関数を使う場合、【=weekday($A2)=1】と入力すると日曜の行に書式が適用されると思いますが
Excel2010でやると何故か火曜日の行に適用されてしまいます
火曜日が【1】、水曜が【2】、木曜が【3】…月曜が【7】とずれているのですが
此はExcel2010の仕様なのかそれとも適用される曜日を変更出来るのでしょうか?
320名無しさん@そうだ選挙にいこう:2011/09/08(木) 11:48:53.99
>>314
C1:D2に
○  5
□  3
と対応表があれば
=SUMPRODUCT(COUNTIF(A1:A3,C1:C2),D1:D2)
対応表がなければ
=SUMPRODUCT(COUNTIF(A1:A6,{"○","□"}),{5,3})
=SUM(COUNTIF(A1:A6,{"○","□"})*{5,3})
など
321名無しさん@そうだ選挙にいこう:2011/09/08(木) 13:13:47.92
SUMPRODUCT使うならCOUNTIF関数いらんなー

=SUMPRODUCT((A1:A2={"○","□"})*{5,3})
322名無しさん@そうだ選挙にいこう:2011/09/08(木) 13:33:15.06
>>321
うむ、たしかに
323名無しさん@そうだ選挙にいこう:2011/09/08(木) 13:39:03.39
F9で調べてみればわかるが、仕組みが全然違うな。
範囲が広ければCOUNTIF使ったほうが軽そうだ。
324名無しさん@そうだ選挙にいこう:2011/09/08(木) 18:09:08.13
【1 OSの種類         .】 Windows7 64
【2 Excelのバージョン   】 Excel 2010 14.0・・・
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 エクセル CPU 使用率

エクセルの処理をするとCPU使用率が必ず100%になってしまいます。
PCはi5、メモリ4Gのそこそこのパソコンを使っています。

計算する行数が3万近くなっているのが原因かと思います。
処理が終わるのに5分ぐらいかかっています。

まず、100%回避の方法が知りたいです。
1シートを複数シートにした場合に処理能力は変わりますか?
325名無しさん@そうだ選挙にいこう:2011/09/08(木) 18:46:16.67
・Excelが使用するCPUの数を減らす
・条件付き書式があればぜんぶ消す
326名無しさん@そうだ選挙にいこう:2011/09/09(金) 00:30:53.46
番号 名前 得点
1 田中 100
2 佐藤 90
3 鈴木 120
4 斉藤 110

このように並んでいるデータがあるとします。
得点をもとにランク付けしたり順位を数えたりする場合は
rankやlargeの関数を使えばいいと思うのですが、指定の得点順位を、
得点した者の名前or番号で抽出する場合にはどうすればいいですか?

たとえば2位の得点者はここでは「斉藤」ですよね。
2位の得点者を抽出したい場合、得点そのものではなく「斉藤」という名前を
指定したセルに表示させたいのです。

ご回答お願いします。

327名無しさん@そうだ選挙にいこう:2011/09/09(金) 00:36:31.41
>326
同点の人がいたらどうするの?
328名無しさん@そうだ選挙にいこう:2011/09/09(金) 00:46:14.49
>>327
いっしょに抽出したいです。
ちなみにただ1つの順位だけでなく、一つのセルにa位〜f位までと、
指定した複数の順位(を名前で)表示することができたら、と思っています。
329327:2011/09/09(金) 00:48:08.01
>328
一つのセルに複数データ? 結局、何をやりたいの?
330名無しさん@そうだ選挙にいこう:2011/09/09(金) 06:40:28.39
>>326,>>328
テンプレの
> ★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)
の2つのうち1つが抜け落ちちゃってるんだが、そこに
> ▼数式・関数
>   ・ 複数の結果を抽出、不定な数の結果を返す (VBA、結果の最大数が解っていれば最大数以上の式を論理式で組む)
ってのがある

君の要望は、この「数式・関数では出来ないこと」に該当する

そして代用法の筆頭がVBA、次点が条件付きだが、無駄に複雑な式を組むこと
「結果の最大数」は、2位の場合、理論上は「総人数-1」になるので
(100人中、1人が100点、99人が90点なら、2位として抽出される件数が99件となる)
作業セル使って「総人数-1」個の式を作って、それを論理式や検索式で繋げていくことになる

そうすれば結果は出せるが、恐ろしく無駄な方法なので、普通はVBA使うね

しかし君はここのルールである「VBAの可否」などを質問時に答えてないから
これも>>3★2のルール通り、「VBA可で自分でコード書ける」と勝手に解釈し


   >>326 「VBAで出来るから自分でコード書いて」


という回答を以て、君の質問は解決扱いになる
条件後出しでVBA無しでやりたいとか言い出しても後の祭りなので、今回はこれ以上の回答は期待せず
こういう対応されるのが嫌だったら今後はスレのルールを無視した愚かな質問の仕方をしないように気を付けるこった

まあ、もしかしたら実生活で誰からも相手にされない「教えたがり君」が出てきて、何か教えてくれるかもしれないがなw
331名無しさん@そうだ選挙にいこう:2011/09/09(金) 07:50:41.63
別のセルに表示とかいうから面倒なことになる。
フィルタかけるか、ピボットで抜き出せばたちどころに解決。
332名無しさん@そうだ選挙にいこう:2011/09/09(金) 10:02:42.08
質問なのですが列1セル目に@品目aA2セル目にA数量、3セル目にB日付を入力し

@00123 A3個 B2011/01/01 A
@00123 A4個 B2011/01/03 B
@00123 A2個 B2011/01/07 C
@00124 A1個 B2011/01/01 D
@00124 A5個 B2011/01/12 E
      〜
と表を作ったのですが@の同一番号の中にBの日付が特定日をすべて越えたときのみ
リストアップすると言う事は可能でしょうか?
例えば2011/01/07以降は表示させないとした場合、AとCは01/07以前ですが
Cがまだ超えていないのでA、B、Cとも表示させないと言う具合です。

どなたかご教示よろしくお願いいたします。
333名無しさん@そうだ選挙にいこう:2011/09/09(金) 14:04:48.39
>332
意味が支離滅裂なのでエスパーして回答します。
「○○以前」とは ○○ も含むので、A,B,C全て01/07以前です。

で、Bの日付が特定日を全て越えた とは、
@の品目bェ同一のものについてBの日付の最小値がわかればいいので、
作業列を利用します。
@はA列、AはB列、BはC列で1行目は項目見出し、2行目からデータがあると仮定すると
D2セルに =MIN(IF($A$2:$A$6=A2,$C$2:$C$6,"")) と入力(Enterキーはまだ押さない)し、
[Ctrl]キー、[Shift]キーを押しながら[Enter]キーを押します。※配列数式を入力したという意味です。
数式バーに {=MIN(IF($A$2:$A$6=A2,$C$2:$C$6,""))} と表示されていたらOKです。
334名無しさん@そうだ選挙にいこう:2011/09/09(金) 14:07:11.61
続きです。
2件目以降はドラッグコピーで複写できます。このままだとD列は全て2011/01/01となるので、
4件目のデータ(Dのところ)を2011/01/02に変えると、品目bェ00124の2件は2011/01/02になり、
品目vに日付の最小値が設定されていることがわかります。
>Cがまだ超えていないのでA、B、Cとも表示させないと言う具合です ということは
逆に 品目vの日付の最大値 を調べて、その日付で何かしたいのであれば、計算式の MIN を
MAX にしたらいいです。 どっちをしたいのかが、質問の文章からは推測できませんでした。
335332:2011/09/09(金) 14:16:22.18
>>333-334さん、ありがとうございます。
説明がわかり難くてすいません、ご教示頂いたようにやってみます。

わざわざお時間さいて頂ありがとうございました!
336名無しさん@そうだ選挙にいこう:2011/09/10(土) 11:17:45.07
番号
A1 NO1
A2 NO2
A3 NO3
A4 NO3
A5 NO4
とA列に番号を振っていますが、A2以降を自動で計算するにはどうすればいいですか?
A2に"=A1+1"と指定しましたが#VALUE!とエラーになりました。
NOが重複する度にオートフィルで入れ直す手間を改善したい。

ご回答お願いします。
337名無しさん@そうだ選挙にいこう:2011/09/10(土) 11:22:39.89
>336
セル書式(ユーザー設定)で "NO"# って設定し、A1には 1 だけいれたら、
> A2に"=A1+1"
でいけるよ。セルの値としては数字、表示の方はセルの書式で NO を付加するといいです。
338名無しさん@そうだ選挙にいこう:2011/09/10(土) 18:44:44.32
="NO"&ROW()
なら、書式設定する必要無し

逆に書式設定するなら、
=A1+1
なんて式使わず、フィルコピーで事足りる
339名無しさん@そうだ選挙にいこう:2011/09/10(土) 20:25:36.63
>>337の方法で出来ました。
ありがとうございました。
340名無しさん@そうだ選挙にいこう:2011/09/10(土) 23:14:15.91
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003、2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 半角英数字 関数

テキストデータをシートにコピペして、半角英数字とハイフン"-"、
アンダースコア"_"、かっこ"()"以外を削除したいです。
(文字バケを削除したいので、全角を半角に変える方法ではありません)

Forで各行、各セルの文字をIfで分岐すればいいかと思いますが、
上に書いた条件で分岐するにはどうすればいいでしょうか?
341名無しさん@そうだ選挙にいこう:2011/09/11(日) 05:55:29.81
次のような品物と価格の一覧があります
ringo 110
mikan 100
itigo 200

実際は次のようにセルに入力されています
'ringo 110.111
'mikan 100.100100
'itigo 199.999

機械が吐き出したデータなのですがこれらを一度にまたは
マクロかVBAで見えている通りの値に変更したいのです。
アイデアありましたらお願いします
342名無しさん@そうだ選挙にいこう:2011/09/11(日) 08:04:58.97
>>341
関数じゃいけないの?
ちなみに'をとるのはなんか計算をさせればOK。例えば1をかけるとか。
343名無しさん@そうだ選挙にいこう:2011/09/11(日) 08:07:50.65
>>341
後ろの数値は前の文字と分割(区切り)を行った後セルの書式を標準→数値
(小数点の桁→0)に設定すれば表示上は上の一覧のようになります。
また、値自体を整えたいというのであればROUND関数を使えばよいかと。
344名無しさん@そうだ選挙にいこう:2011/09/11(日) 08:40:36.76
>>340
どのような削除方法を想定しているかわからんけど
1文字づつ見て分岐なら Like演算子 かな?
If Moji Like "[-_()A-Za-z0-9]" Then
とか

>>341
見えている通りの値に変更なら
Range("A1").Value = Range("A1").Text
とかだと どうだろうか?
345340:2011/09/11(日) 14:11:15.53
>>344
ありがとうございます。
セル内の文字を削除する方法が分からなかったので、
If MOJI Like "[-_()A-Za-z0-9]" Then CHIKAN = CHIKAN & MOJI
で痴漢しました。
346名無しさん@そうだ選挙にいこう:2011/09/11(日) 14:22:38.15
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 セル 背景色 変更

セルのフォントの色や、背景色はセルに入れる
関数からは設定できませんか?
VBAのみでしょうか
347名無しさん@そうだ選挙にいこう:2011/09/11(日) 15:05:24.23
>>346
条件付書式は?
348名無しさん@そうだ選挙にいこう:2011/09/11(日) 15:22:41.32
>>347
トンです。
条件付き書式だと、0と””(空白)を区別してくれなかったりするので
if文かで出来ないかなと思いまして。
349名無しさん@そうだ選挙にいこう:2011/09/11(日) 15:40:17.78
>>348
区別はできるよ?数式を用いれば簡単
350名無しさん@そうだ選挙にいこう:2011/09/11(日) 15:57:48.67
エクセル2010で見積を作っています。
見積もり番号を自動で入力出来るようにしたいのですが、
Y1109111555
Y(自分の名字)11(2011年の11)0911(9月11日)1555(15時55分)といったように入力しています。
これを関数やマクロをつかって自動的に入力する方法はありますか?
351名無しさん@そうだ選挙にいこう:2011/09/11(日) 16:02:13.13
TODAY()とTIME()をTEXT()で適当に書式つけてくっつける
352名無しさん@そうだ選挙にいこう:2011/09/11(日) 16:17:03.65
>>350
関数は無理。マクロはワークシートのイベントを使えば出来るけど・・・・
353名無しさん@そうだ選挙にいこう:2011/09/11(日) 16:17:42.32
>>351
見積もり番号が変わるから、変数は無理
354名無しさん@そうだ選挙にいこう:2011/09/11(日) 16:17:49.55
「0」と「""」は区別される。これは数式使っても使わなくても区別される。

但し、「0」とEmptyは「対象=0」の場合、「""」とEmptyは「対象=""」の場合
数式使っても区別されない

一覧にするとこんな感じ
      対象=0  対象=""
0      ○     ×
Empty   ○     ○
""      ×     ○

つまり、0は「○×」、完全に空のセルは「○○」、空文字列の""は「×○」なので
それぞれ
=AND(A1=0,A1<>"")
=AND(A1=0,A1="")
=AND(A1<>0,A1="")
で区別できる

まあ「0」、Empty、「""」の3種ではなく、「0」とEmptyの2種なら「対象=""」で
「""」とEmptyの2種なら「対象=0」で区別できるけどね
355名無しさん@そうだ選挙にいこう:2011/09/11(日) 16:18:00.83
×変数
○関数

すみません
356350:2011/09/11(日) 16:24:38.50
返事ありがとうございます。
関数で自動的に入るように出来れば、
後はコピー、貼り付け(値)で値値にしようと思ってるのですが、
関数ではやはりむりですか?
357名無しさん@そうだ選挙にいこう:2011/09/11(日) 16:50:35.73
>>356
なら大丈夫。

="Y"&TEXT(NOW(),"yymmddhhmm")
358350:2011/09/11(日) 17:31:21.90
>>357
ありがとうございました!
見積番号の自動割り当てができました!
とても便利です。
そこでもう一つ質問なんですが、
マクロ実行ボタンを作ってコピー&ペーストで値を決めているのですが、
現在のマクロボタンはセルを指定してボタンを押さないとセルが別の場所にあるとそのセルをコピーアンドペーストしてしまいます。

Sub 見積完了()
'
' 見積完了 Macro
'

'
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
End Sub

現在のvbaはこのようになっているのですが、ここに セルI5 をボタンを押せばどこにポインタがあっても実行できるように出来ないですか?
よろしくお願いします。
359名無しさん@そうだ選挙にいこう:2011/09/11(日) 17:59:37.84
結合されたセルの値をクリアしたとき
Worksheet_ChangeのTarget.ValueがEmptyにならず、代わりに
結合セルの個数分のEmptyなVariantを格納したVariantになるため
Target.ValueがIsEmptyに引っ掛かりません
こういう場合、結合セルが空かどうかを判定するにはどうすればいいんでしょうか?
360名無しさん@そうだ選挙にいこう:2011/09/11(日) 18:08:40.92
>>358
これでどう。同じ場所にペーストすると式が消えるから下にペーストしてる。

Sub 見積完了()
'
' 見積完了 Macro
'

'
Range("I5").Copy
Range("I6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
End Sub
361名無しさん@そうだ選挙にいこう:2011/09/11(日) 18:13:20.74
教えるならせめてセルをSELECTするのはやめようよ(´・ω・`)
362名無しさん@そうだ選挙にいこう:2011/09/11(日) 18:59:09.16
可読性重視です
363名無しさん@そうだ選挙にいこう:2011/09/11(日) 19:35:36.00
セルをSELECTすると何がダメポなの?
364名無しさん@そうだ選挙にいこう:2011/09/11(日) 19:36:04.64
>>359
結合セル時の判定なら
 Target.MergeCells = True なら
 IsEmpty(Target.Cells(1,1).Value) で判定させればいいと思う
ただ
セル範囲に対してクリア等の操作された時も 配列になるんで
IsEmpty(Target.Value) じゃ判定できないから
渡されたセルの個数分 調べるしかないような
365名無しさん@そうだ選挙にいこう:2011/09/11(日) 19:53:58.17
For Each r In Target
If IsEmpty(r) Then ・・・・
Next r
こんな感じじゃないかなあ。これだったらセルの個数によらない。
366359:2011/09/11(日) 20:06:48.06
>>364,365

そもそもTargetが何を指しているかよく考えてなかったのが敗因でした
1つ1つセルを調べることにします
ありがとうございました
367名無しさん@そうだ選挙にいこう:2011/09/11(日) 20:18:55.44
>>362
Selectすると、可読性は落ちるよ。

   Aさんにリンゴを渡しました

ってのと

   Aさんを椅子に座らせました
   椅子に座ってる人にリンゴを渡しました

っての、どっちが可読性高い?

>>363
・可読性が落ちるから
・処理速度が落ちるから
・Selectionからは入力支援機能が使えず、コードの修正などがしにくいから
・コード修正時に「〜Select」と「Selection〜」の間に別の処理を入れてしまい
 正常に動かなくなるというバグを誘引する原因となるから
etc…
368名無しさん@そうだ選挙にいこう:2011/09/11(日) 20:45:45.04
8ビット時代の幻影を引きずってるひとがいるな
369名無しさん@そうだ選挙にいこう:2011/09/11(日) 21:09:32.88
Selectを100個使ったところで処理速度なんて全く落ちね〜〜よw
370名無しさん@そうだ選挙にいこう:2011/09/11(日) 22:28:32.60
残念、ハズレ

描写を止めたり、対象シートを非アクティブにしてなら処理速度落ちないけど
普通にアクティブシートで描写を止めずにSelect変更しまくると3GHzのCPUでも処理速度落ちます

描写変更の多い処理ではScreenUpdatingで描写を止めて処理速度の向上を図るなんてのはもはや常套手段だが
それは何故かって言うと描写変更ってのは以外と処理時間を喰うからであり、選択セル変更ってのは
その描写変更を伴う処理の一つなんですよ
371名無しさん@そうだ選挙にいこう:2011/09/11(日) 22:36:18.48
>>370
Application.ScreenUpdating = Falseを使わない理由を知りたい
372名無しさん@そうだ選挙にいこう:2011/09/11(日) 22:49:53.07
だれかApplication.ScreenUpdating = Falseを使わないなんて言ってるの?

>>369が「Application.ScreenUpdating = Falseを使うなら、Selectを100個使ったところで〜」という
話をしているなら誰も突っ込まないが、Application.ScreenUpdating = Falseを使うならという
前提で話をしていない以上、使わない場合の指摘を受けるのは当然のことだよ
373複乳:2011/09/11(日) 22:53:20.59
Sub セシウムさん()
Dim StartTime, StopTime, うんこ
StartTime = Time
うんこ = 1
If うんこ = 1 Then
Columns("B:B").Select
Selection.ClearContents
For i = 1 To 100
Cells(i, 1).Select: Selection.Copy
Cells(i, 2).Select: ActiveSheet.Paste
Next
Else
Columns("B:B").ClearContents
For i = 1 To 100
Cells(i, 1).Copy Destination:=Cells(i, 2)
Next
End If
StopTime = Time
StopTime = StopTime - StartTime
MsgBox Second(StopTime) & "秒"
End Sub

あまり変わらんような希ガス・・・
374名無しさん@そうだ選挙にいこう:2011/09/11(日) 23:25:26.06
×Time
○Timer
◎GetTickCount
375名無しさん@そうだ選挙にいこう:2011/09/12(月) 00:08:40.19
>>299
A1が100より大きければ、A2に100と表示し、A3には0と表示する。としたいんだろ。
376名無しさん@そうだ選挙にいこう:2011/09/12(月) 00:10:15.60
Book1xlsにマクロを書く
Sheet1をSheet1.csvで保存

このとき、Book1.xlsをアクティブにしたままSheet1.csvを保存することって出来ないの?
377名無しさん@そうだ選挙にいこう:2011/09/12(月) 03:54:26.40
>>374
論外
378名無しさん@そうだ選挙にいこう:2011/09/12(月) 06:02:20.89
いや、論外ではないか
379名無しさん@そうだ選挙にいこう:2011/09/12(月) 06:28:48.73
>>376
出来るけど、無駄で冗長で無意味なだけ

処理の間表示の更新を止めておき、処理の最後でBook1.xlsをアクティブにしてから
表示の更新を再開すれば、処理中にBook1.xlsのアクティブが維持されず
非アクティブになることがあろうと、見た目も結果も何も変わらん

まあActiveWorkbook.〜」的なコードを書いていると結果が変わってくるが
この手の処理でActiveWorkbookを使うこと自体が間違いなので、もしそうなら改めるべきは
Book1.xlsが非アクティブになることではなく、ActiveWorkbookを使うことだ
380名無しさん@そうだ選挙にいこう:2011/09/12(月) 06:54:36.48
Timeじゃ秒までしか計測できないんじゃないの?
普通はGetTickCountよりtimeGetTimeだと思うが。
381名無しさん@そうだ選挙にいこう:2011/09/12(月) 07:26:01.67
timeGetTimeは、環境によって精度が高い場合と低い場合がある
GetTickCountの精度は、最良環境のtimeGetTimeには敵わないが
どんな環境でもコンスタントにそこそこの精度を発揮する
382名無しさん@そうだ選挙にいこう:2011/09/12(月) 09:18:30.01
精度が低いときはtimeBeginPiriodとtimeEndPirodと組み合わせる。
駄菓子菓子、普通はTimerで十分だ。
分解能はどれも同じだよ。
所詮他の割り込みとか入るから完璧な精度は無理。
383名無しさん@そうだ選挙にいこう:2011/09/12(月) 09:29:39.62
分解能が同じなのはGetTickCountとTimerの話ね。
どちらも1/100秒程度の精度しかない。
384名無しさん@そうだ選挙にいこう:2011/09/12(月) 09:58:42.90
たまにそういう勘違いされるけど、それは間違い
385名無しさん@そうだ選挙にいこう:2011/09/12(月) 11:00:33.54
エクセルの操作的な質問もここでOK?
386名無しさん@そうだ選挙にいこう:2011/09/12(月) 11:57:07.98
>385
そのための「総合相談所」ですよ!
ただし、はじめにこのスレの>1-5を読んでくださいね。
387名無しさん@そうだ選挙にいこう:2011/09/12(月) 13:09:48.27
Sub 分解能調べ()
  Dim i As Long, j As Long
  Const N As Long = 10000000, NN As Long = 10000
  ReDim a(1 To N / NN, 0)
  j = 0
  For i = 1 To N
    If i Mod NN = 0 Then
      j = j + 1
      a(j, 0) = Timer
    End If
  Next
  Cells(1).Resize(j).Value = a
  j = 0
  For i = 1 To N
    If i Mod NN = 0 Then
      j = j + 1
      a(j, 0) = GetTickCount
    End If
  Next
  Cells(2).Resize(j).Value = a
  timeBeginPeriod 1
  j = 0
  For i = 1 To N
    If i Mod NN = 0 Then
      j = j + 1
      a(j, 0) = timeGetTime
    End If
  Next
  Cells(3).Resize(j).Value = a
  timeEndPeriod 1
End Sub
388名無しさん@そうだ選挙にいこう:2011/09/12(月) 13:13:51.11
上の頭に下を書くように。
Private Declare PtrSafe Function GetTickCount Lib "kernel32" () As Long
Private Declare PtrSafe Function timeGetTime Lib "winmm.dll" () As Long
Private Declare PtrSafe Function timeBeginPeriod Lib "winmm.dll" (ByVal uPeriod As Long) As Long
Private Declare PtrSafe Function timeEndPeriod Lib "winmm.dll" (ByVal uPeriod As Long) As Long

Sub 分解能調べ()はパソコンの性能によって適宜NNの値を変えること。
俺のはCore i7-2600であのような数値にしてる。
389名無しさん@そうだ選挙にいこう:2011/09/12(月) 13:27:12.58
複乳よりはややマシなのが来たか
390名無しさん@そうだ選挙にいこう:2011/09/12(月) 13:37:00.08
おまいさんよりはマシじゃないんだよな?w
>>380以降、この件に関して俺に反論してるやつ以外はほとんど俺の書き込みだ。
昔のパソコンはTimerもGetTickCountも分解能はほぼ同じだと記憶してたので>>383を書いたが
今のパソコンで実際調べたらGetTickCountが一番分解能が低いじゃねーかw
391名無しさん@そうだ選挙にいこう:2011/09/12(月) 13:54:06.66
この子、もうダメだ
392名無しさん@そうだ選挙にいこう:2011/09/12(月) 13:57:35.34
お互いそう思ってるから無問題
393名無しさん@そうだ選挙にいこう:2011/09/12(月) 13:57:36.18
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel 2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 (excel 小数点 変換) (excel 合計数 変換)


こんにちは。excelで割合(パーセンテージ)を整数に変更する方法をご教授ください。

http://i.imgur.com/Bjhtl.jpg

↑のように、一番右に回答の合計数があり、左側の小数点の部分は回答者が選択した割合を示しています
(この画像では6択ですが、3択・4択などもあります)

この割合で表示されている部分を、一番右の回答合計数に合うように、整数へと変換して表示する方法を探しています。
どうぞよろしくお願いいたします。
394名無しさん@そうだ選挙にいこう:2011/09/12(月) 14:03:53.40
>>381
>>どんな環境でもコンスタントにそこそこの精度を発揮する
おまいさんはどんな環境やねんwww
395名無しさん@そうだ選挙にいこう:2011/09/12(月) 16:06:40.51
>>394
GetTickCountがミリ秒の精度があると勘違いしてるんじゃね?
そんで環境によってtimeGetTimeの精度が悪くなることだけは珍しく知っていたってことだな。
396名無しさん@そうだ選挙にいこう:2011/09/12(月) 17:56:25.88
俺も、環境によってtimeGetTimeの精度がGetTickCountより悪くなることがあるってことだけは知っている。
397名無しさん@そうだ選挙にいこう:2011/09/12(月) 18:30:44.24
セルの色変えについてなんですが、

・5〜8行 :色なし
・9〜12行:青
・13〜16行:色なし
・17〜21行:青
………

という風にするには条件付き書式をどう設定したらよいでしょうか。
『=MOD(ROW(),2)=0』からの簡単な応用だと思うのですが、
色々試したけれどどうにもうまくいかず…
教えて頂けるとありがたいです。
398名無しさん@そうだ選挙にいこう:2011/09/12(月) 19:15:55.76
間違ったときには素直に認めればいいのにねぇ。
プライドばっか高くて絶対に認めないやついるよなぁ。
俺がGetTickCountとTimerの精度が1/100秒と書いたのは間違いだったわ。
そういえば昔も1/16秒の分解能だったよ。
timeGetTimeもそのころの環境ではほぼおなじだったな。
399名無しさん@そうだ選挙にいこう:2011/09/12(月) 19:18:49.39
1/16秒じゃなかったか。
16/1000秒だな。
400名無しさん@そうだ選挙にいこう:2011/09/12(月) 19:35:26.99
1行目、自分に言い聞かせてるの?
401名無しさん@そうだ選挙にいこう:2011/09/12(月) 19:45:45.06
>>397
=MOD(INT((ROW()-1)/4),2)

こんな感じ。
402名無しさん@そうだ選挙にいこう:2011/09/12(月) 19:47:46.72
>>397
最後のが17〜21ではなく17〜20で良いなら
=MOD(ROW()+3,8)>=4とか=MOD(ROW()-1,8)<=3とか

因みにこれ、Excelの質問ではなく小学校算数の質問だからね
Excelでの除余の出し方が解らないとかならExcelの質問だけど
MODやROWが解っていてこれが解らないってのは
小学校の「余りの有るわり算」と「数の大小」がちゃんと理解出来てないってことになる
少なくともそれらを実生活で応用できるレベルでは理解してないってことだ
403名無しさん@そうだ選挙にいこう:2011/09/12(月) 19:55:15.57
>>388
コンパイルエラーになるよ? by 2007
404名無しさん@そうだ選挙にいこう:2011/09/12(月) 20:26:59.57
もうバカには構うなよ
405名無しさん@そうだ選挙にいこう:2011/09/12(月) 20:31:39.86
>>403
PtrSafeを外してみたら?
俺は64bitのExcel2010なんだが、32bitのExcelでPtrSafeを書いていいものか正直自信がなかった。
t.tanaka氏のサイトに32bitのExcelでPtrSafeを書いても無問題みたいなこと書いてあったもんでそれを信じた。
406名無しさん@そうだ選挙にいこう:2011/09/12(月) 20:32:35.31
バカほど自分のバカには気が付かない。
もちろん404のことだ。
407名無しさん@そうだ選挙にいこう:2011/09/12(月) 20:42:07.36
レス番ズレてるよ?
再読み込みしてみたら?
408名無しさん@そうだ選挙にいこう:2011/09/12(月) 20:44:10.67
>>405
PtrSafeをデリったら動いた。
けど、この結果の見方がワケワカメ‥‥
409名無しさん@そうだ選挙にいこう:2011/09/12(月) 23:16:21.83
>>401 >>402
ありがとうございました。助かりました。
410名無しさん@そうだ選挙にいこう:2011/09/13(火) 10:46:36.20
>>408
同じデータがいっぱい続いて、変わるとき大きく変わるのは分解能が悪いってことだよ。
Windows7(64bit)での分解能(割り込み)はGetTickCountが1/64秒、Timerが1/256秒、timeGetTimeが1/1024秒ってことだろう。
たしかVistaじゃどれも大差なかったような記憶があるが。
コードは下の方が良かったか。
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Declare Function timeGetTime Lib "winmm.dll" () As Long
Private Declare Function timeBeginPeriod Lib "winmm.dll" (ByVal uPeriod As Long) As Long
Private Declare Function timeEndPeriod Lib "winmm.dll" (ByVal uPeriod As Long) As Long
Sub 分解能調べ()
  Dim i As Long, j As Long
  Const N As Long = 10000000, NN As Long = 10000
  ReDim a(1 To N / NN, 1 To 3)
  timeBeginPeriod 1 'おまじない(俺の環境では効いてない) 
  For i = 1 To N
    If i Mod NN = 0 Then
      j = j + 1
      a(j, 1) = Timer
      a(j, 2) = GetTickCount / 1000
      a(j, 3) = timeGetTime / 1000
    End If
  Next
  Range("A1").Resize(, 3).Value = Split("Timer GetTickCount timeGetTime")
  Range("A2").Resize(j, 3).Value = a
  timeEndPeriod 1
End Sub

timeBeginPeriodはWindows7ではどうも効いてないようだ。
1000にしても変わらんし。
411名無しさん@そうだ選挙にいこう:2011/09/13(火) 12:14:01.90
消費税がかわったときにダイアローグで入力するようにしたいのです
412名無しさん@そうだ選挙にいこう:2011/09/13(火) 12:24:13.59
>411
質問の続きはあるのかな?
413名無しさん@そうだ選挙にいこう:2011/09/13(火) 12:34:29.97
>>412
つぶやきだろ?
414名無しさん@そうだ選挙にいこう:2011/09/13(火) 12:54:10.56
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 ほんのちょっと
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 VBA IF

注文があるとC1に客甲の名前、A7に甲の住所、F1に客乙の名前、D7に乙の住所といった感じです延々書いていく必要があります。
客は大体固定なので予め客の名前と住所を対応させたボックスは用意できます。
名前を記入したらオートで住所が入るようにするにはどうしたらいいでしょう?
415名無しさん@そうだ選挙にいこう:2011/09/13(火) 12:54:23.58
★質問です。
Excelで単語帳(2列[英・和]×100行[語])を作ったのですが、
そのまま印刷すると、紙の右側が開いたページが大量に発生してもったいないと感じます。
印刷するときだけ、表を1ページ内に折り返して印刷することはできますか?
また、その方法は?

印刷するたびに手動で切り張りすると、単語がこれ以上増えると手間が大変になります。

▼━質問テンプレ ━━━━━━━━━━━━
【1 OSの種類         .】 Windows XP-Professional SP-3
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】いいえ
【4 VBAでの回答の可否】 否(可で可能ならば勉強します)
【5 検索キーワード     】 excel 印刷 折り返す
416名無しさん@そうだ選挙にいこう:2011/09/13(火) 13:06:30.36
>415
元データのシートは2列でずーっと下まで入れていって、
別シート(印刷用シート)に引用する計算式を入れたらいいです。
印刷用シートの方は何行までにしますか?
A列:英語、B列:和訳、C列:区切りの空白列 の3列を一組として、
何行×何組 で1頁分にしたいですか?
417名無しさん@そうだ選挙にいこう:2011/09/13(火) 14:36:09.20
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 参照 文字列 改行 ユーザー定義 値

質問です
参照や関数などで呼び出された値(文字列)を任意の文字数で改行
したいのですがどうやったら出来ますか
418名無しさん@そうだ選挙にいこう:2011/09/13(火) 15:42:29.35
A1の文字列をA2の文字数で改行する場合
「折り返して全体を表示する」にして
=LEFT(A1,A2)&CHAR(10)&RIGHT(A1,LEN(A1)-A2)
ただしA1の文字数<A2だとエラー
419名無しさん@そうだ選挙にいこう:2011/09/13(火) 20:59:25.50
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 ファイル 作成

やりたい事
Excelで以下の事を行いたいです。
アイディアでもいいので教えてほしいです

例(「|」はセルが分かれている事を示します
1 | a | A | いち
2 | b | A | に
3 | c | B | さん

この状態から、指定のファイルをコピーしてファイル名を「1_a.xls」「2_b.xls」「3_c.xls」と変更
その後、3列目のAやBによって不要なシートを削除
(たとえばAの場合はSheet2,3を削除、BではSheet2,4を削除等)
その後、「1_a.xls」の指定の場所に「1 | a | A | いち」をコピー

できれば一つのマクロ実行でここまでやりたいです。

アドバイスお願いします。
420名無しさん@そうだ選挙にいこう:2011/09/13(火) 23:41:05.86
指定のファイルをコピーってマクロ実行するたびに指定するの?
>その後、3列目のAやBによって不要なシートを削除
ってどういう法則で削除するの?
>指定の場所に「1 | a | A | いち」をコピー
ってファイルごとに毎回指定するの?
421名無しさん@そうだ選挙にいこう:2011/09/14(水) 00:08:46.85
特に何かしたわけではないのですが
「○○.xlsxには読み取れない内容が含まれています。このブックの内容を回復しますか?」
が出てきて、「はい」を押下すると中身の入力値がほぼ消えている状態です

こういうのはファイルが壊れたという認識でいいのでしょうか?
特に直前に何かしたわけではないのですがこういう状態の場合復旧は不可能でしょうか?
XMLもマクロもこれといって入れていません。
422名無しさん@そうだ選挙にいこう:2011/09/14(水) 00:20:30.44
>>420
指定ファイルはあらかじめ決まったファイルです
例えばC列の値がA→Sheet2,3 B→Sheet2,4 を削除等 これもあらかじめ決めておきます
(指定はそれ様のセルを作っても、VBAの中に組み込んでも可です)

指定の場所はファイルの決まった場所です
例えば元ファイルのA1を作ったファイル「1_a.xls」のSheet1のA1にコピー等です
423名無しさん@そうだ選挙にいこう:2011/09/14(水) 10:34:54.51
excel近似曲線の切片が意味するものは何でしょうか.
excelで散布図か何かに対して直線近似式を求めたとします.
その傾きは,x軸に関しての特性を表していると思います.
たとえば,傾きが大きな値であればそのデータはx軸に関して大きく変化しており,傾きが小さければ変化は小さく,x軸に関わらない.など.
しかし,切片の値というのは物理的に何を表すのでしょうか? どういう性質を表すでしょうか.

些細なことでも結構ですので,お考えをお聞かせください.


▼━質問テンプレ ━━━━━━━━━━━━
【1 OSの種類         .】 Windows XP-Professional SP-3
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 excel 近似曲線 直線近似 傾き 切片 
424名無しさん@そうだ選挙にいこう:2011/09/14(水) 13:08:06.47
>>422
こんな感じですかね

Sub bookCopy()
Dim siteiPath As String
Dim siteiWB As Workbook
Dim dataArea As Range
Dim targetRow As Range
Dim newFileName As String

  Set dataArea = ThisWorkbook.Worksheets(1).Range("a1:d3")
     '作業の元になるデータの範囲(1 | a | A | いち〜等のセル)
  siteiPath = "C:\Documents and Settings\user01\デスクトップ\指定ファイル.xls"
     '指定ファイルのフルパス

   For Each targetRow In dataArea.Rows
    Set siteiWB = Workbooks.Open(siteiPath)
     '指定ファイルのコピーを保存(拡張子:xls)
    newFileName = targetRow.Range("a1") & "-" & targetRow.Range("b1") & ".xls"
    siteiWB.SaveAs Filename:=newFileName
     '3列目の文字列に基づいてシート削除処理
    del_sheet Workbooks(newFileName), targetRow.Range("c1")
     '指定の場所(Sheet1のA1)にコピー
    targetRow.Copy Destination:=Workbooks(newFileName).Worksheets("sheet1").Range("a1")
  Next
End Sub

つづく
425名無しさん@そうだ選挙にいこう:2011/09/14(水) 13:12:23.62
つづき
Sub del_sheet(WB As Workbook, Key As String)
  Application.DisplayAlerts = False
With WB
Select Case Key
Case "A"
.Sheets("sheet2").Delete
.Sheets("sheet3").Delete
Case "B"
.Sheets("sheet2").Delete
.Sheets("sheet3").Delete
End Select
End With
Application.DisplayAlerts = True
End Sub

「1 | a | A | いち〜」のセルがあるブックに記述してください
ファイルやシートが存在しない、重複する等のエラーは考慮してません
426名無しさん@そうだ選挙にいこう:2011/09/14(水) 19:39:00.79
>>423
excelの切片というか一般的な切片でいいのですかね??
そういう意味なら
X切片  Y=0の時のXの値
Y切片  X=0の時のYの値  です

文章から y=ax+b の式を思い浮かべたので、bはY切片です

もしこのbが求められないと不便な事があるからじゃないでしょうか

例えば
データ群から近似式を求めて、Xがある一定の値の時のYの値を予想したい時にbの部分がないと求められませんよね?
427名無しさん@そうだ選挙にいこう:2011/09/14(水) 21:57:12.18
【1 OSの種類         .】 Windows Vista
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】(excel 行から列 相対参照)(セル ずらして 参照)

社員が朝昼夜に何を食べたかの年間スケジュール表があって、
そこからデータを抽出して、
別ファイルに社員ごとの表をつくりたいんです。

参考図↓
http://pc.gban.jp/?p=33814.jpg

縦にズラズラ並んでいる元データから、
横3セルごとに改行するには、どんな関数を使えばいいのですか?
428名無しさん@そうだ選挙にいこう:2011/09/14(水) 22:59:14.29
>427 ふたつ質問
○さんだけ抽出って表は、どこかを1カ所変えるだけでAさん、Bさん、Cさん・・・と切替ができる必要がありますよね?
○さんだけ抽出って表の「Aさん」って表示されているセルはA1セルですか?
429428:2011/09/14(水) 23:47:17.16
>427
元データシートがSheet1で、抽出先が別シートとし、前提が 428 で書いたとおりとしたら、次の式でいいです。
元データシートのA2セルの式 =MATCH(A1,Sheet1.C1:E1,0)  E1の部分は現物に合わせる
B3セル(1月1日の朝)の式 =OFFSET(Sheet1.$B$2,(ROW()-3)*3,$A$2)&""
C3セル(1月1日の昼)の式 =OFFSET(Sheet1.$B$2,(ROW()-3)*3+1,$A$2)&""
D3セル(1月1日の夜)の式 =OFFSET(Sheet1.$B$2,(ROW()-3)*3+2,$A$2)&""
あとはB3:D3を必要なだけドラッグコピーしてください。
level不足により、次に続く・・
430428:2011/09/14(水) 23:49:39.73
>続きです
A2セルの数字はAさん、Bさん、Cさん・・・の横方向のシフト位置を示します。
A1セルに抽出したい人の名前を入れると数字が出ます。該当なければ、計算式を入れたセル全て #N/A になります。
以上、LibreOffice3.3 で試してみた結果なので、ひょっとすると動かないかも知れないけど、今Excelが手元にないのであしからず。
431428:2011/09/15(木) 00:14:12.67
>429でちょっと抜けてた。
B3,C3,D3の各計算式は、抽出先シートへ です。元データシートの計算式はA2セルだけです。

ついでに &"" は、参照元が文字列だけ、と仮定し、参照元セルが空欄だったときに 0 と表示させないためのものです。
432428:2011/09/15(木) 01:12:33.81
何を勘違いしてたのか、A2セルの計算式も抽出先シートです。
とにかく、計算式は全部抽出先シートへ、です。
ねぼけてたのか<俺
433名無しさん@そうだ選挙にいこう:2011/09/15(木) 07:35:17.13
以下のように、例えばクラスの体重とその人数を集計した時に
上位から25%の人は何キロかとかを計算する方法はありますか?

A列 B列
1 体重 人数
2 51kg 3
3 53kg 4
4 56kg 2
・ ・
・ ・
・ ・
434名無しさん@そうだ選挙にいこう:2011/09/15(木) 10:55:25.44
>433
「上位」って体重の大きい方から考えるの?
それとも、A列の並び(体重の軽い方)で考えるの?
435名無しさん@そうだ選挙にいこう:2011/09/15(木) 11:24:56.00
>>433
ありますよ

>>434
いつものかまってちゃんなんで親身にならないでいいですよ。
436434:2011/09/15(木) 11:45:58.47
>435 そうなのか、じゃ
>433 作業列 と match と index を組み合わせる とだけ
437名無しさん@そうだ選挙にいこう:2011/09/15(木) 19:43:09.72
つーかさ、最近「算数」の質問大杉

算数・数学的な解の求め方を理解している上で
それをExcel上に表現(入力)する方法が解らないとかはこのスレの範疇だが
算数・数学的な解の求め方が解らないって質問はスレ違いだぞ
438名無しさん@そうだ選挙にいこう:2011/09/15(木) 19:56:38.33
直角三角形の各2辺の二乗の和が斜辺の二乗に等しいのはなぜですか?
439名無しさん@そうだ選挙にいこう:2011/09/15(木) 21:05:56.32
ボウヤ、それ面白いと思ってるの?
440名無しさん@そうだ選挙にいこう:2011/09/15(木) 21:18:16.60
2万行以上あるセルにhttpから始まるリンクのある行と普通の文字だけの
行があり、そこから文字だけを抽出したいんですがどうすればいいんですか?

なにかプログラミングみたいなことが必要なのかその他のことでできるのか。
よろしくお願いします。
441名無しさん@そうだ選挙にいこう:2011/09/15(木) 21:32:48.19
>>440
それは数字を除外したすべての文字を抽出したいということかな?
442名無しさん@そうだ選挙にいこう:2011/09/15(木) 21:33:10.96
マクロの変数で、A1 As Single、A2 As Single、A3 As Single・・・、A35 As Singleと
35個の変数を一度に指定する方法を教えてくださいです。
443名無しさん@そうだ選挙にいこう:2011/09/15(木) 21:35:23.24
httpで始まらないやつをオートフィルタで抽出
444名無しさん@そうだ選挙にいこう:2011/09/15(木) 22:37:16.63
>>442
そういうときは配列使うんだよ

Dim A(1 to 35) As Single

A(1) = 1.2
A(2) = 2.3
A(3) = 3.4
445名無しさん@そうだ選挙にいこう:2011/09/16(金) 11:52:11.77
A1がF1と同じ文字列ならC1にG1の数値を入れるってのをやりたいんですがどうしたらいいですか?
446名無しさん@そうだ選挙にいこう:2011/09/16(金) 13:00:57.63
=if(A1=F1,G1)
447名無しさん@そうだ選挙にいこう:2011/09/16(金) 13:18:49.34
>>445
=IF(A1<>F1,□,G1)
もしくは
=IF(A1=F1,G1,□)

※ □にはA1とF1が違う文字列の場合にどうするかを指定してください。
448名無しさん@そうだ選挙にいこう:2011/09/16(金) 21:33:41.10
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel Viewer 2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 Excel Viewer 均等割り付け 表示
Excel Viewer 2007でxlsファイルの印刷をしています
書式が均等割り付けに設定されているのに中央そろえで表示されます。
均等割り付けを正常に表示する方法はありませんか。
449名無しさん@そうだ選挙にいこう:2011/09/16(金) 22:59:12.77
Excel Viewerは無料な代わりに、「内容が確認できれば良い」程度の造りで
表示(書式など)に限ってもExcelの全機能を網羅しているわけじゃない

というわけで、「無料のものに多くを求めすぎるな」
「完璧な書式の再現を望むなら、ViewerじゃないExcel使え」程度の
常識的な指摘くらいしか言うこと無いな
450名無しさん@そうだ選挙にいこう:2011/09/17(土) 01:11:44.55
Excel2007を使用しています

A列に出品日
B列に売れた日を入力しています

A列とB列を比較して、30日以内ならセルの色を変えたいのですがどうすればいいのでしょうか?

日付の書式は「20110917」のように書いています
この書式だと比較できないなら書き換えます

このような図の場合、1は30日以上経過しているので無視
2は30日以内なのでA2かB2に色を付けたいということです

   A出品   B販売
1 20110731 20110917
2 20110910 20110917
451名無しさん@そうだ選挙にいこう:2011/09/17(土) 02:34:29.63
>>450
日付の入力書式を変えていいなら「2011/09/17」のようにしたらいい
そうすれば単純に B列 - A列 の引き算で経過日数がでる。
セルの色を変えるのは、条件付き書式で

ところで経過日数が30日の時はどうするの?
・30日以上経過しているので無視
・30日以内なので色を付けたい
両方合致するけど...
452名無しさん@そうだ選挙にいこう:2011/09/17(土) 07:59:11.56
今週月曜深夜の>409さんを最後に

質問 と 質問への回答 はあっても、
回答へのお礼 がないのはなぜだろう?
453複乳:2011/09/17(土) 08:03:10.42
>>452
2chだから。
おまいはお礼はあって当然と思ってるようだが、
おまいは質問した、オレは回答した、さあお礼を待ってるぞ。
454名無しさん@そうだ選挙にいこう:2011/09/17(土) 08:58:15.21
thx>453
455450:2011/09/17(土) 19:57:03.41
>>451
その書式にすれば日付扱いで引き算できたんですね!
やってみます

確かに、あれだと両方入っちゃいますね
以上と以下の使い方を間違えていました
30以下と31以上ですね

即レスどうもです!
456名無しさん@そうだ選挙にいこう:2011/09/17(土) 23:58:30.89
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】セル結合 アベレージ

49.85 49.85 49.85
50.00 50.00 50.00
50.15 50.15 50.15
50.30 50.30 50.30
50.55 50.55 50.55
50.80 50.80
50.85 50.85 50.82
50.90 50.90
50.95 50.95 50.92
51.00 51.00 51.00
51.10 51.10
51.15 51.15 51.12

エクセル初心者ですよろしくお願いします。

左端が元データ
上の数字との差が0.15以上ならそのまま
0.05未満だと上との数字の平均でセルを結合して
右端のように表示することは可能でしょうか?
457名無しさん@そうだ選挙にいこう:2011/09/18(日) 08:12:31.24
>>448
SP2を入れるとそうなるから再インストすれ
458名無しさん@そうだ選挙にいこう:2011/09/18(日) 15:08:24.53
>>453
現実社会でお礼を言われることが無く淋しい思いをしているが故に
ここで僅かでもお礼を言われる可能性に期待して張り切ってる奴が
何強がって澄ましたこと言ってるんだかw
459442:2011/09/18(日) 20:11:22.20
>>>444
ありがとうございましたです。
460名無しさん@そうだ選挙にいこう:2011/09/18(日) 22:54:05.53
A列に時間(15:00)B列に(19:00)があったとして、C列にその間が何分かというのを(240分)自動で表示させたいのですが、何かいい方法ありませんか?
461名無しさん@そうだ選挙にいこう:2011/09/18(日) 23:00:59.79
=B1-A1
表示形式をユーザー定義→[m]
462名無しさん@そうだ選挙にいこう:2011/09/18(日) 23:15:37.56
できました!ありがとうございました。
463名無しさん@そうだ選挙にいこう:2011/09/19(月) 18:15:54.18
複乳の兄です
複乳は先週、肺癌で亡くなりました
短い間でしたがお世話になりました、楽しかったです
皆様もお体にはお気をつけ下さい
との事でした

私からもお礼を申し上げます
皆様、弟に付き合って頂き、ありがとうございました
464複乳:2011/09/19(月) 18:32:22.33
>>463
こら、勝手に殺すな
465名無しさん@そうだ選挙にいこう:2011/09/19(月) 19:01:55.67
>>464
不思議な気分です
ありがとう
私もいつかExcelで困った事があれば、寄らせて頂きますね
失礼しました
466376:2011/09/19(月) 21:47:07.26
>>379
@この手の処理でActiveWorkbookを使うこと自体が間違い
A改めるべきはBook1.xlsが非アクティブになることではなく、ActiveWorkbookを使うこと

@とAは一貫性があるの?
難し過ぎてワケワカメ・・・

んで本題
↓だと保存後Sheet1.csvになってBook1.xlsが無くなるけど、
どこを変えればいいの?

Sub CSVで保存()
  Sheets("Sheet1").Select
  ActiveWorkbook.SaveAs Filename:="D:\DATA\Sheet1.csv", _
  FileFormat:=xlCSV, CreateBackup:=False
End Sub
467名無しさん@そうだ選挙にいこう:2011/09/19(月) 22:07:55.76
>466 横から失礼
379さんではありませんが、book形式で保存するんじゃなければ
保存したいシートを別ブック(新規ブック)にコピペして、当該ブックをcsv形式で保存する方法が
元ブックはそのまま残るからいいんではないでしょうか?
468名無しさん@そうだ選挙にいこう:2011/09/19(月) 23:33:31.11
データ中に山田太郎って名前があったら右に2、下に3マスの所に市××町1-2-3とオートで入れたいんだがこういう処理って出来ますか?
山田太郎が例えばD5にあったらF8に地番が入るように
469名無しさん@そうだ選挙にいこう:2011/09/19(月) 23:34:24.71
出来ます
470名無しさん@そうだ選挙にいこう:2011/09/20(火) 00:14:55.14
>>468
VLOOKUPって知ってる?
471名無しさん@そうだ選挙にいこう:2011/09/20(火) 03:44:59.14
>>468
そういう書き方だとD5に山田太郎あるかもしれないがF7にも山田太郎と入る可能性も否定できない
書き方だな。
472名無しさん@そうだ選挙にいこう:2011/09/20(火) 07:01:50.45
>>470
解決しました
ありがとうございました
473名無しさん@そうだ選挙にいこう:2011/09/20(火) 12:45:20.53
>>418
出来ましたー ありがとうございます!
474名無しさん@そうだ選挙にいこう:2011/09/20(火) 18:22:56.64
なんか最近の質問者ってキモイなぁ。
475名無しさん@そうだ選挙にいこう:2011/09/21(水) 01:10:34.07
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 マクロ 名簿 年齢別 色分け
A列:氏名/B列:生年月日/C列:年齢
の表で年齢別に色分けしたいです。
20歳と30歳は青
0〜19歳、21から29歳、31以上は赤
こんな感じで色分けしたいです。
セルの色はAからC列まで(情報が入っているすべての列に色づけ)色をつけたいです。
よろしくお願いします。
476名無しさん@そうだ選挙にいこう:2011/09/21(水) 06:29:12.93
>>475
条件付き書式
477名無しさん@そうだ選挙にいこう:2011/09/21(水) 11:00:36.89
なんか最近の回答者ってキモイなぁ。
478名無しさん@そうだ選挙にいこう:2011/09/21(水) 11:13:07.21
なんか最近のつぶやき者ってキモイなぁ。
479名無しさん@そうだ選挙にいこう:2011/09/22(木) 18:42:54.07
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel*2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 描画ツール 色変更 文字色 文字 色 できない 赤 囲

ワードアート等作業中に出る「描画ツール」ですが、赤線四角で囲われている状態です。
描画ツール使用中に文字色、背景色共に変更できません。どの色をどこから選択しても黒以外表示されません。
プレビューも黒です。条件付き書式は未設定です。
アンインストール等はしていません。

よろしくお願いします。。。
480名無しさん@そうだ選挙にいこう:2011/09/22(木) 20:07:54.48
私の環境では赤線四角で囲われていません。

はい、次の方〜
481復乳:2011/09/22(木) 20:30:55.66
>>475
Sub Fukuchichi()
Dim うんこ As Long
For うんこ = 1 To 65536
 If Range("C" & うんこ) = "20歳" Or Range("C" & うんこ) = "30歳" Then
  Range("A" & うんこ & ":C" & うんこ).Select
  With Selection.Interior
   .ColorIndex = 5
  End With
 ElseIf Range("C" & うんこ) = "0〜19歳" Or Range("C" & うんこ) = "21から29歳" Or Range("C" & うんこ) = "31以上" Then
  Range("A" & うんこ & ":C" & うんこ).Select
  With Selection.Interior
   .ColorIndex = 3
  End With
 End If
Next うんこ
End Sub
482名無しさん@そうだ選挙にいこう:2011/09/22(木) 23:11:17.13
複乳ならぬ復乳か

最初、名前では漢字違いに気付かなかったが、コードで複乳ではないことが一発で解った

本物の複乳のレベルは初心者に毛が生えた程度だが
>>481のコードは、まだ毛も生えてない初心者そのもののコード

複乳はまだまだまともなコードは書けないが、それでも中学生レベルのコードは書く
さすがに>>481みたいな小学生レベルのコードでは、名前欄で気付かなくても
複乳じゃないことは一目瞭然だ
483復乳:2011/09/22(木) 23:57:05.71
Sub セシウムさん()
Dim うんこ As Long
For うんこ = 1 To Cells(65536, "C").End(xlUp).Row
If Cells(うんこ, "C") = "20歳" Then
Range(Cells(うんこ, "C"), Cells(うんこ, "C").Offset(0, -2)).Interior.Color = RGB(0, 0, 255)
ElseIf Range("C" & うんこ) = "30歳" Then
Range(Cells(うんこ, "C"), Cells(うんこ, "C").Offset(0, -2)).Interior.Color = RGB(0, 0, 255)
ElseIf Range("C" & うんこ) = "0〜19歳" Then
Range(Cells(うんこ, "C"), Cells(うんこ, "C").Offset(0, -2)).Interior.Color = RGB(255, 0, 0)
ElseIf Range("C" & うんこ) = "21から29歳" Then
Range(Cells(うんこ, "C"), Cells(うんこ, "C").Offset(0, -2)).Interior.Color = RGB(255, 0, 0)
ElseIf Range("C" & うんこ) = "31以上" Then
Range(Cells(うんこ, "C"), Cells(うんこ, "C").Offset(0, -2)).Interior.Color = RGB(255, 0, 0)
End If
Next うんこ
End Sub
484名無しさん@そうだ選挙にいこう:2011/09/23(金) 00:09:02.90
>>483
これだけ分岐があるのなら、CASE文の方がいいんじゃないか。
まぁ、好みといってしまえばそれまでだが。
485名無しさん@そうだ選挙にいこう:2011/09/23(金) 00:12:21.55
てゆーか、C列は文字列でいいのか?
486名無しさん@そうだ選挙にいこう:2011/09/23(金) 00:53:31.29
>>482
おめーもgdgd言ってないで中学生レベルのコーディング作法教えろよ。
そのくらいのレベルには達してんだろ?
487475:2011/09/23(金) 01:40:59.75
あの…
うんこの部分は何に置き換えたらいいのでしょうか??
488名無しさん@そうだ選挙にいこう:2011/09/23(金) 02:00:16.93
>>487
AでもBでもcntでも好きにすればいい。
ただFor文のループカウンターだから、慣例的にはiあたりが妥当だと思われる。
489名無しさん@そうだ選挙にいこう:2011/09/23(金) 02:14:03.71
>>475
マクロの他のやり方だけど、>>476の人が言っている条件付き書式のやり方ね

1行目がタイトル("氏名"、"生年月日"、"年齢")、2行目以降にデータが入っているとして、
A2からC2のセルを選択したまま、メニューから書式>条件付き書式を選ぶ

条件1に「数式が」「=OR($C2=20, $C2=30)」
で、条件1の枠にある書式ってボタン押してパターンから青い色選ぶ

おなじく条件2で「数式が」「=$C2<>""」
書式のパターンから赤

これで、C2の年齢欄の数字変えると色が変わるのをチェック

あとは、A2からC2のセルをコピーして、3行目から下のA列からC列に対して
メニューの編集>形式を選択して貼付けで書式にチェックして貼付け
490名無しさん@そうだ選挙にいこう:2011/09/23(金) 03:47:02.66
>>487
ぉぃぉぃ、ツッコミどころはそこじゃねーだろ?w
491475:2011/09/23(金) 08:22:07.00
>>481のうんこの部分をiに変えてやってみました。
20と30に青色がつくのですが、ほかの年齢に色がつきませんでした。
ちなみに年齢は「歳」の文字はつかなくて数字のみで、
「19」や「34」と入力しています。
だから481の年齢の記述の「歳」を消して適応してみたのですが
うまくいくのは20と30の色づけだけです。
どこを修正すればよいのでしょうか??

>>489
詳しくありがとうございます!!
これもとても便利ですね。うまくいきました。
今後、もっと年齢に対する色付けの条件が細かくなる予定ですので
>>481とこちらとどちらがよりよいか検討しつつ活用させていただこうと
思います。丁寧にありがとうございます!
492名無しさん@そうだ選挙にいこう:2011/09/23(金) 10:15:28.83
>>491
Ifでは「=0〜19」的な条件は書けないので
ElseIf ((Range("C" & うんこ).Value >= 0) And (Range("C" & うんこ).Value <= 19)) Or ((Range("C" & うんこ).Value >= 21) And (Range("C" & うんこ).Value <= 29)) Or (Range("C" & うんこ).Value >= 31) Then
もしくは
ElseIf (Range("C" & うんこ).Value >= 0) And (Range("C" & うんこ).Value <= 19) Then
ElseIf (Range("C" & うんこ).Value >= 21) And (Range("C" & うんこ).Value <= 29) Then
ElseIf Range("C" & うんこ).Value >= 31 Then
って書かなければならないが、他の人も言ってるようにこれでは冗長なのでSelect Case使った方が良い

とりあえず保守性や汎用性を考えなければこれでいいんじゃないの?
Dim row As Range
For Each row In Range("A1").CurrentRegion.Rows
 Select Case row.Cells(, "C").Value
  Case 20, 30: row.Interior.Color = vbCyan ' vbBlue
  Case 0 To 19, 21 To 29, 31 To 150: row.Interior.Color = vbMagenta 'vbRed
 End Select
Next row

普通に考えれば「Case 0 To 19, 21 To 29, Is >= 31」だが、Case節の比較演算は特殊で
「Is >= 31」だと1行目がタイトルでC1に「年齢」って入ってる場合でも、そこまで色付けされるが
1行目がタイトルなのかデータなのか書かれていないし、除外するのも面倒なので「31 To 150」で逃げてる
あと、色は青/赤との指定だが、文字色ならまだしも背景色はあまり濃いと見づらいので、
Blue/Redではなく同系の淡色でCyan/Magentaにしてみた

あとは必要に応じてApplication.ScreenUpdating付けたり定数化したり
493名無しさん@そうだ選挙にいこう:2011/09/23(金) 13:58:11.69
>>491
Dim うんこ As Longの "うんこ" は、そのまま使ってもいい。
494名無しさん@そうだ選挙にいこう:2011/09/23(金) 13:59:55.10
Rowsに対してループ回すとか、なかなか憎いことするじゃねーか。
495名無しさん@そうだ選挙にいこう:2011/09/23(金) 15:32:08.12
自画自賛w
496475:2011/09/23(金) 15:40:25.25
>>492
うおおおおぉぉぉ!!こんなのをまっていましたああぁぁ!
希望通りの動きですありがとうございます!
ところで、475に上げた例ですと、表はA〜C列までですが
本当はもっと横に長い(列が多い)表です。
列の一番端っこまで色を入れるには、↓のどこを変えればいいのでしょうか??
Dim row As Range
For Each row In Range("A1").CurrentRegion.Rows
 Select Case row.Cells(, "C").Value
  Case 20, 30: row.Interior.Color = vbCyan ' vbBlue
  Case 0 To 19, 21 To 29, 31 To 150: row.Interior.Color = vbMagenta 'vbRed
 End Select
Next row
そして、現在は列の一番初めはA列ですが、これがB列からはじまったり
する場合はどこをかえればいいでしょうか??
よろしくお願いします。

497475:2011/09/23(金) 15:45:23.29
あっ、失礼しました。
データが入ってるすべての列に色がつくのですね!
498名無しさん@そうだ選挙にいこう:2011/09/23(金) 16:06:12.80
セルの色はAからC列まで(情報が入っているすべての列に色づけ)色をつけたいです

って書いてたのはドコの独逸だよ(プンプン
499名無しさん@そうだ選挙にいこう:2011/09/23(金) 16:47:39.22
【1 OSの種類         .】 Windowsxp
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

質問画像
ttp://ichigo-up.com/cgi/up/qqq/nm42108.png

質問お願いします。
上の画像のような集計シートを10枚作り、
さらに各シートの総合計シートを作成し、データを集計しようと思っています。

総合計のシートも画像と全く同じ形で、各セル内の入力値を合計しようと思います。
例えば各シートの1-fの入力値を合計し、
総合計の1-fのセルに合計値を表示させる感じです。

Σボタンの計算式の埋め込み程度は出来るのですが、その方法で行った場合、
各シートのセル内に1回1回クリックして回らなければならず、
セルの数も100ヶ以上・・。
計算式を埋め込むのは不可能ではないですが、労力が尋常ではありません。
なにかある程度一括して各セルごとの計算値を登録できる方法って無いのでしょうか・・?
500名無しさん@そうだ選挙にいこう:2011/09/23(金) 16:57:04.06
>>499
1箇所くし刺し演算をした後、他の場所(セル)にコピーすればいいだけじゃないの?
http://kokoro.kir.jp/excel/3d.html
501名無しさん@そうだ選挙にいこう:2011/09/23(金) 17:43:51.63
直後に質問者からも希望通りだと絶賛されていると、>>495は悔し紛れにしか見えないねw
質問者から扱き下ろされるような内容なら、>>494は自画自賛に見えなくもないが
自画自賛なんかしなくても絶賛取れる内容だと、逆に>>495書いてる奴が哀れw
502名無しさん@そうだ選挙にいこう:2011/09/23(金) 18:39:23.03
>>500
ありがとうございます。
簡単に作成することが出来ました!
503名無しさん@そうだ選挙にいこう:2011/09/23(金) 18:40:25.77
絶賛取れる内容w
504名無しさん@そうだ選挙にいこう:2011/09/23(金) 18:54:37.55
>>復乳
悔しかったのは解るが、いい加減ひっこめ
505名無しさん@そうだ選挙にいこう:2011/09/23(金) 19:22:36.44
実際良い発想だと思うけどな。
普通ならFor Each使っても、C1,C2,C3ってループにしそうだが
A1:C1,A2:C2,A3:C3ってループにすることで、ループ内で毎回
Range(Cells(うんこ, "C"), Cells(うんこ, "C").Offset(0, -2))
的な色付け範囲取得処理をする必要性を廃している。

なんて書くと、また嫉妬した奴に自画自賛とか言われそうだなw
自分の内に確たる自信のある奴は、他人の良いところは素直に
認められるが、自分の内に確たる自信の無い奴は、他人を見下す
事でしか自分を慰められないから、いつも悪態ばっかり付いてるんだね。
506名無しさん@そうだ選挙にいこう:2011/09/23(金) 19:28:09.02
自演じゃねーの?
復乳を目いっぱい馬鹿にしてるが、自分なのでいくらでも馬鹿にできるってなもんじゃね?
自分じゃなければ普通そんなに馬鹿にしねーよ。
For EachとSelect Caseはごく当たり前の書き方だな。
プロがFor Nextで書いたら不合格レベルだろう。
507名無しさん@そうだ選挙にいこう:2011/09/23(金) 19:34:24.35
何度も解説するなって
回答者が質問者になってドヤ顔されるのもなんだかなぁ〜って感じ
508名無しさん@そうだ選挙にいこう:2011/09/23(金) 19:43:48.30
>>506
合格レベルのコードを晒した上で言わないと、なんの説得力もない嫉妬にしか見えない件について
509名無しさん@そうだ選挙にいこう:2011/09/23(金) 19:53:13.03
嫉妬もなにも、だれでも普通For EachとSelet Caseで書くよ。
人によって文字列除外で数値判定を書くか書かないかの違いだろ?
510名無しさん@そうだ選挙にいこう:2011/09/23(金) 20:00:32.26
上で普通って書いたが、普通は条件付き書式だな。
511名無しさん@そうだ選挙にいこう:2011/09/23(金) 20:02:21.80
Selet Caseならできるのに、Ifだとできないことってある?
512名無しさん@そうだ選挙にいこう:2011/09/23(金) 20:04:51.37
>>511
たとえば一行でOr判定のショートサーキット
513名無しさん@そうだ選挙にいこう:2011/09/23(金) 20:07:54.20
For EachとSelet Case使ってることだけを以て絶賛してる奴なんていねーよ
よく見ろ、絶賛されているのはFor Eachの親オブジェクトの作り方だ
何を勘違いしてるんだか恥ずかしいw
514名無しさん@そうだ選挙にいこう:2011/09/23(金) 20:20:22.83
全く同じ勘違いをする奴が何人も居る分けない。
なんだかんだ言ってるのは嫉妬した約1名だけだろ。
515名無しさん@そうだ選挙にいこう:2011/09/23(金) 20:22:26.21
Range("A1").CurrentRegion.Rowsなんてごく普通ですよ。
言っとくけど自画自賛とか言ってるのは俺じゃないからね。
516名無しさん@そうだ選挙にいこう:2011/09/23(金) 20:26:31.10
普通ですよ、俺じゃないですよ
言い訳すればするほど、その逆が真実であることがありありと解りますね
517511:2011/09/23(金) 20:29:22.19
>>512
ありがd。
ググったけどよくわからん。
Ifでも、短絡評価(Short-circuit)型っていうのが出てくるので
もうちょっと具体的に書いてほすぃ〜
518名無しさん@そうだ選挙にいこう:2011/09/23(金) 20:30:40.45
また妄想が始まったね。
病院へ逝けって前から言われてない?
519名無しさん@そうだ選挙にいこう:2011/09/23(金) 20:45:49.12
過去ログ持ってるので、ちょいと検索してみた。

CurrentRegion.Rows.Countでの行数取得とかは何度かあるが
現スレと過去97スレ、延べ90'000レス以上の中で、本件以前に
CurrentRegion.Rowsに対してFor Eachループを回すコードが貼られた回数・・・


   0 回


・・・・・普通ねぇ、ふ〜ん、へぇ〜w

For Eachループどころか、.Countでの行数取得以外でCurrentRegion.Rows使っているものすら皆無。
CurrentRegion.Rowsで検索した全件がCurrentRegion.Rows.Countで、
それすら延べ90'000レス以上の中で十数件という事実。

こういう事実が出ちゃうと、どっちが妄想かハッキリしちゃうね( ̄ー ̄)
520名無しさん@そうだ選挙にいこう:2011/09/23(金) 20:56:10.28
すごいね〜、過去97スレw
ご苦労様。
君は最近その書き方覚えたのかな?
ここ以外ではごく普通だけどな。
521名無しさん@そうだ選挙にいこう:2011/09/23(金) 21:05:21.70
別に97スレを読み返したり、1スレ1スレ検索したわけではなく
専ブラの過去ログ列挙機能とログ検索機能で数秒で検索して
たった十数件の結果を十数秒程度で確認しただけのことだから
全く苦労なんてしてないけど( ̄ー ̄)

こんな簡単で初歩的な検索を苦労だと思ってるなんて、
やっぱこの子ソフトウェアの扱いに長けてないんだね。
522名無しさん@そうだ選挙にいこう:2011/09/23(金) 21:12:30.45
2ちゃんというか、ここのスレが世の中の標準と思ってる方もいらっしゃるのね
523名無しさん@そうだ選挙にいこう:2011/09/23(金) 21:41:29.58
>>521は10年以上前の他サイトの過去ログは持ってないの?
持ってればバンバンヒットするかもよ。
524名無しさん@そうだ選挙にいこう:2011/09/23(金) 21:42:14.62
そういう飛躍した表現でバカにしたつもろになってるところ悪いが、
ここが世の中の標準だなんて言ってる奴は一人も居ない。

しかし、アングラマイナーで、便所の落書きなんて言われてるのが
的を射ていたのは遠い過去の話で、都合が悪くなると過去の2chを引き合いに出し
2chを軽視、蔑視、特別視することを書く奴が少なくないが、今の2chは
世の中の標準、少なくともネット上の標準からかけ離れたものではないのは間違いない。

そこにおいて、普通と言い張る方法が一度も出てきてないのは不思議だねぇ。
たとえ2chが普通じゃないとしても、2ch以外で件の方法が頻繁に使われている
実例を一つも挙げられないのも不思議だねぇ。

普通だ普通だと顔を真っ赤にして言い張るより、本当に普通なら、
件の方法が頻繁に使われている実例なんて腐るほどあるんだろうから、
それを挙げまくれば相手にぐうの音も出させない最高の反論になるのにねぇ。
もちろん、画期的だとか言ってる奴は居ないから、1件や2件の例を出しても
反論にはならないけどね。
525名無しさん@そうだ選挙にいこう:2011/09/23(金) 21:58:59.44
>>492 = >>494 = >>501 = >>504 = >>505 = >>508 = >>513 = >>516 = >>519 = >>521 = >>524
強粘着だね
526名無しさん@そうだ選挙にいこう:2011/09/23(金) 22:04:40.17
よろしくお願いします。

【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 ピボットテーブル 並び順

営業店別に収益額を集計したピボットテーブルを作成するのですが、
「合計 / 収益額」の列を金額の大きい順に並べ替えたいです。
検索しましたところ2007ではできるようなのですが、なんとかして2003でもできないでしょうか。

現在は一旦ピボットテーブルをコピーして値貼り付けし、「降順」ボタンをクリックしています。
ただそうすると元の表に明細が追加されるたびに新たなピボットテーブルを作成し直す
面倒があるので、値貼り付けをせずピボットテーブルのまま、どうにかできたら助かります。
よろしくお願いします。
527495、506、509、515、518、520、522:2011/09/23(金) 22:08:31.47
今For EachでCurrentRegion.Rowsが使われている例を鋭意検索中
バンバンだしてやるから覚悟しろよヽ(`Д´)ノ
528名無しさん@そうだ選挙にいこう:2011/09/23(金) 22:12:10.93
492が自演してたとは‥‥
虚しいね
529名無しさん@そうだ選挙にいこう:2011/09/23(金) 22:13:01.55
はいはいご苦労様。
530名無しさん@そうだ選挙にいこう:2011/09/23(金) 22:13:10.61
>>525
をいをい、>>519以降の3つは合ってるけど、その前は違うぞ。
531名無しさん@そうだ選挙にいこう:2011/09/23(金) 22:21:28.10
論破されぎみになってきたので、自演にこじつけて誤魔化そうってハラですね
虚しすぎる…
532名無しさん@そうだ選挙にいこう:2011/09/23(金) 22:29:34.88
>>527
おい、よくみたら五つは俺の発言番号かよw
最初と最後は俺じゃねーぞ
まぁ狂ってる人に何言っても無駄だからどうでもいいや。
533名無しさん@そうだ選挙にいこう:2011/09/23(金) 22:31:12.53
5つ当てはまってたら、十二分に指摘通りだなw
534名無しさん@そうだ選挙にいこう:2011/09/23(金) 22:36:38.61
自分の思いつかなかったことを他人にやられたとき
嫉妬したり、強がって「そんなの普通」だとか「俺だって知ってる」とか
言ってるようではまだまだ青い
感心して素直に認め、自身の精進の糧とするのが大人

さてあなたは大人かな?青二才かな?
自分の主張が事実か否か、嫉妬から来るものか否かは、
自分自身が一番良く解ってるよね?
535名無しさん@そうだ選挙にいこう:2011/09/23(金) 22:39:03.56
61, 75, 92, 121, 124, 205, 298, 330, 338, 354, 367, 370, 372, 378,
381, 384, 391, 396, 402, 437, 439, 449, 482, 492, 494, 501, 504,
505, 508, 513, 516, 519, 521, 524, 530, 531, 533, 534
536名無しさん@そうだ選挙にいこう:2011/09/23(金) 22:48:59.90
535のようなデータがあり、A1〜A3セルに貼ってから
各セルに振り分けるにはどうすればいいですか?
537名無しさん@そうだ選挙にいこう:2011/09/23(金) 22:57:50.82
テキスト形式で保存してからCSVとして読み込めば?
538名無しさん@そうだ選挙にいこう:2011/09/23(金) 22:59:25.49
ありがとうございます。
539名無しさん@そうだ選挙にいこう:2011/09/23(金) 23:08:43.71
こらこら
それにしても>>535は正直に自分で書いたのだろうか?
540名無しさん@そうだ選挙にいこう:2011/09/23(金) 23:19:12.69
なんか的外れすぎて、奴の悔しがり方の程がありありと解るな。
541名無しさん@そうだ選挙にいこう:2011/09/23(金) 23:20:24.28
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい(レベル低)
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 2003 win7 コード 消える

1)最近PCがxpからwin7に変わった。
2)win7にはoffice2010がインストールされていたが、2003をインストールした。
3)xp 2003で使用していたモジュールとpersonal.xlsをwin7にコピーした

上記でwin7で2003を使っていますが、マクロのコード名が変わってしまうことがあります。
(最後の方から文字が消えていたり、消えた際に文字化けしていることがあるようです)

ユーザー設定ボタンにマクロを登録して使っているのですが、見つからないエラー
が出ることもあり、大変不便です。
解決方法ありましたらご教授ください。
542名無しさん@そうだ選挙にいこう:2011/09/23(金) 23:22:04.03
本文長すぎるため、>541の続きです。

もう一点、2010形式でうっかり開いてしまったときに、デフォルトを2003に戻すのですが、
またうっかりエクスプローラ?などでプレビュー機能が勝手に働いて2010に
デフォルトが戻されてしまいます。
どうにかならないでしょうか。

よろしくお願いします。
543名無しさん@そうだ選挙にいこう:2011/09/23(金) 23:25:27.68
>>535=539だとしたらかなり恥ずかしいなw
おそらく全部同一人物だとでも言いたくて的外れな列挙をするも
馬鹿馬鹿しすぎてネタ扱いされて、焦って>>539とかなw
544名無しさん@そうだ選挙にいこう:2011/09/23(金) 23:33:28.46
今、変なのが2匹湧いてるから、質問は後にした方がいい。
545名無しさん@そうだ選挙にいこう:2011/09/24(土) 00:06:52.01
535ってレス番だったのか。
レス番として見るとだいぶ前の方に俺のが2個混じってるな。
546名無しさん@そうだ選挙にいこう:2011/09/24(土) 00:56:38.88
雑談は↓で。

【質問不可】Excel総合相談所スレの雑談・議論スレ2
http://hibari.2ch.net/test/read.cgi/bsoft/1151651536/l50
547名無しさん@そうだ選挙にいこう:2011/09/24(土) 06:10:17.79
>>526
「合計/収益額」の部分のセルを選択しながら、並び替えボタンの降順を押せばいいだけだよ。
選択するのは金額部分ね。ボタンは
http://www.eurus.dti.ne.jp/~yoneyama/Excel/sort.html
のツールボタンから実行する、の部分で囲ってあるやつでおk
548526:2011/09/24(土) 10:55:36.59
>>547
うおおおお、できました。ありがとうございます。
できてみると、何を難しく考えていたのかって感じなんですね…
ピボットテーブルってだけで嫌だ嫌だと頭を固くしていたみたいです、助かりました!
549名無しさん@そうだ選挙にいこう:2011/09/24(土) 14:26:52.74
492はVBA厨
人間は己に不都合な内容の話が始まると必要以上に喋りはじめる
自画自賛を悟られないよう501以降怒涛のカキコがそれを物語っている
他の板ならIDを変え他人のふりをして自演に酔ってることだろう
それもひとつの楽しみ方だから否定はしない
550名無しさん@そうだ選挙にいこう:2011/09/24(土) 21:24:44.03
自分に反してるカキコは全て同一人物と思いたいのかも知れないが
実際はお馬鹿な自分が皆から叩かれ弄られ嘲笑われている現実にも気付いた方がいい。
551名無しさん@そうだ選挙にいこう:2011/09/24(土) 23:11:46.78
ときどきExcelが関数を計算してくれないんです。
そのときは大量のセルに一度にたくさんオートフィルで関数を入力してるんですが
どうもメモリが少ないのが原因とか思いはじめました。
これってあってますか?
552名無しさん@そうだ選挙にいこう:2011/09/25(日) 01:45:04.58
ネット上のcsvファイルをExcelに取り込むマクロを作りたいのですが、
ウェブからデータ取得するときの、
新しいマクロの記録を開始してデータ−外部データの取り込み−新しいWebクエリ
というふうなやり方で出来る方法があればご教示くださいませ
553名無しさん@そうだ選挙にいこう:2011/09/25(日) 12:22:22.17
>>492
凄いね!そのアイデア。
脱毛しました。
554名無しさん@そうだ選挙にいこう:2011/09/25(日) 13:53:58.32
492の凄さは、Range("A1").CurrentRegion.Rowsとすることにより
row.Interior.Color =カラーネームとしたとき.Offset(0, -2)なんて
初心者が書くような記述をなくしてるところにあるのだが
ご理解いただいているだろうか
555名無しさん@そうだ選挙にいこう:2011/09/25(日) 14:14:03.09
まだやってるのか。
誰かまともな人、541お願いします。
556名無しさん@そうだ選挙にいこう:2011/09/25(日) 22:25:00.51
Excel2007で作った文書をPDFにするには
どうすれば良いでしょうか?
557名無しさん@そうだ選挙にいこう:2011/09/25(日) 22:29:59.69
558名無しさん@そうだ選挙にいこう:2011/09/25(日) 23:01:27.47
>>554
良く解らない。
なんでそうなるの?
559名無しさん@そうだ選挙にいこう:2011/09/27(火) 13:25:54.11
      A           B
1  あいうえお     =IF(A1="うえ","◎","X")


セルA1に「うえ」という文字列があったら◎としたいのですが、
この場合どういった関数なり数式にすればいいのでしょうか?
560名無しさん@そうだ選挙にいこう:2011/09/27(火) 13:31:45.49
=IF(COUNTIF(A1,"*うえ*")>0,"◎","X")
561名無しさん@そうだ選挙にいこう:2011/09/27(火) 14:01:48.18
\( ̄ ^  ̄)/ m(_ _)m
562名無しさん@そうだ選挙にいこう:2011/09/27(火) 18:15:44.00
A B
1 9/27 +15165
2 9/27 -15151
3 9/27 -15151
4 9/28 +15515
5 9/28 -15545

日付でマイナスだけカウントしたいですよろしくお願いします
563名無しさん@そうだ選挙にいこう:2011/09/27(火) 18:58:23.86
>>562
「日付で」の意味が分かんないっす。あとカウントってのは個数でいいの
564名無しさん@そうだ選挙にいこう:2011/09/27(火) 19:05:04.89
>>563
すみません
9/27 2
9/28 1

見たいに日付毎にマイナスの数をカウントしたいです
565名無しさん@そうだ選挙にいこう:2011/09/27(火) 19:16:49.52
>>564
C列に=IF(B2<0,1,0)っていれてピボットテーブルで集計したらいいんでは
566名無しさん@そうだ選挙にいこう:2011/09/28(水) 04:11:05.51
>>554
良く解らない。
なんでそうなるの?
567名無しさん@そうだ選挙にいこう:2011/09/28(水) 06:36:02.46
今解説すると、件の負け犬君がまた出てきて自演だ自画自賛と大騒ぎするので
とりあえず次スレになるまで自分で調べて、それでも解らなかったら次スレで聞いて
568名無しさん@そうだ選挙にいこう:2011/09/28(水) 16:48:25.30
569名無しさん@そうだ選挙にいこう:2011/09/28(水) 21:11:20.17
エクセル2003にあった置換は、2007には無いの?
570名無しさん@そうだ選挙にいこう:2011/09/28(水) 21:21:58.02
>>569
CTRL+H?
571名無しさん@そうだ選挙にいこう:2011/09/28(水) 22:17:48.38
すいません、質問です。
例えば

A 20
B 10
C 15
A 25
C 40

という表があってこれを

A 45
B 10
C 55

と、すっきりさせたいのですが、
どうすればよいでしょう?

Excel2010です。
572名無しさん@そうだ選挙にいこう:2011/09/28(水) 22:35:45.31
>>571
さくっとピボットテーブル。
573名無しさん@そうだ選挙にいこう:2011/09/28(水) 22:38:26.92
集計
574名無しさん@そうだ選挙にいこう:2011/09/28(水) 22:46:13.10
>>572
>>573
ありがとうございます。
もっときちんと知識をつけてから調べるべきでした。
失礼しましたm(__)m
575名無しさん@そうだ選挙にいこう:2011/09/28(水) 22:46:19.45
>>569
双眼鏡。
576名無しさん@そうだ選挙にいこう:2011/09/28(水) 22:47:48.34
統合や集計はいまいち。
ピボットだな。
577名無しさん@そうだ選挙にいこう:2011/09/28(水) 23:07:44.93
ピボットは便利だけども、使い方を教えるのがメンドイという欠点がある。
578569:2011/09/28(水) 23:47:50.71
>>570 >>575
dクス
579名無しさん@そうだ選挙にいこう:2011/09/29(木) 02:42:48.77
セルA1: 「犬」
セルB1: 「猫」
と入力している場合に、

セルC1: 「犬と猫」 、

2つの文字列の間に任意の文字(この場合は"と")を加えた上で別のセルに出力したいのですが
これが可能な関数あるいはその他の操作はありましたら教えていただけるとうれしいです
580名無しさん@そうだ選挙にいこう:2011/09/29(木) 03:15:04.81
>>579
C1=A1&"と"&B1
581名無しさん@そうだ選挙にいこう:2011/09/29(木) 07:02:15.52
>>576
更新さえ教えりゃ無問題。
データソースの更新(範囲の変更)は名前定義で作っておけばよい。
更新も覚えられない人にはマクロにしてボタンを押させてもよい。
582名無しさん@そうだ選挙にいこう:2011/09/29(木) 21:06:25.60
>>567
あんたは朝早くから昼間から夕方から夜中まで24時間体制で書いてるね。
趣味とか無いの?
583名無しさん@そうだ選挙にいこう:2011/09/29(木) 21:29:15.69
>>580
アドバイスありがとうございます
584名無しさん@そうだ選挙にいこう:2011/09/29(木) 23:15:22.50
なんでもピボットで済ませようとするのは中小企業しか知らない輩
ゼロ省略が出来ない、ファイルサイズが肥大する、VBAを併用しなければ細かなレイアウトを指定できない
はっきり言って使い物にならない
585名無しさん@そうだ選挙にいこう:2011/09/30(金) 00:13:05.27
VBA厨さんこんばんわ
586名無しさん@そうだ選挙にいこう:2011/09/30(金) 00:16:40.30
>>584
色々な企業に精通なさっているハケンさんこんばんは
587名無しさん@そうだ選挙にいこう:2011/09/30(金) 00:46:35.10
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 excel マクロ 背景色
VBAを使用することが出来ない場合に背景色をコントロール出来ますか?
セルI15の値によってセルO15の背景色を変えたいと思っています。

=IF(LEN(I15) > 5, RANGE("o15").INTERIOR.COLORINDEX=3, "")

このようにしてもエラーとなります。
マクロだけでは無理なのでしょうか?
588名無しさん@そうだ選挙にいこう:2011/09/30(金) 00:54:57.47
>>587
条件付き書式
589587:2011/09/30(金) 08:07:26.65
>>588
こんなのがあったとは・・・
ありがとうございます。
590名無しさん@そうだ選挙にいこう:2011/09/30(金) 11:24:55.04
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 excel 文字列 マクロ
A1の値が10の場合B1にOKと表示させたい。
if(Cell(A1) = 10, Cell(B1).Value = "OK" , "")
とするとValueの部分を指摘されます。
Valueはマクロでは使用出来ないのでしょうか。
591名無しさん@そうだ選挙にいこう:2011/09/30(金) 11:25:35.73
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 excel セル 枠外 ズレ

集計表をつけていて、例えばB1に5(標準書式)と記入し、プレビューでもそうなってるのですが、
印刷してみるとA1のセル内右端に印刷されているんです。
それも全てではなく、いくつかのセルだけそういうことが起こります。
書式を数値にするとそういうことはありません。
また、フォントもプレビュー時とは違うもので印刷されます。
別のパソコンで印刷するとそのようなことは起きません。
問題はどこにあるのでしょうか?
592名無しさん@そうだ選挙にいこう:2011/09/30(金) 11:47:20.60
> 別のパソコンで印刷するとそのようなことは起きません。
この時点でパソコンの問題でしょう。
情報管理部あたりに調べてもらっては?
593名無しさん@そうだ選挙にいこう:2011/09/30(金) 11:59:47.97
プリンタが2台あり、よく使う1台からだけおかしな状況でした。
もう1台はちゃんとした状態で印刷されます。
プリンタードライバの問題ですかね?ちなみにCanonです。
594名無しさん@そうだ選挙にいこう:2011/09/30(金) 13:28:56.91
>>590
587=590なの? 釣りなの?なの?・・・・・あえて釣られてみようwww
セルの 計算式にはマクロ(=VBA)は書けない
=IF(A1=10, "OK", "")
595名無しさん@そうだ選挙にいこう:2011/09/30(金) 13:33:16.09
>>591
意味がわからん。
VBAがいいのかワークシート関数がいいのか。はっきりしてほしい。

B1セル=if(A1=10,"OK","")

Sub tes()
If Range("A1") = 10 Then Range("B1").Value = "OK"
End Sub
596名無しさん@そうだ選挙にいこう:2011/09/30(金) 13:40:43.80
>590
>4 VBAでの回答の可否】 否
>【5 検索キーワード     】 excel 文字列 マクロ
>Valueはマクロでは使用出来ないのでしょうか。

計算式の話なのか、VBAマクロの話なのか、ワケワカラン
597名無しさん@そうだ選挙にいこう:2011/09/30(金) 18:19:59.30
>>591
一度書式設定を文字列に設定した後、標準に戻したとか
もしくは書式設定の配置でインデントとか
別のパソコンも2007なら、そのパソコンのエクセルがおかしい
別のパソコンが2007以外なら、2007が原因かもしれな
598名無しさん@そうだ選挙にいこう:2011/09/30(金) 19:34:12.95
>>582
ヒント:>>550
599名無しさん@そうだ選挙にいこう:2011/09/30(金) 19:57:17.16
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 かなり沢山検索しました

最近以下のサイトで、エクセル2010を使い勉強を始めたのですが
http://www.panrolling.com/etc/users/taniguchi/1/index.html

AVERAGE(中でオフセット関数も使っているようです)を入力した後、そのセルをダブルクリックすると
計算させたい範囲が青い枠で囲まれるので
確認しながらやるとの事なのですが、ダブルクリックしても範囲が表示されません
エクセル2010では表示されない仕様になってしまったのでしょうか?
関数の式などはそのままコピーしたので間違っていませんし(手入力もしてみました)
計算結果も関数で記した範囲でしっかり計算しているようです
範囲を確認しながら入力したいのですが、計算させたい範囲を青い枠で囲む事は出来るのでしょうか?
すみませんが少し複雑な計算式なので、リンク先を確認頂けると助かります
宜しくお願い致します
600名無しさん@そうだ選挙にいこう:2011/09/30(金) 20:22:22.04
492の自演が裏づけされたようだね
趣味はカメラですか?
601名無しさん@そうだ選挙にいこう:2011/09/30(金) 21:00:59.49
>>599
ダブルクリックする位置勘違いしてるんじゃないの
AVERAGE関数が入ったセルを選択してF2押してみたら?
602599:2011/09/30(金) 22:20:30.35
やってみましたがやはり同じでした
こんな感じで範囲の一部だけが青枠で表示されてしまいます

ttp://bbs4.fc2.com//bbs/img/_70300/70212/full/70212_1317388784.gif
603名無しさん@そうだ選挙にいこう:2011/09/30(金) 22:37:26.32
>>602
Excelはそういう仕様なんでしょ?
たとえばA1:A10の合計で
=SUM(A1:A10)ならダブルクリックすりゃA1:A10が青枠になるが
=SUM(A1:OFFSET(A1,10,))の場合、引数のA1しか青枠にならない。
=SUM(INDEX(A:A,1):INDEX(A:A,10))だとA列全体が青枠になる。
604599:2011/09/30(金) 22:42:25.59
>>603
あぁそうなんですか…
では勉強に使っているサイトの解説が間違っていると言う事ですね
有り難う御座いました、古いエクセルを購入しようかと思ってました(汗)
助かりました
605名無しさん@そうだ選挙にいこう:2011/09/30(金) 22:43:40.15
要するに青枠になるのは一番最初に指定した範囲ってことね。
=SUM(OFFSET(B1,,-1):A10)なら同じくA1:A10の合計だが最初に出てくるB1が青くなる。
606名無しさん@そうだ選挙にいこう:2011/09/30(金) 22:59:48.21
【1】Windows7
【2】Excel2003
【4】VBA可
【5】エクセル 複数セル 複製
AAA
BBB
CCC

縦にこのように並んでいる文字列(この場合3セル)を

AAA
AAA
BBB
BBB
CCC
CCC

というように複製したいのですが、関数もしくはVBAで
可能でしょうか?
607名無しさん@そうだ選挙にいこう:2011/09/30(金) 23:11:13.38
>606
作業列に縦方向に1、2、3・・・と入れて、
複製したいセル範囲と作業列範囲まで含めて下にコピー
最後に作業列でソート
608名無しさん@そうだ選挙にいこう:2011/09/30(金) 23:55:26.43
>>607

関数使うまでも無かった無かったのですね。
私、頭柔らかくしないと・・・
609名無しさん@そうだ選挙にいこう:2011/10/01(土) 04:19:27.00
>>600
君、恥ずかしくないの?

書き込みやめれば、君の恥ずかしい過去を早く忘れて貰えるのに
いつまでも自分の恥ずかしい負け犬の遠吠えした件をズルズル引きずって・・・
610名無しさん@そうだ選挙にいこう:2011/10/01(土) 05:54:41.74
俺がちょっと間違えただけでなぜか負け犬の遠吠えと言われたことあるが、俺が自演とか言ってるやつと勘違いされてるのか?
それこそ自分に反する書き込みが一人だと思わない方がいい。
611名無しさん@そうだ選挙にいこう:2011/10/01(土) 06:50:46.47
ちょっと間違えただけで負け犬の遠吠えと言われた?
何時、何処での話だか知らないが、「負け犬の遠吠え」と言われたのは
「間違えた」からではなく、おそらく「間違えた後に言い訳したから」だろ。
「間違えた"だけ"」なら、バカだアフォだシッタカぶって滑稽だとは言われても
負け犬の遠吠えなんて言葉はまず出てこないよw

妄想が激しいのか、自分に都合の悪いことはすぐ忘れるか誤魔化す癖が
あるのかは知らないが、もっと現実を正しく見れるようになった方がいいぞ。

> 俺が自演とか言ってるやつと勘違いされてる
ではなく
> 俺が自演とか言ってるやつと見抜かれている
である事実とかも正しくね。
612名無しさん@そうだ選挙にいこう:2011/10/01(土) 06:58:25.41
やっぱこの人基地外だよ。
613名無しさん@そうだ選挙にいこう:2011/10/01(土) 09:45:35.37
ハンドルが"VBA厨"だったからなw
自分で"厨"を名乗るなよw
614名無しさん@そうだ選挙にいこう:2011/10/01(土) 10:33:37.75
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 VBA、24時間

C列は時刻ですが文字列になっています。
小数点をまるめ、24時間表記を午前/午後の12時間表記に
変えるにはどうすればいいですか?

例 19:34:12.95 --> 午後07:34:13

 A     B       C      D
598  9月30日  19:34:12.95  kngw
609  10月1日  04:19:27.00  kngw
610  10月1日  05:54:41.74  kngw
611  10月1日  06:50:46.47  kngw
612  10月1日  06:58:25.41  kngw
615名無しさん@そうだ選挙にいこう:2011/10/01(土) 11:02:50.16
よろしくお願いします。

【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 並び替え、ソート

A列に企業名、B列以降に金額が入っている表があります。
A列は全て文字で埋まっていますが、金額列は空欄も多いです。
このとき、金額の大小に関わらず、「金額が入っている行をまとめて上に持ってくる」という
並び替えをしたいのですが、簡単に行う方法が思いつかず面倒で困っています。

今やっている方法は、B列で「空白以外のセル」を抽出し、空いている列に「1」を立て、
一旦ソートを解除して、「1」を立てた列を昇順で並び替える、という方法です。
金額列がB列しかない場合はこれで充分なのですが、C列D列E列…と金額列が十数列ある場合に
「まずB列に数字が入っている行を上に集め、B列は空欄だけどC列に数字があれば上に集め、以下略」
という並び替えが大変です…。

何か良い方法がありましたらアドバイスお願いします。
616名無しさん@そうだ選挙にいこう:2011/10/01(土) 11:18:50.48
>>612-613
端から見たら、奴もオマエもどっちも基地外だ
お互い、いつまで意地の張り合いしてるつもりだ?
もうこのスレ的な結論(回答)は終わってるんだから余所でやれ
617名無しさん@そうだ選挙にいこう:2011/10/01(土) 11:29:57.78
>>614
一回CSV形式で保存して再読み込み。
んで、セルの書式設定で12時間標記にすれば良い
618名無しさん@そうだ選挙にいこう:2011/10/01(土) 11:31:24.92
>>615
オートフィルタで空白以外を指定すれば良いんじゃないかな。
619名無しさん@そうだ選挙にいこう:2011/10/01(土) 11:42:19.86
並び替えたいっていう相談内容に対してオートフィルタとかwww
620名無しさん@そうだ選挙にいこう:2011/10/01(土) 11:48:35.70
ちょっと言葉が足りなかったな、確かに。
空白でないものを抽出して新しいワークシートにコピペ
空白のものを抽出して、上で作ったシートにコピペ
並び替えは好きなようにすれば良い。
621名無しさん@そうだ選挙にいこう:2011/10/01(土) 11:55:10.51
>>615
空いている列に
=IF(COUNTA(B1:G1)>0,1,"")
とかして下にオートフィル→この列をキーにソート
622名無しさん@そうだ選挙にいこう:2011/10/01(土) 15:19:47.38
【1 OSの種類         .】 Windows XP/vista/7/8
【2 Excelのバージョン   】 (優先度) Excel 2010 → 2003 → 2000
【5 検索キーワード     】 ショートカット

個人的に、excel用のテンキーを自作する予定です。(テンキーにキーを数〜十数個足したイメージ)
キーボード〜テンキー〜マウス間の手の往復が少なくなればいいな、という理想なのですが、

(参考テンキー)
EPSON ビジネステンキーボード
http://journal.mycom.co.jp/news/2003/03/25/16al.jpg
Realforce23U
http://pc.watch.impress.co.jp/img/pcw/docs/305/888/html/topre.jpg.html

いざ自分で追加キーを考えてみるとExcelの扱いにそこまで長けてもないため
・Tab(右セル移動用) ・shift+Tab(左セルに移動用) ・BackSpace(普通のテンキーだと遠いので)
・F2(選択セルを修正) ・'(数値入力ついでに)
くらいしか思いつきません

そこで、「このショートカット自分はよく使う」「このショートカットが1キーでできるなら設置しときたい(1キー押しただけでAlt+shift+なにか みたいなのもできます」
「自作キーボードを作る作らない以前にexcelでこのショートカットキーはオススメ」
のようなショートカットキーなどありましたらお教えいただけませんでしょうか
よろしくおねがいします
623名無しさん@そうだ選挙にいこう:2011/10/01(土) 16:21:16.03
>>614
C列のセルの表示形式を 「[$-411]AM/PM hh:mm:ss」とします。
C列を選んで「データ」の「区切り位置」で「完了」とします。

それだけ
624名無しさん@そうだ選挙にいこう:2011/10/01(土) 20:24:49.82
VBAの質問です

複数の結合セルを含むRangeをFor Eachで回して、結合セルを一つ一つ処理したいんですが
For Each r In Range("hoge")だとセルの結合に拘らずすべてのセルに対しての処理になってしまいます。
結合セルを一つのセルとして(一度だけ) For Eachで処理するにはどうすればいいんでしょうか?
625名無しさん@そうだ選挙にいこう:2011/10/01(土) 20:30:14.01
>>623
ぱちぱち
626名無しさん@そうだ選挙にいこう:2011/10/01(土) 20:51:57.92
>>624
他にいい方法ありそうですが、

If r.Address(0, 0) = r.MergeArea.Item(1).Address(0, 0) Then

この時だけ処理をすればいいかと。
627名無しさん@そうだ選挙にいこう:2011/10/01(土) 20:55:20.53
あ、ごめん、(0,0)は取って。いや、あってもいいけど。
取るなら両方取って。取らないなら両方取らないで。
628624:2011/10/01(土) 21:00:30.30
>>626
試してみたところ、問題なく動作しているようです。
ありがとうございました。
629名無しさん@そうだ選挙にいこう:2011/10/02(日) 06:22:08.75
>>622
とりあえずコピーとペーストはいれとけば?w
余裕あればCtrlとshiftと=でオートSUMも
630名無しさん@そうだ選挙にいこう:2011/10/02(日) 08:02:57.76
>>622
テンキー自作って凄いな。メーカーの人?
一応自分が好んで使うものは以下。

・Ctrl + 矢印 (現在のセルからデータの連続して入っている端までカーソル移動)
・Shift + Ctrl + 矢印 (現在の選択部分からデータの連続して入っている端まで選択)
・Ctrl + 1 (セルの書式設定画面を出す)
・Shift + Ctrl + : (つまりCtrl + *) (アクティブセルを含む周囲のデータ連続範囲を箱形に選択)
・F4 (セル編集モードでセル名称位置にカーソルを置いて押すと、セル名称を4種類の絶対/相対表記に順に切り替える)
・Ctrl + Z (直前の操作を取り消す)
・Ctrl + C, Ctrl + V (コピーとペースト)
631名無しさん@そうだ選挙にいこう:2011/10/02(日) 08:27:47.06
自分は「値貼り付け」をショートカットで使えるようにしてる。
今はAlt+文字キーという2個を押すことで値貼り付けできる状態だけど、
もしこれがテンキーのボタン一つ押下で叶うなら大変ありがたいや。
あとピボットを頻繁に使うから、ピボット系のショートカットはごっそり使ってる。
それもテンキーでできるなら…なんて考えてくと通常のキーボードと同じ横幅のテンキーになりそうだw

とはいえ、エクセル普段使いしない人がエクセル用のテンキーって難しくない?
利用者のニーズに合った物を作りようがなさげ…ああ、個人用ってことは利用者=自分なのか。
632名無しさん@そうだ選挙にいこう:2011/10/02(日) 11:15:40.48
>Alt+文字キーという2個を押すことで値貼り付けできる

どうやるの?
633631:2011/10/02(日) 13:57:53.37
>>632
「ユーザー設定」ダイアログボックスを表示させる
 ↓
「値の貼り付け」ボタンを右クリック
 ↓
「名前(N):」という項目に「値の貼り付け(&★)」と入力
(★は自分が押し易いキーのアルファベットで良い)
 ↓
「テキストのみ表示(T)」もしくは「イメージとテキストを表示(A)」をクリック
 ↓
ダイアログボックスを閉じれば完了


あ、でも2007からはリボンとかいうのがツールバーに代わって使われてるんだっけ?
上に書いたやり方は2003なので、2007以降の環境の人ではどうやるのか分からん、すまんです
634名無しさん@そうだ選挙にいこう:2011/10/02(日) 14:20:09.08
>>632
Alt+E→S→Vみたいなの知りたいんじゃない?文字キー2個は俺も知りたいです。
635名無しさん@そうだ選挙にいこう:2011/10/02(日) 14:24:41.50
>>633
自分も値の貼り付けをよく使うので、とても助かりました。
ホーム→エクセルのオプション→ユーザー設定
とすると、クイックアクセスツールバー(ホームボタンの右)に登録できますね。
で、その後、ALTを押すと、数字が見えます。その数字とALTでいけますね
636名無しさん@そうだ選挙にいこう:2011/10/02(日) 14:32:25.66
俺はプログラマブルキーボードにF13〜F24キーを割り当ててる。
で、F13〜F24の単発及び修飾キーとの組合せに対して
AutoHotkeyってソフトで、対象ソフト毎の定義を書いてる。

つまり

キーボード        AutoHotkey                     対象ソフト           

  F13  →  Excelがアクティブなら「Ctrl + PageUp」    Excelにおいて「前のシートに移動」
  F13  →  VBEがアクティブなら 「Ctrl + Tab」       VBEにおいて「前のモジュールに移動」
  F14  →  Excelがアクティブなら「Ctrl + PageDown」   Excelにおいて「後のシートに移動」
  F14  →  VBEがアクティブなら 「Ctrl + Shift + Tab」  VBEにおいて「後のモジュールに移動」

ってな具合。
キーボード側でExcel向けのショートカットキーを発生させちゃうと、
Excelでしか役に立たないキーボードになっちゃうので、
キーボードで発生させるキーはあくまで汎用キーで、後はAutoHotkeyで
アクティブなソフト毎になにをさせるかを定義しておく。
637名無しさん@そうだ選挙にいこう:2011/10/02(日) 15:00:43.97
俺はF1を無効にしたい
F2を押す時にうっかり指先がF1に触れてヘルプが出てくるのがうぜええええ…orz
638 ◆Excel//q4U :2011/10/02(日) 16:02:21.74
EXCEL2007なら
Ctrl+C でコピー
Ctrl+Alt+V⇒Enter で値を貼り付け

639 ◆Excel//q4U :2011/10/02(日) 16:03:03.82
間違えた
Ctrl+Alt+V⇒V⇒Enter で値を貼り付け
640名無しさん@そうだ選挙にいこう:2011/10/02(日) 16:32:44.78
>>637
そういうのもAutoHotkeyで出きるぞ
ExcelでのみF1無効ってな
641名無しさん@そうだ選挙にいこう:2011/10/02(日) 18:40:50.30
漏れのPCにはF13〜F24のキーなんて無いや・・・orz
642名無しさん@そうだ選挙にいこう:2011/10/03(月) 05:07:56.41
>>641
無いからこそF13〜F24を使うんだよ。
メインのキーボードにあるキーを使ったらバッティングするからね。
643名無しさん@そうだ選挙にいこう:2011/10/03(月) 06:34:45.10
>>642
話、噛み合ってないんじゃね?
644名無しさん@そうだ選挙にいこう:2011/10/03(月) 08:02:03.67
シフト押しながらファンクションキーでF13-F24じゃないのか
645名無しさん@そうだ選挙にいこう:2011/10/03(月) 09:37:28.80
A列にデータを入力して、B列に順番に
=SUM(A1:A1)、=SUM(A1:A2)、=SUM(A1:A3)・・・という風に入力したいんですが、
4つ5つほど入力してからドラッグしても、オートで意図したように入力してくれません
何か良い方法ありませんか?
データが数百個並んでるため、手入力は面倒くさいです・・・
646名無しさん@そうだ選挙にいこう:2011/10/03(月) 10:09:45.18
>>645
=SUM(A$1:A1)
または
B1=A1とした場合, B2 =B1+A2で以降フィル
647名無しさん@そうだ選挙にいこう:2011/10/03(月) 12:53:02.58
>>646
ありがとうございます!
とても助かりました
648 忍法帖【Lv=9,xxxP】 :2011/10/03(月) 19:33:01.97
a(黒の字) 100
b(赤の字) 200
c(黒の字) 300
d(赤の字) 50
e(黒の字) 100
このような表のaの値とcの値とeの値を
合計したいときはどうしらいいのでしょうか?
649名無しさん@そうだ選挙にいこう:2011/10/03(月) 19:35:01.68
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 エクセル Count 複数 関数

今アンケート結果の集計を行っています。
数字で複数回答が可能なアンケートなんですが、例を書くとこのようになっていて、
1
3
2
1
1,4 (←複数回答の場合、全部コンマで区切られています)
これを数字別に
1が3個
2が1個
3が1個
4が1個
という風に集計をしたいです。
とりあえず=COUNTIF(A○○:A○○,"1")で、数字が一つの場合の集計の仕方はわかったのですが、
同じセルに複数回答がある場合、それを別々にカウントする方法がわかりません。
どうすればいいでしょうか?
650名無しさん@そうだ選挙にいこう:2011/10/03(月) 19:59:12.87
2ケタの回答番号がないとしたら=COUNTIF(範囲,"*1*")で出来るんだけど、すべてのセルが文字列じゃなかったら出来ないんだよなあ

後は汚いけど
=SUMPRODUCT(LEN(A1:A3))-SUMPRODUCT(LEN(SUBSTITUTE(A1:A3,"1","")))
とか・・・
651名無しさん@そうだ選挙にいこう:2011/10/03(月) 20:16:25.89
>>650
ありがとうございます。
後出しで申し訳ないですが、2ケタの数字かつ複数回答もあります・・・。
他の人から回ってきたデータで、本当なら表を作り直すのが一番いいのでしょうが、
何分そうすると時間がかかって仕方ないので・・
後、=SUMPRODUCT(LEN(A1:A3))-SUMPRODUCT(LEN(SUBSTITUTE(A1:A3,"1","")))の関数は
A1-A3で、「1と何か別の文字を含むセル」たとえば「1,3,5,6」から1の個数を数える、
という理解でよろしいでしょうか?
652名無しさん@そうだ選挙にいこう:2011/10/03(月) 20:43:12.42
>>651
sumproductも2ケタには対応していないよ。
もし出来るなら、
表の改変をオススメ。

データタブ→「区切り位置」→「カンマやタブ・・・」→区切り文字を「カンマ」で完了
これでセルごとにデータが分かれる。
こうなればcountif使えるよ。

今の現状でも数えられなくはないけれど、無駄に手間がかかるから

653649:2011/10/03(月) 21:37:01.84
>>652
セルを分けて集計していこうと思います。
どうもありがとうございました。
654名無しさん@そうだ選挙にいこう:2011/10/04(火) 00:30:40.42
>648
集計したい条件は何ですか?
セルの字の色で集計したいのか、1行おきに集計したいのか、どちらですか?
それと、このスレの >1-5 は読みましたか?テンプレに沿って再度書き込んでください。
655名無しさん@そうだ選挙にいこう:2011/10/04(火) 22:27:55.19
セルの数値に応じた表示形式について。
A列のセルに、計算結果を縦に並べていく。それらの数字をaとして、
(1)a>0の場合
aを切り捨てた値を表示したい。
a=0.9なら「0」と表示

(2)a=0の場合
「-」と表示したい。
ここからが問題。

(3)-1<a<0の場合
「▲0」と表示したい。

(4)-1≦aの場合
aを切り上げた値を表示したい。
a=-1.8なら「▲1」と表示

(1)と(4)はTRUNC関数でどうにかなるが、(2)と(3)が厄介だ。
単に表示が出来れば良いのではなく、例に出したaはもう一回計算式へ飛ばすことが
出来ないといけない。だから(2)の結果が単なるハイフンとみなされ、計算に再利用
出来ないようではいけない。こういうのって、何とかなる?
めちゃくちゃネストしまくった複雑な計算式は、できれば遠慮したいです。
俺は使えても、周囲に使わせられない。
656名無しさん@そうだ選挙にいこう:2011/10/04(火) 23:31:42.62
>655
セルの表示形式だと 正の数;負の数;ゼロ;文字列 の4通り設定できるけど、
負の数の中でさらに場合分けは無理なので、どうしても作業列に計算式を使わなければならないでしょう。

ところで、「例に出したaはもう一回計算式へ飛ばすことが出来ないといけない」というaですが、
「元々のaの値」を再利用したいのか、「aを加工した結果」を再利用したいのか、がわかりません。
「加工した結果」を再利用したいというのであれば、(2)の − は 0 と見なすのですか?
657名無しさん@そうだ選挙にいこう:2011/10/04(火) 23:52:41.27
>>648
もしかして、(赤の字)ってマイナスの場合に赤で表示されてる?
658名無しさん@そうだ選挙にいこう:2011/10/05(水) 06:52:22.19
>>655
(1)や(3)を次の計算で0として扱うとなると「0と0と0を区別する」ってことになり、
負の数の中でさらに場合分けどころか、同一の値を区別するってことで、理論上あり得ない話になる

それを無理矢理実現するには、この表示のための計算ではなく次の計算での対応も必要

例えばN関数を使う方法では
(1) → 数値で「0」     → N(0) = 0
(2) → 文字列で「"-"」  → N("-") = 0
(3) → 文字列で「"▲0"」 → N("▲0") = 0
(4) → 数値で「▲1」    → N(▲1) = -1
次の計算式が、+5するものなら、本来「=A1+5」ってするところを「=N(A1)+5」にすれば良い
で、(1)と(4)はTRUNC関数と表示形式で、(2)と(3)は1回だけネストしたIF式で出きる
ついでに、文字の横配置設定(右寄せとか)してないセルでこれやると、(1)と(4)は右寄せ、(2)と(3)は左寄せになるので
「0;"▲"0;0;* @」ってすると、(2)と(3)も数値と同じ右寄せになる
但しこれやると、逆に左寄せや中寄せ設定しても、(2)と(3)は右寄せから動かなくなるので、その辺は臨機応変に

因みに、「正;負;0;文字」で分けた上で、負の数の中でさらに条件分けは出来ないけど
負の数の中だけでの条件分けは出来るぞ
まぁ上記の方法では必要ないけどな
659648:2011/10/05(水) 14:31:22.99
後だし申し訳ありません。もう一度お願いいたします。
【1 OSの種類】WindowsVista
【2 Excelのバージョン】Excel2007
【3 VBAが使えるか】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】複数条件 合計 sumif
>>648とは例が変わりますが、以下のような表があった場合、
名前 在任期間(月)
福田   12
麻生   12
鳩山    9
かん   15
野田    1
自民党、民主党、各党の総理大臣の在任期間の合計をそれぞれ表すには
どのような関数を使ったらいいかをお願いいたします。
(この例のように、大臣名と党名が自明であるとして、また、項目が増えることもある場合)
660名無しさん@そうだ選挙にいこう:2011/10/05(水) 15:01:20.33
>659
政党の列を作れ 以上
661名無しさん@そうだ選挙にいこう:2011/10/05(水) 15:17:37.78
XPで2003です。
表を作ってそれを1ページにコピペして4つ作りたいのですが、
横の列幅はコピペで貼り付けの条件で出来るんですが
セルの高さの方はどうやってコピーするやつと同じにできるんでしょうか?
662名無しさん@そうだ選挙にいこう:2011/10/05(水) 15:40:18.39
コピーしてコピーしたセルの挿入
663648:2011/10/05(水) 17:09:08.26
>>660
すいません、表自体を値順などでソートしたりするのですが、
当てはまる複数の項目(今回の例であれば大臣の名前)を合計するやり方がよくわかりません。
お願いいたします
664名無しさん@そうだ選挙にいこう:2011/10/05(水) 17:24:52.21
>>662サンクス
セルの挿入とは初めてです
665名無しさん@そうだ選挙にいこう:2011/10/05(水) 18:19:41.80
>662
政党の列を作ってSUMIF()で集計
666648:2011/10/05(水) 18:52:37.66
>>665
ありがとうございました
無事解決しました。
667名無しさん@そうだ選挙にいこう:2011/10/05(水) 20:27:34.27
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 不可
【5 検索キーワード     】 時刻 勤務表 まるめる


1分〜7分→0分
8分〜15分→15分
16分〜22分→15分
23分〜30分→30分
31分〜37分→30分
38分〜45分→45分
46分〜52分→45分
53分〜0分→0分


勤務表を作成しています。
1ヶ月の総時間合計時に上記のような処理をかけたいのですが可能でしょうか。
宜しくお願いします。
668名無しさん@そうだ選挙にいこう:2011/10/05(水) 20:37:10.80
>>667
どういう風に入力されているのか分からないのですが、
=MROUND(A1,"0:15")
エラーになるときはアドインを組み込んで。
669名無しさん@そうだ選挙にいこう:2011/10/05(水) 21:23:38.65
>>668
うまくいきました。迅速な回答に感謝です。
本当に助かりました。ありがとうございました!
670名無しさん@そうだ選挙にいこう:2011/10/05(水) 21:25:10.26
>667
>53分〜0分→0分
の部分は、「時間」のところに繰り上がりの処理は入っていますか?
(心配になったので念のため)
671名無しさん@そうだ選挙にいこう:2011/10/05(水) 21:34:31.45
>>670
自分でやってみれば繰り上がっているかどうかわかるじゃん。繰り上がるよ
672名無しさん@そうだ選挙にいこう:2011/10/05(水) 21:56:02.97
勤務表の時刻って、切捨てじゃナカタのか・・
673名無しさん@そうだ選挙にいこう:2011/10/05(水) 23:18:46.60
>>670
軽くチェックはしてみましたが大丈夫そうでしたよ。
わざわざありがとうございました。
674名無しさん@そうだ選挙にいこう:2011/10/06(木) 00:43:36.75
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Excel 条件 まとめる
Sheet1に以下のようなデータが数千件はいっているとします。
A | a | 1
B | a | 2
C | b | 1
D | b | 1
|はセルの区切れ目として考えてください。
1列目には数千件のデータ(たまに重複あり)が入っています。
2列目には1列目のグループ名(カテゴリー名)が入っています。
3列目には1か2のどちらかが入っています。
675名無しさん@そうだ選挙にいこう:2011/10/06(木) 00:52:54.61
(長いようなのでわけさせていただきました)
このとき、Sheet2(別シートなら何でもいいのですが)に、
a | 1 or 2
b | 1
というように、2列目のカテゴリーの一覧と、3列目に1だけなのか、2だけなのか、1と2の両方が入っているのかを表示させたいのです。
Excelの関数では思いつかず、検索してもわからないので、お力をお借りできればと思いご相談しました。
よろしくお願いします。
676名無しさん@そうだ選挙にいこう:2011/10/06(木) 01:44:48.37
>>672
法的には切り捨てることは許されていない。正確に言うと、切り捨てるってことは
「会社が定める時間管理単位未満の労働には賃金を支払わない」という意味になるが
それは違法行為になり認められていない。

まあ秒単位くらいの切り捨ては暗黙の了解で咎められないが、15分単位とかで管理計算
したければ切り上げる。切り上げて余分に金払うのが嫌なら1分単位で管理計算する。
それが使用者の義務。

未だに切り捨てでやってるところも多いが、労働基準監督署に通報してやれば、
監査、指導に来てくれるよ。>>667は切り捨てではなく四捨五入みたいなものだから
切り捨てが世の標準だと勘違いしている奴から見たら少しは良心的に見えるかもしれないが
実際にはとんでもない。>>667もまだ違法で、正しくは

1分〜15分→15分
16分〜30分→30分
31分〜45分→45分
46分〜翌時0分→60分

でなくてはならない。
677名無しさん@そうだ選挙にいこう:2011/10/06(木) 03:56:14.86
俺のバイト先も15分ごとの切り捨てだわ
出勤と退勤時の1日2回切り捨てされるから毎日30分ずつ、
しかも勤続12年だから、ざっと計算して200万近く損してる計算か


ちょっと腹が立ってきた
678名無しさん@そうだ選挙にいこう:2011/10/06(木) 06:44:32.77
>>675
>、3列目に1だけなのか、2だけなのか、1と2の両方が入っているのかを表示させたいのです。
方法その1:1、または2だけの平均と1と2が混在する場合の平均では小数点以下に
違いが出てくるよね。
その違いで振り分けしてみてはどうでしょう。
679674:2011/10/06(木) 08:00:29.94
ありがとうございます。
1, 2というのは実際には文字列です。
また、数千件のデータのなかに、カテゴリーも1000件以上あるので、
別シートにリスト化、というところも重視したいのです。
680名無しさん@そうだ選挙にいこう:2011/10/06(木) 08:58:04.80
>>679
ピボットテーブルで集計してデータの個数で1だけ、2だけ、1と2の両方の判断するとか
681674:2011/10/06(木) 10:25:15.26
ありがとうございます。実際には一番左のデータは3種類あるので、四則演算や平均の応用は難しいと思います。
682名無しさん@そうだ選挙にいこう:2011/10/06(木) 18:23:57.97
>>676
それは知らなかった。
標準勤務時間が8時〜17時で、毎日7:45にIDカードを翳したら
20日で5時間分の早出手当てが出るのか。
683名無しさん@そうだ選挙にいこう:2011/10/06(木) 18:28:00.01
○毎日7:45
×毎日7:46
684名無しさん@そうだ選挙にいこう:2011/10/06(木) 19:02:00.29
なにもないとすぐ帰るけどそれでもPM6:01やPM6:02にはなる。
これはPM6:15と15分の残業をして帰ったことにしてよかったのか?
685名無しさん@そうだ選挙にいこう:2011/10/06(木) 19:15:28.25
法律的には、1分単位で記録し、月単位で合計して30分未満切り捨て、30分以上切り上げで
時間外手当を計算するはず
686名無しさん@そうだ選挙にいこう:2011/10/07(金) 16:13:47.38
【1 OSの種類         .】 WindowsXP SP3
【2 Excelのバージョン   】 Excel2007

http://www.dotup.org/uploda/www.dotup.org2111192.jpg

こういう状況になってブックの最大化が出来ない^^;
マウスを当てて下に降ろそうとしても数式バーの部分が
広がるばかりorz

どうしたらブックのあの最大化とか最小化とかのボタンの部分を出せますかね
687名無しさん@そうだ選挙にいこう:2011/10/07(金) 20:50:24.93
>>686
表示→整列→お好きなのをどうぞ
688名無しさん@そうだ選挙にいこう:2011/10/07(金) 21:49:16.96
>>687

なるほろ!出来ました!
(´ε` ) w
689複乳:2011/10/08(土) 02:18:41.24
さいきんオレを見かけないけど、どうしたの?
690名無しさん@そうだ選挙にいこう:2011/10/08(土) 03:08:45.87
>>689
自分探しの旅に出ているんだろう。
691名無しさん@そうだ選挙にいこう:2011/10/08(土) 03:52:41.42
XPか2003の頃に作ったVBA、アクセステーブルから読み込んだデータを
いじくりまわして印刷用にレイアウトしたページに流し込んで印刷。
そのデータはすぐ消去して次のデータを流してまた印刷、、、
これを延々と500回以上繰り返す作業なんですが2003の頃はスタートしてから
一気に作業が終わるまで頑張ってたけど2010にしたら途中で勝手に停まる。
いったん自動実行を切って中断したところからやり直し。これの繰り返し。

2003の頃は全く問題なく動いてたのが2010にしたら途中でさぼり癖が。
ループで印刷コマンドは activesheet.pritoutだけ。
なんでVERあげただけで挙動が変わるのかと。
692名無しさん@そうだ選挙にいこう:2011/10/08(土) 04:02:30.65
>>691
見た目だけでなく内部構造が2007から完全に変わった
693名無しさん@そうだ選挙にいこう:2011/10/08(土) 17:04:59.44
【1 OSの種類         .】 Windows XP 32bit SP3
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 「111 Excel 年齢」「文字 関数 結果 Excel」「Excel 文字 非表示」

誕生日から本日何歳になっているか表示させる関数を作ったのですが
誕生日を入れていないセルを指定していると、計算結果で「111」と表示されてしまいます。
この「111」が表示されないようにする、見えないようにする方法を探しています。
ただ、ファイルを扱う人がExcelやPCを使い始めたばかりの方なので
誕生日を入力するだけの状態にしたいです。
 不可操作
 ・誕生日を入力しないセルに対応した年齢セルの内容を削除する
 ・印刷時にDELキー等で111と表示されるセル内容を削除する
 ・111の文字を背景と同じ色にする(オプション等で最初から設定できる場合は可です)

●誕生日から年齢を表示する関数(A1部分のセルが空白だと「111」が表示される)
=DATEDIF(A1,TODAY(),"Y")

●望んだ結果が帰ってこなかった失敗関数(「111」になる部分を空白にしたかった)
=IF(DATEDIF(A1,INDIRECT("B1"),"Y"),DATEDIF(A1,INDIRECT("B1"),"Y"),"")

よろしくお願いします
694名無しさん@そうだ選挙にいこう:2011/10/08(土) 17:30:00.28
誕生日のセルが空白なら空白を返す式にすればいいだけやん
695名無しさん@そうだ選挙にいこう:2011/10/08(土) 17:38:10.22
>>694
お返事ありがとうございます
=IF("","",DATEDIF(A1,TODAY(),"Y"))
上記のように空白を空白で返すように作ってみたのですが
#VALUE!と表示されるので失敗しているのだと思うのですがどこが間違っているか分かりません
IF関数ではダメなのでしょうか?
696名無しさん@そうだ選挙にいこう:2011/10/08(土) 17:46:23.07
>>695
それ間違ってるよね。
=if(a1="","",・・・・)
697名無しさん@そうだ選挙にいこう:2011/10/08(土) 17:56:10.56
>>696
できました!IF関数は理論値の部分もセル指定しないといけないんですね!
大変助かりました。ありがとうございました!

できた関数
●誕生日から年齢を表示する(誕生日未入力で「111」になる部分は空白を表示)
=IF(A1="","",DATEDIF(A1,TODAY(),"Y"))
698名無しさん@そうだ選挙にいこう:2011/10/08(土) 19:09:45.45
ちなみに 日本の法律では誕生日の前日に1歳年をとる。
たとえば、平成23年4月1日生まれの子は平成29年3月31日に6歳になるので、
小学校入学は平成28年。早生まれってやつ。
平成23年4月2日生まれの子は平成29年4月1日に6歳になるので、
小学校入学は平成29年。
699名無しさん@そうだ選挙にいこう:2011/10/08(土) 19:36:54.73
VBA厨はシーテックか
700475:2011/10/08(土) 23:08:16.13
>>475です。
質問のさいには大変お世話になり、
>>492さんの書いてくれたマクロを使わせていただいています。

さて、475で質問したものに追加したいことが出てきました。
20歳と30歳の人にはあいているセルに「B」と表示させ、さらに、データを別シートに貼り付ける。
それ以外の年齢の人には「A」と表示させ、Bの人たちとは別のシートにデータを貼り付ける。
ということをしたいので、>>492のマクロに加えたものを教えていただけないでしょうか??
よろしくお願いします。
701693:2011/10/08(土) 23:54:24.84
>>698
早生まれに4月1日生まれの人も含まれるのは知りませんでした
不思議な法律ですね。どういう経緯でこれが決まったのか少し興味がわきました
豆知識ありがとうございます
702名無しさん@そうだ選挙にいこう:2011/10/09(日) 00:12:02.13
え、豆知識…?
日本人の常識だろうが、大丈夫かよ
703名無しさん@そうだ選挙にいこう:2011/10/09(日) 00:52:33.75
いや、よく聞く言葉ではあるけど
別に学校で習わないし
親も敢えて教えてくれることでもないし
知らなくても日常生活に支障ないし
常識とまでは言えないと思うよ。
704名無しさん@そうだ選挙にいこう:2011/10/09(日) 06:49:20.23
>>700
自分でコード書くから、必要なメソッドやAPIだけ教えてくれというならともかく
コード丸投げするなら「あいているセル」とか「別シートに貼り付ける」とか曖昧なこと書かれても
エスパー以外はコードを書けない。

「20歳と30歳の人には、同行D列に"B"を入力する」とか
「同ブックのSheet2の2行目から、A列:氏名/B列:年齢でデータをコピーする」などと
明確な条件を出すか、ブック(シート)自体に「ここに"B"と入れたい」とかのコメントを付けて
ブックごとUpするとかしなくちゃ、具体的にどうしたいのか伝わらないよ。
705名無しさん@そうだ選挙にいこう:2011/10/09(日) 09:38:51.85
>>701
つまり、1月1日生まれの人はその年の12月31日で365日=1年生きたんだから1歳ということ。
翌年1月1日には366日生きたことになり1年+1日になってしまう。うるう年の問題は応当日という
概念で解決することになってる。
706名無しさん@そうだ選挙にいこう:2011/10/09(日) 10:11:20.62
スレ違い
知識の披露は適切なスレでどんぞ
707475:2011/10/09(日) 11:54:22.77
>>704
情報が足りなかったようで申し訳ありません。

20と30の人には同行のD列に"B"と表示させ、
同ブックの「B」と名付けたシートにA列からD列(データが入っているすべての列)を
コピペする。
それ以外の年齢の人は同行のD列に"A"と表示され同ブックの「A」と名付けたシートに
A列からD列をコピペする。
上記を>>492さんがかいてくれたものに追加お願いできないでしょうか??
よろしくお願いいたします。
708名無しさん@そうだ選挙にいこう:2011/10/09(日) 15:13:28.14
Excel2002を使っています。
結合されたセルを選択して、クリップボードのテキストをはりつけ
ようとすると、エラーになり貼り付けができません。

最新のExcelでは、このバグは修正されていますか?
709名無しさん@そうだ選挙にいこう:2011/10/09(日) 15:59:16.25
>>708
セルに貼り付けられるのはセル
テキストを貼り付けられるのはセルのテキスト領域
セルのテキスト領域にテキストを貼り付けるには、セルを編集状態にして貼り付けする

この基本が解っていれば、それはバグではなく単なる使用方法の誤りだと解るはず

例えるなら、ビニールパッケージに入ったノートを買ってきて、パッケージを開けずに
ビニールの上に鉛筆で文字を書こうとして、書けないからこのノートは不良品だと言ってるのと同じレベル
ビニールパッケージは文字を書くべきところじゃなく、ビニールパッケージを開けてノートを開いたところが
文字を書くべきところであるように、セル自体はテキストを貼り付けるべき場所じゃない

Excelの場合、結合されてないセルでは、セルにセルではなく、セルにテキストを貼り付けるという
矛盾が警告や確認すらなく罷り通ってしまうから、それが矛盾だと気付かず当たり前と錯覚して、
結合セルでのエラーをバグだと勘違いする奴が結構居るが、結合セルでのエラーこそが正常な動作で、
非結合セルにおいて矛盾した貼り付けが出来ることが、便利ではあるがイレギュラーなんだと
正しく認識して欲しいね
710708:2011/10/09(日) 17:00:33.01
>>709
うるせーよ馬鹿
711名無しさん@そうだ選挙にいこう:2011/10/09(日) 18:14:12.89
VBA厨だな
まったく嫌味な野郎だ
712名無しさん@そうだ選挙にいこう:2011/10/09(日) 18:23:06.08
でもそれバグちゃうよな
713名無しさん@そうだ選挙にいこう:2011/10/09(日) 19:12:05.50
日本語でおk
714名無しさん@そうだ選挙にいこう:2011/10/09(日) 21:20:41.90
Excelの名前定義機能とか、みんな使ってる?
分かりやすくなるとかメモリ節約になるとかいうけど、計算式を第三者とかが
見たときに、どういう名前定義なのか調べ直さないといけなかったりで、結局は
分かりにくくなる気がするのだけれど。
何より俺の周囲には、名前定義機能なんか知ってる人は全然いなくて、
理解してもらえない。皆はどう?
715名無しさん@そうだ選挙にいこう:2011/10/09(日) 21:33:33.12
【1 OSの種類         .】 Windows 7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

日付が次のように半角スペースで区切られた文字列になっています。
Wed Aug 3  ←1桁の日付は半角スペースが2個
Tue Aug 2
Sun Jul 31

これを8月3日(水)形式にするにはどうすればいいでしょうか?
716名無しさん@そうだ選挙にいこう:2011/10/09(日) 21:47:59.76
>>714
あんまり使わないねえ。
おっしゃるとおり、第三者にはわかりづらいし
自分でも一目で範囲が把握できない欠点がある。

同じ範囲を複数のセルに埋め込んだ関数から
同時参照する場合には使う。
717名無しさん@そうだ選挙にいこう:2011/10/09(日) 22:00:34.92
>>715
今年だったら
=TEXT(RIGHT(A1,6),"m月d日(aaa)")
で出来そう
718名無しさん@そうだ選挙にいこう:2011/10/09(日) 22:23:44.74
>>717
質問者じゃないけど、TEXT関数って第二引数でそんな指定までできるのか!すげえ
719名無しさん@そうだ選挙にいこう:2011/10/09(日) 22:33:07.58
>>717
凄いぃぃぃぃぃ!!
手修正が減ります。
ありがとうございました(ペコッ
720名無しさん@そうだ選挙にいこう:2011/10/09(日) 22:36:30.61
>>718
TEXT関数って、第二引数でそういう指定をするための関数だろ
おまえは今までどういう風に使ってたんだ?
721名無しさん@そうだ選挙にいこう:2011/10/09(日) 22:40:25.89
>>715
他のセルで良い場合
まず関数式
=REPLACE(RIGHT(A1,LEN(A1)-4),4,1,"-")*1
次にそのセルの書式の変更
セルの書式設定→表示形式→ユーザー定義→種類(T):の下をm"月"d"日("aaa")"と入力しOK
722名無しさん@そうだ選挙にいこう:2011/10/09(日) 22:48:36.41
>>714
通常はテーブル主体で使ってるから、構造化参照を利用できるので名前定義する機会は減った。
単票形式で使ってる時は、名前参照しないと$A$6?なんの値だ?ってことになるから名前定義は必須。
723複乳:2011/10/09(日) 22:55:59.62
>>715
=IF(MID(A1,5,3)="Jan","1月",IF(MID(A1,5,3)="Feb","2月",IF(MID(A1,5,3)="Mar","3月",
IF(MID(A1,5,3)="Apr","4月",IF(MID(A1,5,3)="May","5月",IF(MID(A1,5,3)="Jun","6月",
IF(MID(A1,5,3)="Jul","7月",IF(MID(A1,5,3)="Aug","8月",IF(MID(A1,5,3)="Sep","9月",
IF(MID(A1,5,3)="Oct","10月",IF(MID(A1,5,3)="Nov","11月",IF(MID(A1,5,3)="Dec",
"12月",""))))))))))))&TRIM(RIGHT(A1,2))&"日"

改行規制があるので、改行コードは削除してね
724名無しさん@そうだ選挙にいこう:2011/10/09(日) 23:09:59.18
>>717の式は日付が一文字の場合表示が変わらないので勝手に補正すると
=TEXT(RIGHT(A1,LEN(A1)-4),"m月d日(aaa)")
がいいんじゃないかな?

で、>>721は無かったことにしてください。
725名無しさん@そうだ選挙にいこう:2011/10/09(日) 23:10:39.85
>>723
複乳クオリティ健在だな。
726名無しさん@そうだ選挙にいこう:2011/10/09(日) 23:19:57.35
>>723
それだと○月△日なので、やり直し。
727複乳:2011/10/09(日) 23:25:33.12
=IF(MID(A1,5,3)="Jan","1月",IF(MID(A1,5,3)="Feb","2月",IF(MID(A1,5,3)="Mar","3月",
IF(MID(A1,5,3)="Apr","4月",IF(MID(A1,5,3)="May","5月",IF(MID(A1,5,3)="Jun","6月",
IF(MID(A1,5,3)="Jul","7月",IF(MID(A1,5,3)="Aug","8月",IF(MID(A1,5,3)="Sep","9月",
IF(MID(A1,5,3)="Oct","10月",IF(MID(A1,5,3)="Nov","11月",
IF(MID(A1,5,3)="Dec","12月",""))))))))))))&TRIM(RIGHT(A1,2))&"日"&IF(LEFT(A1,3)="Sun","(日)",
IF(LEFT(A1,3)="Mon","(月)",IF(LEFT(A1,3)="Tue","(火)",IF(LEFT(A1,3)="Wed","(水)",
IF(LEFT(A1,3)="Thu","(木)",IF(LEFT(A1,3)="Fri","(菌)",IF(LEFT(A1,3)="Sat","(土)","")))))))

改行規制があるので、改行コードは削除してね
728名無しさん@そうだ選挙にいこう:2011/10/10(月) 00:06:44.19
菌曜日、なんかいいね。
729複乳:2011/10/10(月) 00:15:03.97
金の間違いじゃい!!!
いや聞いておくれよ
最近ピロリ菌の病気になって
ピロリ菌で検索していろいろ調べてたから
「きん」が菌で一番にひっかかってきたってわけ
730名無しさん@そうだ選挙にいこう:2011/10/10(月) 00:32:12.99
727はいいねw
複乳さんらしくて、凄くいいw
731名無しさん@そうだ選挙にいこう:2011/10/10(月) 00:50:36.07
>>729
友達が10年前にピロリ菌を除去したけど
以来、今でも、ピロリ君ってよばれてる。
732482:2011/10/10(月) 04:26:34.09
>>727
くだらん
実にくだらんやり方だ
733名無しさん@そうだ選挙にいこう:2011/10/10(月) 08:21:02.48
>>730
ほんと、初心者らしくて可愛い式だよね

因みに>>727、改行コードは、削除しなくても問題ないよ
むしろ削除しない方がキリが良いところで改行されていて解りやすい

まあこのくらいの単純簡単な式では必要ないことだけど
もっと複雑な式作るようになると、数式もプログラムコードのように
改行とインデントでネスト構造を視覚化したりもするからね

例えば、これもこういうことが必要なほど複雑な式じゃないけど、>>724だと
=TEXT(
   RIGHT(
     A1,
     LEN(A1) - 4
   ),
   "m月d日(aaa)"
 )
なんて具合に

まあ引数1個でも改行するとか、区切り文字だけで1行使い
=TEXT(
   RIGHT(
     A1
     ,
     LEN(A1) - 4
   )
   ,
   "m月d日(aaa)"
 )
とするとか、やり方はいろいろあるし、個人的な好みを言えば、こういうことが必要になるほど
複雑な式組むより、作業セル使ってでも一つ一つの式は複雑にしないのが俺の好みではあるがな
734名無しさん@そうだ選挙にいこう:2011/10/10(月) 09:25:57.42
というわけで短縮した式

=TEXT(DATE(YEAR(TODAY()),MATCH(MID(A1,5,3),{"Jan","Feb","Mar","Apr","May","Jun","jul","Aug","Sep","Oct","Nov","Dec"},0),RIGHT(A1,2)),"m月d日")
735名無しさん@そうだ選挙にいこう:2011/10/10(月) 10:39:58.36
>>724
1桁のときは半角スペースが2個なので717でも大丈夫でした。

>>727
思わず笑っちゃいました。
お大事に。

お二人ともありがとうございました(ペコッ
736名無しさん@そうだ選挙にいこう:2011/10/10(月) 15:15:30.05
>>717より長い時点で、短縮してる意味無いな
>>717にあえて突っ込むなら、可読性の落ちる自動型変換に頼らず
少し長くなってもDATEVALUEで明示的に日付文字列をシリアル値に変換した方が良いってことくらいかな

冗長なのは良くないが、可読性落とすような短縮の仕方も同じくらい悪いやり方だからね
737名無しさん@そうだ選挙にいこう:2011/10/10(月) 16:26:54.47
A1のセルが空欄の時に、別のセルに、
=A1 って式が入っていると、0と表示されちゃうんですが、
=IF(A1="","",A1)ってわざわざ書かないとダメですか?
738名無しさん@そうだ選挙にいこう:2011/10/10(月) 16:38:22.88
>>737
a1のセルに入る物が文字列だったら
=A1&""
としてもOK

後は、自分はあまりすきじゃないけど、
0を表示しないことも可
http://www.relief.jp/itnote/archives/000403.php
739名無しさん@そうだ選挙にいこう:2011/10/10(月) 16:39:35.70
あ、あと条件付き書式で0は白にするとか、表示形式で0を表示しないことにする事も可
740名無しさん@そうだ選挙にいこう:2011/10/10(月) 18:58:31.22
【1 OSの種類         .】WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】否

すいません検索の条件すら検討がつかないんですがデータを置き換え・・というか元にして書き換えたいのですが
エクセルでA列に文言が入っています。例えば りんご
B列にURLアドレスが入っています。(例 http://apple

これをHTTPとして繋げたいのですが構文は以下になります。
<a href="http://apple">りんご</a>

これが数行程度なら手動でも問題無いのですが、数百行を越してしまうためなんとか自動でできないでしょうか?
考えれば考えるほど訳がわからなくなって・・・
741名無しさん@そうだ選挙にいこう:2011/10/10(月) 19:00:05.81
>>740
HTTPとして繋げるとか頭がどうにかなっているようだ

HTTP→HTML形式 です。
742名無しさん@そうだ選挙にいこう:2011/10/10(月) 19:16:13.96
>>740
="<a href="""&B1&""">"&A1&"</a>"
ってこと?
743名無しさん@そうだ選挙にいこう:2011/10/10(月) 20:24:14.99
環境はExcel2010@WindowsXPです。

グラフ作成において「系列の編集」でデータ範囲を選ぶとき、キーボードの↑↓←→を押すと
Excel2003以前では入力ボックス上のカーソル位置が動く仕様であるのに対し
Excel2010ではシートの選択セルが移動する仕様に変わっていますが、これを
2003の仕様に戻す方法はないですか?

データ範囲の指定をキーボードでやりたいときに非常に困るんですよねこれ。
744名無しさん@そうだ選挙にいこう:2011/10/10(月) 20:46:35.46
>>742
そ・・・それです。なんか難しく考えすぎてたようです。
しばらく触ってなかったんで俺一人では回答出なかった気がする。ありがとうございました!
745名無しさん@そうだ選挙にいこう:2011/10/11(火) 09:11:16.00
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 集合 抽出 合計

質問ですが、合計値を先に入力して複数の集合から1つずつ合計値になる数と名称を持ってくるというのは可能でしょうか?

例を挙げますと
A列:果物名称 B列:果物値段
C列:野菜名称 D列:野菜値段
 :    :     :    :

これで、あるセルに合計値を仮に200と入力すると各値段列から1つずつ選び、合計200になる組み合わせがあれば
その名称とともに合計値の下に表示する(複数組み合わせがある場合は全て表示)

もし違うバージョンのExcelでならできるというのであれば、それでも構いませんので教えていただきたいです。
746名無しさん@そうだ選挙にいこう:2011/10/11(火) 10:02:29.92
総当たりでやるとフリーズしそう…
747名無しさん@そうだ選挙にいこう:2011/10/11(火) 10:57:33.23
>>745こんな感じ?
F1に合計額を入力
F2以下に組み合わせを表示

Sub tyusyutu()
Dim Kudamono As Range, Yasai As Range
Dim K_Area As Range, Y_Area As Range
Dim Gokei As Long

Gokei = Range("f1") '合計額取得
Set K_Area = Range("b1:b4") '果物値段の範囲
Set Y_Area = Range("d1:d4") '野菜値段の範囲

For Each Kudamono In K_Area
For Each Yasai In Y_Area
If (IsNumeric(Kudamono) And IsNumeric(Yasai)) Then '数字じゃないときは処理しない
If Kudamono + Yasai = Gokei Then
With Cells(Rows.Count, 6).End(xlUp).Offset(1, 0)
.Offset(0, 0) = Kudamono.Offset(0, -1)
.Offset(0, 1) = Kudamono
.Offset(0, 2) = Yasai.Offset(0, -1)
.Offset(0, 3) = Yasai
End With
End If
End If
Next
Next

End Sub
748名無しさん@そうだ選挙にいこう:2011/10/11(火) 12:43:41.90
よろしくお願いいたします。

【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 教えてもらったコードをコピーしてマクロを作るくらいなら
【4 VBAでの回答の可否】 できれば否

=状況説明=
1.複数のシートで構成されているブックで、最後のシートに表があります。
2.他の各シートでは、多くのセル(合計で1000近く)から最後のシートの表
(その表内のセル)にリンクが張られています。
3. ブックの各シートの内容を編集した後で、最後のシートを削除して、元の
(編集前の)ブックからそのシートを編集後のシートにコピーしました。
4. そうしたら、各シートからのリンクが壊れてしまい、#Refと表示されるようになりました。
5. 各シートのリンクをクリックすると「参照が間違っています」や「参照ファイルを開けません」の
ようなエラーメッセージが出ます。ハイパーリンクを調べると、リンク自体は残っているようです。

このような状況で、すべてのリンクを張り直すには物理的に時間が足りません。壊れた
すべてのリンクを一度に元に戻す方法があったら教えてください。
749名無しさん@そうだ選挙にいこう:2011/10/11(火) 12:56:44.69
>>748
挿入した最後のシートのシート名は?
750名無しさん@そうだ選挙にいこう:2011/10/11(火) 13:24:29.43
>>749
LANGUAGE_TABLE という名前です。
751名無しさん@そうだ選挙にいこう:2011/10/11(火) 14:42:19.77
>>750
ほい

Sub リンク先シート名一括修正()
  Application.Calculation = xlManual
  Application.ScreenUpdating = Flase

  For s = 1 To ThisWorkbook.Sheets.Count - 1
    For Each c In Sheets(s).UsedRange
      c.Formula = Replace(c.Formula, "#REF", "LANGUAGE_TABLE")
    Next
  Next

  Application.ScreenUpdating = True
  Application.Calculation = xlAutomatic
End Sub
752名無しさん@そうだ選挙にいこう:2011/10/11(火) 14:58:53.66
>>751
ありがとうございます。

でも実行するとオブジェクトの定義エラーとなってしまいます。

c.Formula = Replace(c.Formula, "#REF", "LANGUAGE_TABLE")

この行がハイライトされます。シート名は合っています。

どうしたらよいでしょうか。
753名無しさん@そうだ選挙にいこう:2011/10/11(火) 16:46:29.31
>>752
じゃあこっち試してみて

Sub リンク先シート名一括修正()
  Application.Calculation = xlManual
  Application.ScreenUpdating = Flase

  n = ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Name
  
  For s = 1 To ThisWorkbook.Sheets.Count - 1
    For Each c In Sheets(s).UsedRange
      c.Formula = Replace(c.Formula, "#REF", n)
    Next
  Next

  Application.ScreenUpdating = True
  Application.Calculation = xlAutomatic
End Sub
754名無しさん@そうだ選挙にいこう:2011/10/12(水) 00:28:19.51
このスレッドが適切かどうか迷ったのですが質問させて頂きます。

これから就職時の必要スキルのためにOffice(主にExcel)を勉強しようと考えているのですが、
どのバージョンを使うのが良いでしょうか。マクロやVBAを使えるようになりたいと思っています。

現在はWindows XPでOffice 2003を使用しています。基本操作程度のみの利用です。
このまま2003で勉強してよいのか、それとも新しいバージョンにするのか悩んでいます。
勉強は市販の書籍で行なうつもりです。

アドバイス宜しくお願いします。
755名無しさん@そうだ選挙にいこう:2011/10/12(水) 00:39:12.94
マクロやVBAうんぬんは置いといて、とりあえず2003までと2007以降の
両方をまともに使いこなせるようになっておいた方が良い。

ぶっちゃけVBAなんて、そういうのができる派遣社員雇ってやってもらってるから、
正社員目指して就職活動するんならVBAまで勉強しなくて良いよ。
やり始めると果てしないから時間の無駄というか、別の勉強した方が良いんじゃないの?みたいな。
呼吸するくらいに自然に、グラフとピボットが作れるようになれば問題ないと思う。
756名無しさん@そうだ選挙にいこう:2011/10/12(水) 02:45:35.90
>>754
関数や数式の勉強も大切だけど、即戦力を目指すなら2007や2010もある程度は使っておいた方がいいよ
知識だけあっても、画面のデザインやメニューの構成などが大きく変わってて、何がどこにあるのか
まったくわからなくなってるから
いちいち探してたんじゃ仕事にならない
757名無しさん@そうだ選挙にいこう:2011/10/12(水) 11:29:03.15
>>756
それはそうだけど
実際仕事が始まってとまどうのは最初だけ。
1週間もすれば慣れるからそれ(=事前に慣れておくこと)はあんまり重要じゃない。
重要なのはバージョンにかかわらないExcelの根本的な機能を使いこなすこと。
758名無しさん@そうだ選挙にいこう:2011/10/12(水) 12:23:34.78
どのバージョンて変だろ 最新バージョンを勉強するのが当たり前だ
759名無しさん@そうだ選挙にいこう:2011/10/12(水) 12:31:15.72
ショートカットキーあたりはどのバージョンでも共通してたりするから
とりあえずそれ覚えとけば?
760名無しさん@そうだ選挙にいこう:2011/10/12(水) 22:28:20.39
ってか、2007なんか使う必要あるの?
2010で、リボンがカスタマイズ出来るようになったから、2007はクソにしか見えず全く受け付けられん。
あと、仕事用だったら2003を基本に練習した方がよくない?
俺の職場がそうなんだが、職場ではまだ2003しか入っていないPCを使う人がおり、そういう人に対して
配慮するため、2003までの機能しか使わないように俺はしている。
基本を2003で練習し、2010はリボンを徹底カスタマイズして2003よりスムーズな感覚で使えるようにした方がいいかと。
761名無しさん@そうだ選挙にいこう:2011/10/12(水) 23:01:46.33
>>759
それ大事。
ひとつひとつ
右クリ→コピー→右クリ→張り付け
とかやってる人をたまに見かける
762名無しさん@そうだ選挙にいこう:2011/10/12(水) 23:55:19.42
会社のマシンだと、カスタマイズが自由にできない職場ってのもあるし
2003が現役のところもあれば、
いくら 2007がクソでも、それしかないところだってあるんだし
事情はそれぞれだよ

同じ会社でも部署によってバージョンが違うとかザラだよ
Officeのバージョンだけでなく、OSも違うとかね
プリンターの癖もメーカーごと、機種ごとに違うし
結局はみんな知ってないと仕事にならない

と、派遣であちこち行った俺が言ってみる
763名無しさん@そうだ選挙にいこう:2011/10/13(木) 00:37:48.39
'DはIFの参照先の列 HはIF関数の結果を表示をさせる列
Dim MyRow As Long
MyRow = Range("D" & Rows.Count).End(xlUp).row
Range("H2:H" & MyRow).Formula = "=IF関数"

上記のマクロでIF関数をH列にコピーしています。
うまく結果がH列に表示されることもあるのですが、
なぜか、H列にダブルクオーテーションでかこってある関数そのものが
マクロを実行したときに表示されてしまうことがあります。
(H列に”IF関数”←こんな感じで式そのものが表示されてしまう)
どうしたら解消されるのか教えていただけないでしょうか?

ちなみに、上記で使用している表は、その時々によって
H列が最終列だったり、L列やO列まであったりしますが
不具合と関係ありますか?
(もちろんIFの参照先はいつもD列です)
764名無しさん@そうだ選挙にいこう:2011/10/13(木) 00:56:51.77
>>763
H列のセル書式が「文字列」になってるってことはないの?
765名無しさん@そうだ選挙にいこう:2011/10/13(木) 01:14:31.76
>>764
あっ!そうかもしれません!
明日会社にいって確認してみます!!
766名無しさん@そうだ選挙にいこう:2011/10/13(木) 18:34:05.10
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 少しだけ。
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 エクセル コピー マクロ

マクロで作られた表をマクロ無しで数字だけコピーしたいのですが
コピーをするとどうしてもマクロまでコピーしてしまうみたいです。
どうにか数字だけをコピーする必要はありませんか?
767名無しさん@そうだ選挙にいこう:2011/10/13(木) 19:06:35.63
766です
メモ帳経由のコピーでなんとかなりました
ありがとうございました。
768複乳:2011/10/13(木) 21:05:05.19
>>767
どういたしまして。
769複乳:2011/10/13(木) 21:14:28.52
>>768
こらニセモノめが
770複乳:2011/10/13(木) 21:30:41.96
>>769
まあ許してやるか
771名無しさん@そうだ選挙にいこう:2011/10/14(金) 00:59:52.27
excelの2003と2010が入っててデフォルトで
立ち上がるのが2003なんだけど、
2010をデフォルトに変えたい時って
どうすればいい?
772名無しさん@そうだ選挙にいこう:2011/10/14(金) 01:57:42.56
>>771
右クリでプログラム、「選択したプログラムをいつも使う」
773複乳:2011/10/14(金) 18:21:59.03
え?
2010のアイコンをダブルクリックすれば、2010が立ち上がるんじゃないの?
2003しか持ってないから確認できないけど
774名無しさん@そうだ選挙にいこう:2011/10/14(金) 18:44:49.38
おそらく、○○○.xls というファイルをクリックしたときに
どちらが起動されるかということを言ってるんだと思うよ。
要はデフォルトの起動ということかな。
えっと、昔、何度か設定したことあったな・・・・
775名無しさん@そうだ選挙にいこう:2011/10/14(金) 18:47:42.00
なんか、ここに書いてあった。
以前、こんなことしたんだっろか?
http://oshiete.goo.ne.jp/qa/6419349.html
776名無しさん@そうだ選挙にいこう:2011/10/14(金) 19:02:09.86
xlsとかdocとか古いバージョンの拡張子は後からインストールした方が優先で起動する
777名無しさん@そうだ選挙にいこう:2011/10/14(金) 19:05:03.56
775のリンク先を読むと、.docはダメっぽいよ?
778名無しさん@そうだ選挙にいこう:2011/10/14(金) 19:07:25.68
俺のPCだとxlsは2003、xlsxは2007が立ち上がる。
2003と2007だからなのかね?
779名無しさん@そうだ選挙にいこう:2011/10/14(金) 19:08:34.56
>>776
それを変えるのはどうしたらいいの?ってことなんじゃ。

こっちの方がいいかも
http://pcmemorandum.blog93.fc2.com/blog-entry-341.html
780名無しさん@そうだ選挙にいこう:2011/10/14(金) 20:09:50.93
フツーは2003をインスコしてて2010を後からインスコだろ?
デフォで立ち上がるのが2003なんだから、776も779もバカ丸出しってことだな
781名無しさん@そうだ選挙にいこう:2011/10/14(金) 20:19:36.54
>>780
???
おまえだいじょうぶか
782名無しさん@そうだ選挙にいこう:2011/10/14(金) 21:50:25.80
771 2003と2010が入ってて、デフォルトで立ち上がるのが2003なので困ってるんだよね〜

776 古いバージョンの拡張子は後からインストールした方が優先で起動するだよ〜


つまり776は「2010のあとに2003を入れた」とエスパーした。
「それは仕様だから仕方がない」って言いたかった。

だから776はバカ丸出しじゃありますん
783名無しさん@そうだ選挙にいこう:2011/10/14(金) 22:12:12.42
>>781
???
おまえだいじょうぶか
784名無しさん@そうだ選挙にいこう:2011/10/14(金) 22:37:12.30
おまえうまそうだな
785名無しさん@そうだ選挙にいこう:2011/10/15(土) 02:01:12.93
フジテレビデモ
花王デモ
要チェック
786名無しさん@そうだ選挙にいこう:2011/10/15(土) 09:49:18.53
>>771
うまく行ったのかな?
Excelはバージョンが違っても、エントリポイントが一緒なんで
レジストリをいじらないと変えられないとのこと。
だから >>775 >>779 は正しいようだね
マイクロソフトの説明は↓
http://support.microsoft.com/kb/292491/ja%20target=

787名無しさん@そうだ選挙にいこう:2011/10/15(土) 10:33:17.27
つーか、拡張子と実行されるソフトの関係はWindowsの設定であり
Excelとは関係ない話なんだけどね

俺の場合、ダブルクリックでの動作は
xls:2003
xlsx:2010
で、xlsの場合右クリックメニューが
┌───────
│開く
│新規ウィンドウで開く
│Excel2010で開く
│新規作成
│印刷
│PDF印刷
│───────
って感じになってる
788名無しさん@そうだ選挙にいこう:2011/10/15(土) 16:30:25.39
【1 OSの種類         .】 Windows xp
【2 Excelのバージョン   】 Excel 2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

2003で保存のデータを2010にて変換。印刷にて隠しオブジェが印刷されます。
2010印刷プレビューには表示されず。
ただし、「検索と選択」にてオブジェの表示にてオブジェ大量に確認。
これは、仕様でしょうか?件数が大量のため、ひとまず2003インスコしますが、
回避策があればご教授お願いします。
ちなみに、表示させたいオブジェの中にも隠しオブジェがあるので、一括消去は不可です。
789名無しさん@そうだ選挙にいこう:2011/10/16(日) 10:33:23.33
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 excel 小数点 自動

セルA1に482と入力すると、自動的に48.2が入る
セルA2に5492と入力すると、自動的に54.92が入る
セルA3に2940と入力すると、自動的に2.940が入るように設定するには
どのようにすれば良いのでしょうか?
790名無しさん@そうだ選挙にいこう:2011/10/16(日) 10:38:35.52
>>789
vba使わなかったら無理ぽ。
791複乳:2011/10/16(日) 11:51:04.62
2940はどうして29.40にならないんだ
792名無しさん@そうだ選挙にいこう:2011/10/16(日) 13:40:51.11
789って、どんな用途なんだろう?
482を入力して自動的に48.2になったら気持ち悪い
793名無しさん@そうだ選挙にいこう:2011/10/16(日) 13:44:26.78
>>791
確かに。見逃してた。
しかし、1130と入れて11:30としたいです。の方が、まだ趣旨が分かるなあ
794名無しさん@そうだ選挙にいこう:2011/10/16(日) 13:53:32.20
>>792
少し前までその気持ち悪いことが起こっていた私が通りますよっと。

原因はファイル→オプション→詳細設定→小数点位置を自動的に設定で入力単位が0以上の値が
入っていたのが原因なんだけどね。>>789にはちょっと使えなさげ。
795789:2011/10/16(日) 13:54:30.17
>>790
やっぱりそうですか…
ありがとうございました
796名無しさん@そうだ選挙にいこう:2011/10/16(日) 14:03:30.61
>>791
何でそう思ったの?
上から 1/10、1/100、1/1000って意味でねーの?
797複乳:2011/10/16(日) 14:10:53.46
入力セルと結果表示セルを別にすればいいだけの話だね
798名無しさん@そうだ選挙にいこう:2011/10/16(日) 14:24:02.30
>>797
多分、みんなそれは気付いてる。
799名無しさん@そうだ選挙にいこう:2011/10/16(日) 14:28:35.95
データ入力が大量にあると、符号とか小数点とか入れるのが面倒になってくる
これ実話な

決まったパターンがあるんなら手を抜く方法はあるんだけど、>>789は今のところ法則が確定してない
800名無しさん@そうだ選挙にいこう:2011/10/16(日) 14:55:53.04
データ入力に慣れると、符号とか小数点とか入れるのが面倒じゃなくなってくる
これ実話な

初心者のうちは面倒に感じるが、それは実数の場合、
「カタカタ、タン、カタカタ」と、「整数、小数点、整数」と、3息で入力するから。
慣れると「カタカタカタカタ」と、「実数(小数点を含む数値)」の1息入力が出来るようになり、
そうなると面倒さなんて感じない。

俺は数値を入力しまくる仕事とかしたことないから、そのレベルに達するのに10年かかったが
たぶん事務の姉ちゃんとかは、数ヶ月でそのレベルに達してると思うぞ。
801名無しさん@そうだ選挙にいこう:2011/10/16(日) 17:02:38.89
Ecxelについて質問です。本文が長すぎと出た為、テンプレ省かせてください。
数字を入力するだけで関数や式のある部分へ組み込んだりはできないでしょうか?
=VLOOKUP(72;'Sheet1'.A2:P130;5;0)のような場合
72の部分をセルに72と打っただけで組み込みたいのですが。
もしくは、='Sheet1'.E26の中の26を26と打つだけでそうしたいのですが。
つまり、他のページのある部分を簡単に移したいのですが
移す先のセルが飛び飛びで番号もバラバラな為、オートフィルタが使えないのです
どうしたらいいでしょうか?
802名無しさん@そうだ選挙にいこう:2011/10/16(日) 17:36:39.78
>>801
その書き方はオープンオフィス?

マイクロソフトであれば、普通にe26とかすればよさそう。
というか、indirectを使いたいケースなのか?よく分かんないけど。
803名無しさん@そうだ選挙にいこう:2011/10/16(日) 17:37:24.70
>>801
テンプレは省略しても良いが、必要情報は省略するな
「WinXP SP3、Excel2003 SP3、VBAは可ですが自分では書けません」
程度で良いから必ず書け

つーか、2レスに分けたって良いんだからさ

で本題だが、それはVBA使うか、作業セル使わないと無理だ
作業セル使うなら
A1=INDIRECT("Sheet1!E"&B1)
B1=26
で、A1は「=Sheet1!E26」と同じ結果になり、B1に「30」と入れれば「=Sheet1!E30」と同様になる
VBAならWorksheet_Changeイベントで「Target.Formula = "=Sheet1!E" & Target.Value」だが
EnableEventsの設定とか、範囲指定とか、入力された値の判定と例外処理とか必要になる

因みにセルが飛び飛びでも、規則性さえあればオートフィル(オートフィルタじゃないよ)は使えるよ
804名無しさん@そうだ選挙にいこう:2011/10/16(日) 17:47:08.59
>>802
はい、オープンオフィスで開いています
別のシートなので='Sheet1'の部分を省略したかったのです
>>803
ごめんなさい&回答ありがとうございます
XPSP3で普段Openoffice3.2.1で開いていますが、MicrosoftのExcelも使えます
VBAは使えません
作業セルを使って試してみます!
805801:2011/10/16(日) 17:52:10.81
>>803
オートフィルですか恥ずかしいです
規則性はまったくないので、作業セル作ってきます!
806名無しさん@そうだ選挙にいこう:2011/10/16(日) 23:54:56.86
Excel2007の条件書式の書き方について教えてください
たとえば
C3=1 のとき B3〜F3(B3,C3,D3,E3,F3)のセルを青くする
C4=2 のとき B4〜F4(B4,C4,D4,E4,F4)のセルを赤くする
としたい時、
条件部分と範囲にはどう表記すればいいんでしょうか
807名無しさん@そうだ選挙にいこう:2011/10/17(月) 00:05:34.01
>>806
B3〜F3を選択して、「数式が」「=$C$3=1」で塗りつぶしを青
B4〜F4を選択して、「数式が」「=$C$4=2」で塗りつぶしを赤
…でいいんじゃないかと

条件付き書式は、
どこがどういうときに「どこを」どうする、ってんじゃなくて、
どこがどういうときに「自分(自セル)を」どうする、って指定するものだよ
808名無しさん@そうだ選挙にいこう:2011/10/18(火) 01:48:35.83
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 excel 集計 件数 ピボット

10/17 りんご
10/17 りんご
10/17 みかん
10/18 りんご
10/18 メロン
10/18 スイカ
10/18 スイカ
10/19 メロン
10/19 メロン
10/19 メロン

以上のようなデータから(実際にはC列以降に販売数量等あるイメージ)
10/17 2
10/18 3
10/19 1
のように日付ごとの商品数を集計するにはどうすればよいでしょうか。
一旦ピボットで銘柄ごとに1行出るようにしてから、日付ごとの行数を数えるようにしていますが、もっとマシな方法無いでしょうか。
809名無しさん@そうだ選挙にいこう:2011/10/18(火) 02:40:24.26
よろしくお願いします。
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 否
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 エクセル 分布図 座標 など

A列に点の名称、B列にx、C列にy数値を入力してあります。
プロットエリアで(xn,yn)座標の点にマウスカーソルを合わせると、
系列1 要素"xn" (xn,yn)
とポップアップされます。
この系列1の部分または要素xnの部分を、A列に入力してある名称にするには
どうすればよいでしょうか。

データが多いため、データラベルとして表示ではなく、点をポイントしたときの
ポップアップだけ名称表示が希望です。
810名無しさん@そうだ選挙にいこう:2011/10/18(火) 11:00:36.69
>>809
グラフを右クリック、データの選択で「横(項目)軸ラベル」にA列を設定
811名無しさん@そうだ選挙にいこう:2011/10/18(火) 12:35:20.72
すみません教えてほしいのですが二つのエクセルのデータがあるとします。
エクセルデータ1が例えばA列にりんご、みかん、なし…などを入力していてB列に100円、80円、100円…と入力しています。
それでエクセル2のデータにはA列に果物の名前しか入力されていなくてB列に値段が入力されていません。さらにエクセル1にない果物の名前も混ざっています。
それでエクセル1の果物の値段をエクセル2に正しく移行させたいのですがいい方法はないでしょうか?
わかりにくい日本語ですみません
812名無しさん@そうだ選挙にいこう:2011/10/18(火) 13:05:31.04
>>811
Vlookup関数でいいんじゃないの
データ1にない項目はN/A表示になるけど
813名無しさん@そうだ選挙にいこう:2011/10/18(火) 15:59:30.35
>>808
あなたが書いたデータが
A2セルから入っているとします。
(A2セルは10/17, B2セルはりんご 以下同様)

C列のC2セルに 
=IF((A2=A1)*(B2=B1),0,1)
と入れ、下にコピーすることで、Cの列には
日が同じ場合、最初の賞品だけが1
他の賞品の場合は0という値が入りますので
日付ごとに、C列を集計すれば結果が求まります。

なお、日付・商品で並び替えがされていることを前提としてます。
もっと良い方法あるかもですが。
814名無しさん@そうだ選挙にいこう:2011/10/18(火) 16:00:14.57
>809です。
>810様の方法を試したいのですが、グラフ→元のデータ→系列タブ内に
□項目軸ラベルに使用
という項目自体がありません。なぜでしょう??
815名無しさん@そうだ選挙にいこう:2011/10/18(火) 16:00:16.28
【1 OSの種類         .】 WindowsVista ビジネス
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 エクセル メニュー リンクの設定 隠す

お願いします。
エクセルの[編集]-[リンクの設定]を隠すことはできるでしょうか?
ネットワーク越しに使うのですが、誰かが別のPCからこのファイルをつかっても
[リンクの設定]を見えないようにしたいのですが可能でしょうか?
また、これらはそのファイルに対してだけ有効で、別のファイルを開いた際は
[リンクの設定]は見えてほしいです。

よろしくお願いいたします。
816813:2011/10/18(火) 16:01:43.57
>他の賞品の場合は0という値が入りますので
=>同じ商品の場合は・・・・

に訂正
817813:2011/10/18(火) 16:09:31.47
>>808
一番上のデータのC列だけは、式でなく強制的に1を入れたほうがいいかも。
(分かるかと思って、はしょっちゃいました)
818名無しさん@そうだ選挙にいこう:2011/10/18(火) 17:45:43.94
>>812
サンクス!
助かった
819名無しさん@そうだ選挙にいこう:2011/10/18(火) 20:18:25.62
>>808
ピボットで銘柄項目を削除すりゃいいじゃん
項目は日付のみでピボット作る
820名無しさん@そうだ選挙にいこう:2011/10/18(火) 21:50:49.68
どなたかわかる方お願い致します。

【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Excel、グラフ、タイトル

年間売上のデータのうち、特定の顧客(TOP数社)の
月別売上のグラフを作成しました。
同じ書式のグラフを複数作成しましたが、グラフの右下部分に
「年度」のテキストを追加で挿入したいです。
作成したグラフすべてに一括で同じ処理をする方法はありますでしょうか?
821名無しさん@そうだ選挙にいこう:2011/10/18(火) 23:15:11.93
>>820
「右下」だけでは、グラフとの正確な位置関係がわからないことにはなんとも
VBAでテキストボックスを重ねるのが一番汎用性が高いかな
822820:2011/10/18(火) 23:22:43.61
>>821さん
「右下」はグラフの右の下あたりです。
グラフのラベルや凡例の邪魔にならない場所であれば
助かります。
上部にはタイトルが入っているので、右下か下部中央に
追加挿入できれば助かります。
823名無しさん@そうだ選挙にいこう:2011/10/19(水) 06:46:49.48
>>821が言ってるのは、その右下ってのが、右下角合わせなのか、マージン取るなら
右端から何ピクセル、下から何ピクセルのマージン取るのか、
どのくらいのマージン取れば、ラベルや凡例と干渉しないのかとか、そういうことだろ

                  │                        │                        │
                  │              ┏━━━┓│          ┏━━━┓    │
          ┏━━━┓              ┃ 年度 ┃│          ┃ 年度 ┃    │
          ┃ 年度 ┃              ┗━━━┛│          ┗━━━┛    │
─────┗━━━┛      ─────────┘      ─────────┘

>>820のようなことはVBAでしか出来ないが、VBAはそういう細かい仕様が明確にならないと
コードを書けないからね

VBAでもラベルや凡例の位置サイズは取得できるが、それを取得して干渉しない位置を
算出してなんて、面倒すぎて金貰わなきゃ誰もやらないレベルだし
824名無しさん@そうだ選挙にいこう:2011/10/19(水) 10:15:09.44
【1 OSの種類         .】 Windows7 Home Premium
【2 Excelのバージョン   】 Office2010のExcel
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 excel 日にちのみ列挙 日曜日 赤
セルA1に西暦4桁、セルB1に月数を入力すると、
セルA2に1、セルA3に2、セルA4に3、〜セルA32に31と日にちのみがA列縦に列挙されて、
土曜日は青色、日曜日は赤色の文字色で自動表示させたいのですが、
作業用セルを使わず関数のみで完結するにはどうすればいいでしょうか?
825名無しさん@そうだ選挙にいこう:2011/10/19(水) 12:29:16.82
>>824
文字色を操作する関数はないので関数のみで完結というのは出来ません。<(_ _)>
826名無しさん@そうだ選挙にいこう:2011/10/19(水) 14:12:41.50
条件付き書式で
=TEXT(DATE($A$1,$B$1,A2),"aaa")="日"
適用先:$A$2:$A$32
827 ◆Excel/qRkM :2011/10/19(水) 16:57:07.81
>>824
条件付き書式で、
=WEEKDAY(DATE($A$1,$B$1,$A2),2)=7 書式を赤
=WEEKDAY(DATE($A$1,$B$1,$A2),2)=7 書式を青

範囲は$A$2:$A$32
828827:2011/10/19(水) 16:58:11.10
>>824
間違えた。

条件付き書式で、
=WEEKDAY(DATE($A$1,$B$1,$A2),2)=7 書式を赤
=WEEKDAY(DATE($A$1,$B$1,$A2),2)=6 書式を青

範囲は$A$2:$A$32
829名無しさん@そうだ選挙にいこう:2011/10/19(水) 19:05:05.20
マクロを実行するために、図形の額縁を使ってます。
http://s2.gazo.cc/up/s2_0678.png

2003のときは線が細く、フォントもMSゴシックで見やすかったのに
2007にしたら線が太く、ボタンの色も濃い目の青、フォントも
数字がCalibriで違和感があり見づらくなりました。

2007のデフォルトを、2003のように設定するにはどうすればいいですか?
830824:2011/10/19(水) 19:45:22.64
>>825-828
お応えありがとうございます
しかし条件付き書式がうまく使えず
望みどおりにはなりませんでした
もっと勉強し使えるようになるまで手打ちで対応します
831名無しさん@そうだ選挙にいこう:2011/10/19(水) 21:11:16.00
【1 OSの種類         .】 Windows ビスタ
【2 Excelのバージョン   】 Excel 2010
【3 VBAが使えるか    .】 はい・いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Googleやヘルプでの検索キーワード

複数のワークシートのデータをsheet1の指定のセルにコピーするVBAです。
これを「下に10ずつずらしてコピー」を指定した回数だけ繰り返すようにしたいのです。

Sub Sample3()
Worksheets("Sheet2").Range("B3:C5").Copy Worksheets("Sheet1").Range("B2")
Worksheets("Sheet3").Range("B3:C4").Copy Worksheets("Sheet1").Range("E2")
Worksheets("Sheet4").Range("B3:C5").Copy Worksheets("Sheet1").Range("B5")
Worksheets("Sheet5").Range("B3:C4").Copy Worksheets("Sheet1").Range("E5")
End Sub
                      ↓
Sub Sample3()
Worksheets("Sheet2").Range("B13:C15").Copy Worksheets("Sheet1").Range("B12")
Worksheets("Sheet3").Range("B13:C14").Copy Worksheets("Sheet1").Range("E12")
Worksheets("Sheet4").Range("B13:C15").Copy Worksheets("Sheet1").Range("B15")
Worksheets("Sheet5").Range("B13:C14").Copy Worksheets("Sheet1").Range("E15")
End Sub

どのようにVBAを書けばよろしいでしょうか?
よろしくお願いします。
832名無しさん@そうだ選挙にいこう:2011/10/19(水) 21:21:15.96
複乳がヘタなマクロを書いて、VBA厨がダメ出ししてからドヤ顔でマクロを書き自画自賛・・・の悪寒w
833名無しさん@そうだ選挙にいこう:2011/10/19(水) 23:00:16.50
この子、まだ皆に嘲笑された悔しさが収まらないのかw
834名無しさん@そうだ選挙にいこう:2011/10/19(水) 23:35:35.96
833=VBA厨

複乳さんにはレスが付くのにVBA厨は大半がシカトされてる
嘲笑されてるのはVBA厨の方だって気づいてないのかな?
835単乳:2011/10/19(水) 23:48:51.73
こんなんでええんか?

Sub 宿題?()
  指定回数 = 3

  With Worksheets("Sheet1")
    For i = 0 To 指定回数 - 1
      i10 = i * 10
      b30 = "B" & 3 + i10
      Worksheets("Sheet2").Range(b30 & ":C" & 5 + i10).Copy .Range("B" & 2 + i10)
      Worksheets("Sheet3").Range(b30 & ":C" & 4 + i10).Copy .Range("E" & 2 + i10)
      Worksheets("Sheet4").Range(b30 & ":C" & 5 + i10).Copy .Range("B" & 5 + i10)
      Worksheets("Sheet5").Range(b30 & ":C" & 4 + i10).Copy .Range("E" & 5 + i10)
    Next
  End With
End Sub
836名無しさん@そうだ選挙にいこう:2011/10/20(木) 00:03:58.30
>>829
お好みの色や線にしてから、右クリック→「規定値に設定」かな?
今確認できないんで違ったらスマン
837831:2011/10/20(木) 00:44:06.68
>>835
ありがとうございます。
これを参考に自分なりにアレンジしてみます。
838808:2011/10/20(木) 02:53:55.18
>813さん、ありがとう、それ使わせていただきます。
>819さん、それだと日ごとのデータ数では?日ごとの商品の種類の数を知りたいです。

ピボットで一発でできそうでできないのですね。
839名無しさん@そうだ選挙にいこう:2011/10/20(木) 06:48:06.29
>>834
VBA使った回答してるわけでもない奴に訳でもない奴にVBA厨って・・・
840名無しさん@そうだ選挙にいこう:2011/10/20(木) 11:53:50.25
>>838
はい、採用ありがとうございます! うまくいくといいですね。

話違っちゃうけど、集計やデータ処理でマクロを使うレベルになると
Excelより他のソフトの方がずっとやさしくなるので、私は使い分けてます。
841名無しさん@そうだ選挙にいこう:2011/10/20(木) 18:26:58.19
XP Excel2003
散布図を印刷するのに、値の1=1mmとする設定方法を教えて下さい
他の何かのソフトにデータ持っていったほうが簡単ですか?
842名無しさん@そうだ選挙にいこう:2011/10/21(金) 00:13:01.87
Excelのフィルタオプションって、盛り込める抽出条件の数に限界はあるの?
取り敢えず、一つだけのフィールド(会社名)に、「*2ch*」とか名称の条件を
ひたすら縦に並べていくだけで良いのだけれど。
843名無しさん@そうだ選挙にいこう:2011/10/21(金) 00:19:52.51
よろしくお願いします。
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 否
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 ふりがな  など

外国人に日本語を教えるために、エクセルの書式ーふりがなー表示
と設定しました。
ところが、相手がOfficeを持っていないことが判明したので、
オープンオフィスをインストールするように頼んだのですが、
どうやらオープンオフィスのカルクでは、ふりがなが表示されない
ようなんです。

ふりがなを表示させる、良い方法をご存知でしたら、教えてください><

844名無しさん@そうだ選挙にいこう:2011/10/21(金) 03:27:13.44
文章の末尾に"><"を書く人の質問には答える気がしない
845名無しさん@そうだ選挙にいこう:2011/10/21(金) 06:05:09.25
>>843
おまえもOpenOfficeをインストールして、OpenOffice上でふりがなを設定しろ

以上
846名無しさん@そうだ選挙にいこう:2011/10/21(金) 08:06:22.07
847単乳:2011/10/21(金) 11:58:23.95
>>841
まずはそのままま印刷して、理想よりどれぐらい大きいか小さいか調べた上で
グラフの大きさを微調整する

設定で印刷時の大きさを調整するのは無理
848843:2011/10/21(金) 13:54:52.13
お二人の回答、ありがとうございました。

>>845
Open Office はインストールしてみたんですが、ふりがな設定の
方法がわかりませんでした。

>>846
そのソフトをインストールして、そのソフトを使ってファイルを
開いてみたんですが、ふりがなが消えちゃってました。


で、「PDFなら。。!?」って思って、やってみたら、
まぁ、とりあえずの最低条件はクリアできたので、
これでよし とするに至りました。
その後のことは、また考えることにします。
ありがとうございました。
849名無しさん@そうだ選挙にいこう:2011/10/21(金) 16:28:05.04
A@私はBAアイスをCB食べる DC
(私はアイスを食べる )と続けて文にするには、DCのセルに何て式打てばいんでしたっけ?

850名無しさん@そうだ選挙にいこう:2011/10/21(金) 16:47:03.90
>>849
D1に
=A1&B1&C1
または
=CONCATENATE(A1,B1,C1)

851名無しさん@そうだ選挙にいこう:2011/10/21(金) 17:07:31.68
>>850
ありがとうございます。D1でしたね、
Concatenateで範囲選択する時、カンマじゃなくて : や +になってしまう、選択の仕方間違ってる ? A1:C1かA1+B1+C1
852名無しさん@そうだ選挙にいこう:2011/10/21(金) 17:16:17.53
選択,選択,って打って行くしかないのか
853名無しさん@そうだ選挙にいこう:2011/10/21(金) 19:38:24.94
ダミーの行を作ってあとで非表示にしたらどうでしょ。
たとえば、
A1:わたしは B1:今朝 C1:早起きして D1:散歩しました
というのがあり、E1に結果を求めるとすれば
他の行(たとえば2行目)をダミー行にして
A2:=A1&B1
として、右にコピーしていけば、E2:に結果ができるので
それはE2をE1に移しちゃう。そして2行目は非表示にする。

あるいは別なシートか、ずっと下の行にダミー行を作ってもいい。
どでしょ?
854名無しさん@そうだ選挙にいこう:2011/10/21(金) 19:53:08.03
そんな面倒くせーことする必要あるんか?
素直に>>850で十分だろ、バカかw
855名無しさん@そうだ選挙にいこう:2011/10/21(金) 20:02:47.45
3列しかないならね
856名無しさん@そうだ選挙にいこう:2011/10/21(金) 20:09:22.44
3列以上あり、なおかつ同じフォーマットで行数がたくさんある場合だって
最終列の頭に式作ればから行数分下にフィルすればいいだけの話だろ
857名無しさん@そうだ選挙にいこう:2011/10/21(金) 20:42:17.67
列がいっぱいあった時
一つずつ&を打ちながら繋ぐか、あるいは、concatだと、カンマで区切っていく
方法以外に、なんかあったっけ?
858名無しさん@そうだ選挙にいこう:2011/10/21(金) 20:49:08.52
>>857
・半角数字が含まれない。
・すべての漢字がふりがなデータを持っていない。
・ひらがな、半角カタカナ、全角カタカナが混在しない。
などの条件がすべて揃えば、
=PHONETIC(A1:A100)

と出来る、と知恵袋が言っていた。試してみたけど出来るね。スゲー
859名無しさん@そうだ選挙にいこう:2011/10/21(金) 20:52:21.87
>>853
お〜〜
そういうの聞きたいね!
でもやってみたら、全部全角カナになっちゃった・・・
860名無しさん@そうだ選挙にいこう:2011/10/21(金) 20:59:46.29
>>857
>853言っているみたいに、右でも下でもいいけど、左隣のセル&追加のセルという式でコピペしていくのが楽じゃね?
参照元と同じ空きスペース使うけど
861名無しさん@そうだ選挙にいこう:2011/10/21(金) 21:03:47.71
MSもmconcatとか関数作ればいいのにね
862名無しさん@そうだ選挙にいこう:2011/10/22(土) 04:09:13.74
つーか「VBA使え」で終わりじゃん
【4 VBAでの回答の可否】 否
って言ってるわけでもないんだから

それで情報後出しでゴネたら>>3
863名無しさん@そうだ選挙にいこう:2011/10/22(土) 05:29:32.96
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 エクセル 選択 ショートカットキー など

選択範囲の左と上側を変えるショートカットキーを探しています
矩形選択(A1:E5)後、アクティブセルをC3にします
その状態から選択範囲をB1:E5と、A2:E5にするショートカットキーはありますか?
864名無しさん@そうだ選挙にいこう:2011/10/22(土) 08:43:48.51
【1 OSの種類         .】 WindowsXP SP3
【2 Excelのバージョン   】 Office2010のExcel
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 マクロ CSV 整形

テキストファイルのCSVをエクセルに取り込んで、項目ごとに表整形したいのですが、
どのようなマクロを使えばいいかわかりません。
ネットで検索しても取り込み方や整形方法は出てくるのですが、それが一体となった説明や、
ソースコードがないので、どうにもわからないままです。
このページを見ろとかこのソースコードを使え等ありましたらお教え願います。
865名無しさん@そうだ選挙にいこう:2011/10/22(土) 09:37:06.29
マクロコードってのは、基本的に「探す」ものではなく「書く」ものだよ。
なので、「目的に完璧に合致したコードは何処にありますか?」ではなく
「目的を達するコードを書く上で、何処何処で行き詰まっているので、
この部分はどう書けば良いですか?」と聞くのが正解。

で、マクロってのは特別な制御をしない限り、上から順に実行されるので
取り込み方と整形方法が個別に解っているなら、それを上から順に書くだけだよ。

その上で解らない部分があるとすれば、整形の対象範囲と、データの取込先を
一致させる部分くらいだろうが、外部データの取り込みでやるなら引数のDestinationで
取込先を指定するから、それと整形対象範囲を同じにすれば良い。
CSVを新規ブックとして取り込むなら、Openメソッドの戻り値がCSVファイルの
ブックオブジェクトだから、それの.Sheets(1).UsedRangeがデータ範囲なので、
それを整形の対象にすれば良い。

それ以外に解らない部分があるなら、解る部分のコードを書いた上で、
「この部分でこういうことをしたいがどうすれば良いか解らない」と具体的に質問しよう。
866名無しさん@そうだ選挙にいこう:2011/10/22(土) 09:51:59.02
>>865
実際戻り値とか文字コードや変数などチンプンカンプンで解らないのです。
CSVの取り込みが1だとすれば、表として整形するのが10で、
1から10までの仕組みが全くわかりません。
VBAを書くというのも全く理解の範囲外なので、本当に初心者と書けばよかったです。
出来れば1から10までの方法を教えてもらえると助かります
867名無しさん@そうだ選挙にいこう:2011/10/22(土) 09:57:21.93
ハァ?

>【3 VBAが使えるか    .】 はい
って答えてるくせに。
ゼロから教えるスレじゃないんだよ、とりあえず本屋か図書館行って
VBA入門書ゲットしてこい。それ読んだ後の話だろうが。
868名無しさん@そうだ選挙にいこう:2011/10/22(土) 10:15:11.44
何を怒ってるんだか。
マクロボタンをクリックする=使える

ゆえに
【3 VBAが使えるか    .】 はい

そんなに難しい日本語じゃないと思いますよ。
869名無しさん@そうだ選挙にいこう:2011/10/22(土) 10:30:10.24
>>839
"VBA厨"っていうのは総称じゃなくて、コテハンだよ。
過去ログを読むと出てくる。
このスレだと、>>482>>492だね。
870名無しさん@そうだ選挙にいこう:2011/10/22(土) 10:34:52.20
>>866
教えてもらいたいなら具体的にどんな事をしてもらいたいか書いてください。
A列の数値を○○したい、とか。
表をきれいにしたい、と言われてコードを書ける人間は存在しません
871名無しさん@そうだ選挙にいこう:2011/10/22(土) 11:00:30.45
どなたか863お願いします
無いですかね
872名無しさん@そうだ選挙にいこう:2011/10/22(土) 11:02:47.38
表整形なんて言葉が存在しない上、何を以て整形したことになるかがさっぱりわからん
873名無しさん@そうだ選挙にいこう:2011/10/22(土) 11:08:18.05
次スレから

× 【3 VBAが使えるか    .】

○ 【3 VBAが書けるか    .】

とすべきかな?
874名無しさん@そうだ選挙にいこう:2011/10/22(土) 11:12:05.62
次スレから
× 【3 VBAが使えるか    .】
○ 【3 VBAが書けるか    .】
とすべきかな?
875名無しさん@そうだ選挙にいこう:2011/10/22(土) 11:13:01.56
>>871
ヒントだけ貰えば自分で書けるというならまだしも、丸投げするなら、
「整形したい」という曖昧なものではなく
どういうデータを、どういう風に取り込んで、どういう規則で、どういう風に整形したいのか
具体的に書いてくれなきゃ、コード書きようが無い

とりあえず、CSVと、手動で作った欲しい結果のサンプルブックをうpして
整形規則や条件などを事細かに書いてみな

そしたら優しい人がコード書いてくれるかも知れないが
今の状況では、いくら優しい人でもエスパー能力でもない限りコード書けないよ
876名無しさん@そうだ選挙にいこう:2011/10/22(土) 11:15:16.27
まともに動くコードを書いたことがある(コピペ可)
じゃながいしな
877名無しさん@そうだ選挙にいこう:2011/10/22(土) 11:35:42.56
整形なら韓国人に聞けばいいと思う。
国技だからな。
他に売春とかレイプとか歴史ねつ造とかあるが。
878名無しさん@そうだ選挙にいこう:2011/10/22(土) 11:43:30.86
>>871
無いです
879名無しさん@そうだ選挙にいこう:2011/10/22(土) 11:52:37.91
そうだね、「使えるか」って訊き方だからこんな馬鹿が出てくる。
他人が組んだマクロを使ったことしかない人でも、「使えるか」と尋ねられたら「はい」と答えるだろうよw

モジュールを読めるか、とかそういう質問文の方が良いのかな。
回答する側もこういう質問者じゃあどうにも対応のしようがないし…
880名無しさん@そうだ選挙にいこう:2011/10/22(土) 13:17:55.43
VBA厨(コテハン)が珍しく土曜の真昼間に書いてる
今日は雨だから引き篭もってるのか
女のケツばかり追っかけてると そのうち知人にバレるぞ
881名無しさん@そうだ選挙にいこう:2011/10/22(土) 13:23:47.42
レベル高くて説明クドい
そりゃ嫉妬を買いまくるタイプだな
882名無しさん@そうだ選挙にいこう:2011/10/22(土) 13:46:53.81
VBA厨に絡んでるのは奴にダメだしされた奴だろ。
VBA厨もうざいが周りから見たらいつまでもVBA厨VBA厨言って絡んでる粘着嫉妬野郎のほうが余程うざいんだが。
VBA厨はうざいなりに回答してるからまだいいが絡んでる奴は回答してねーから邪魔なだけだし。
883VBA厨:2011/10/22(土) 14:03:46.36
でございます
884名無しさん@そうだ選挙にいこう:2011/10/22(土) 15:03:12.03
>>875
エクセル上に設定したフォームボタンを押し下げて、
読み込んだCVSのテキストファイルの内容「日付,時間,1000円,個数,品目名」を
エクセルの2シート目に見出しで日付や、時間とつけた列ごとにデータを並べるようなマクロを作成したいです。
マクロの知識は既存の物を使用するぐらいで、手製によるコードの作成は全く無知です
記載で混乱させてしまいすいませんでした。
885名無しさん@そうだ選挙にいこう:2011/10/22(土) 15:07:04.39
>>884
それって職場の上司か誰かから「こういうマクロを組め」って命令されてんの?
あなたのような超初心者がこのスレで回答を得て組んだとしても、メンテする知識がまるで無いから
ほんのささいな問題でも起こってしまったら一切対応できないように感じるんだが…

手動じゃいかんの?どうしても自動化したいん?
886名無しさん@そうだ選挙にいこう:2011/10/22(土) 15:15:57.79
レス早っw
VBA厨さんは1日中チェックしてんの?
887名無しさん@そうだ選挙にいこう:2011/10/22(土) 15:48:02.76
>>885じゃないけど886は携帯に電話して十数秒で応答した奴にも、おまえは1日中携帯画面眺めて着信を待ってるのか?とか言うの?
今は2chのチェックしているスレの新着など設定さえしておけば電話の着信と同じで自動的に音声通知されるから、
PC点けっぱなしで部屋にいればPCの前に居なくても、ましてや1日中チェックというか手動更新繰り返してなくても新着はすぐにわかるよ。
888名無しさん@そうだ選挙にいこう:2011/10/22(土) 18:54:30.61
見ず知らずの人に「おまえ」とか言われて気分が悪いです。
実生活でも目上の人に乱暴な言葉使いなんでしょうね。
889名無しさん@そうだ選挙にいこう:2011/10/22(土) 19:20:49.20
>>884
「エクセルVBA CSV 取り込み」とかでググればいくらでも
実例が出てくるから検索してみ
890884:2011/10/22(土) 19:30:59.02
すいません教えてくれた方、ありがとうございました。
>>889さんの言うとおりググって調べてみます
仕様用途は会社のCSV形式の売り上げデータを、事務処理を早くするため、
テキストで取り込んだ後、マクロでパッと表に整形するツールが欲しかったのですが、
自分で努力しようと思います。
891名無しさん@そうだ選挙にいこう:2011/10/22(土) 19:44:21.10
>>888
ボク、日本語読める?

>>887>>886に対しては「886は」と呼称しており「おまえ」とは一言も言ってない
>>887に出てくる「おまえ」が、例え話の中で挙げた架空の相手への呼称
892名無しさん@そうだ選挙にいこう:2011/10/22(土) 20:23:33.49
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 Excel 2行 1行に 改行 コピー

2行ごとの商品データベースがあるとします。
A1〜A2の2行を、セル内で改行しつつ1行にコピーペーストする方法はあるでしょうか? 

A1に商品名(仮にチョコ)、A2に備考(ビター)
A3に商品名(仮にチョコ)、A4に備考(ホワイト)…

これを別シートのB1に「チョコ(改行)ビター」、B2に「チョコ(改行)ホワイト」みたいに貼りたいです。
1000行ぐらいあるので2行ずつの手作業コピーは避けたいです…。
893名無しさん@そうだ選挙にいこう:2011/10/22(土) 20:35:17.68
>>892
=INDEX(Sheet1!A:A,ROW(A1)*2-1)&CHAR(10)&INDEX(Sheet1!A:A,ROW(A1)*2)
下にコピー

セルの書式は「折り返して全体を表示する」
894892:2011/10/22(土) 20:45:25.92
>>893
すごっ!なんという早さ。
ホントにうまいことセル内改行しつつ1行にまとまってます。
使われたExcel関数のヘルプを見て勉強してきます。
Excel達人はこうもレベルが違うのか…ありがとうございました!
895名無しさん@そうだ選挙にいこう:2011/10/23(日) 02:51:43.05
企業ってどのバージョンのエクセルを使用してる確率が高いのですか?
896名無しさん@そうだ選挙にいこう:2011/10/23(日) 03:42:13.49
>>895
2003までバージョンを最新にしてきたけど、2007は導入を躊躇しているという段階じゃない?
他社とのファイルのやり取りでも.xlsxはほとんど見ない。
897名無しさん@そうだ選挙にいこう:2011/10/23(日) 08:18:41.96
>>896
2007を使用している。
社内では.xlsxや.xlsmを使用しているけど、
2003を使用している企業が多いから
他社へのメールに添付する場合は全て.xlsにして添付しているよ。
898864:2011/10/23(日) 09:32:30.74
昨日の質問の続きになりますが、CSVの取り込みまではグーグルで調べて、
マクロ上でもそのように出来る事を確認しました。
ですが次のファイルを取り込んだ後の処理で、下に例をあげますが

年 月 日 時 分 秒
エクセル上のシートにこのような見出しがあって

年 月 日 時 分 秒
2011 10 23 10 00 00.0
2011 10 23 11 00 00.0
2011 10 23 12 00 00.0
:
:
2011 10 23 18 00 00.0

と表に取り込んで行くマクロ及びコードがわかりません。
コピーでも対処出来ると思うのですが、他の事務作業者でも簡単に扱えるようにしたいという話しなので、
どうにかしてCSV取り込み→表整形が一括で出来るマクロの作成をしたいです。
CSVデータを取り込んだ後の処理についてどなたか教えて貰えませんでしょうか?
899名無しさん@そうだ選挙にいこう:2011/10/23(日) 09:43:42.85
>>895〜897
うちも客先が2003が多いから基本的には、2003。でも、2007も必要に応じて使えるようになっている。
ただ、最近は、2003から、2010を標準にするっていう動きが強いね。
osもwin7を標準にするとかで、ソフトウェア系の検証やってる。

IT系じゃないから少し遅れてる感じだね。
900名無しさん@そうだ選挙にいこう:2011/10/23(日) 10:01:24.84
>>898
動かすだけなら、
1.Excelの使い方を勉強
2.「マクロの記録」でOKな内容。


表整形ってなんだろ??
「,」区切りしたいって意味じゃなさそうだしなぁ...
901名無しさん@そうだ選挙にいこう:2011/10/23(日) 10:18:38.15
> 今日は雨だから引き篭もってるのか
> 女のケツばかり追っかけてると そのうち知人にバレるぞ
こういうの書く子ってさ、相手に嫌味言って相手を貶めているつもりなんだろうけど
第三者から見ると、自分の陰湿さや卑劣さや邪曲さを晒して自分を貶めているだけなんだよね。
902名無しさん@そうだ選挙にいこう:2011/10/23(日) 10:33:02.53
>>898
表整形ってどういう意味?
何をどうしたいのか、分からないからみんな答えられないんだと思うよ。
CSVを取り込むと、基本的には表自体は整っているはずなんだけど。

903名無しさん@そうだ選挙にいこう:2011/10/23(日) 11:00:02.26
904名無しさん@そうだ選挙にいこう:2011/10/23(日) 11:36:43.45
>>898
こんな調子じゃまともなシステムはできないよ。
業務で使うもの、しかも複数の人が使うものは、Excelであっても
業者に金払って作ってもらうのが普通。
そうしないと、不具合が起きた時に貴方の責任になるよ?

悪いことは言わないから、この開発は自分の手に余るということを
依頼人に説明して開発を辞退すべき。
貴方の業務分掌には、システム開発は入ってないんでしょ?
905864:2011/10/23(日) 11:39:53.80
>>902
CSVのテキストファイルをコントロールツールバーで作ったフォームボタンから
読み込ませるまでの処理は良いのですが、そのまま読み込ませると
単にエクセル上の列に無規則に数値が配置されるだけで、
手動で枠を見やすくしたり、間違った項目に表示されている数値を
コピーして移してあげる等しなければなりません。
テキストファイルを読み込んだ後のソースコードにどのように、
シートのA列なりB列の項目に数値を配置するコードを書くのかがわかりません
906美乳:2011/10/23(日) 11:50:38.76
CSVでシートに読み込んで、別のシートにある表から参照すればいいんじゃないの
間違った位置とかにある数値の表示を手動で直すとかは面倒
907名無しさん@そうだ選挙にいこう:2011/10/23(日) 11:54:28.37
>>905
元のCSVがどうなってるか知らんが・・・
例えば日付が20111023のように繋がっているんじゃないの?
2011,11,10,23のようにカンマできっちり区切られてれば普通に
振り分けられて列ごとに入るはずだけどな
908名無しさん@そうだ選挙にいこう:2011/10/23(日) 11:56:49.05
間違った
× 2011,11,10,23
○ 2011,10,23
909名無しさん@そうだ選挙にいこう:2011/10/23(日) 12:04:26.85
>>905
ごめん、それは読み込ませ方が悪いのでは。
そして、もしホントにその状態だとすれば、マクロでは確実に無理。

910名無しさん@そうだ選挙にいこう:2011/10/23(日) 12:41:39.62
>>896>>897
ありがとうございます
911名無しさん@そうだ選挙にいこう:2011/10/23(日) 12:42:20.90
>>899
ありがとうございます
912名無しさん@そうだ選挙にいこう:2011/10/23(日) 12:50:45.65
>>905
あのさ〜質問投げておいて、いろいろアドバイス受けてるのに
返レスのレスポンスが悪すぎだろw
投げた以上張り付いててレス返したらどうなんだ?
913名無しさん@そうだ選挙にいこう:2011/10/23(日) 12:55:00.23
すみません。
晴れてきたのでガイシュツします。
914名無しさん@そうだ選挙にいこう:2011/10/23(日) 12:56:34.54
>>913
遠回しで嫌味な絡み方だね
915名無しさん@そうだ選挙にいこう:2011/10/23(日) 13:38:58.85
>>898
丸投げなら、CSVファイルがどうなっているかを書かなきゃダメですよ。
YYYYMMDD,hhmmss.s みたいになっているのか、
YYYY,MM,DD,hh,mm,ss.s みたいになっているのか など
架空データのcsvファイルをどこかのアプロダにあげてもらえば、誰かヒマな人が
助けてくれると思う。
916864:2011/10/23(日) 13:45:01.71
え〜と
YYYY,MM,DD,hh,mm,ss.sの形式で問題ありません。
1シート目はフォームボタンのシートにして、
読み込ませて2シート目に項目毎の列に数値を配置した表を完成させたいです。
917名無しさん@そうだ選挙にいこう:2011/10/23(日) 16:18:33.52
>>864
今一つやりたい事がわからないんで回答に困るんだけど

>>884
>読み込んだCVSのテキストファイルの内容「日付,時間,1000円,個数,品目名」を
>>916
>YYYY,MM,DD,hh,mm,ss.sの形式で問題ありません。

CSVの形式が違っているような
最新の情報が正しいとすると
YYYY,MM,DD,hh,mm,ss.s,1000円,個数,品目名
ってCSV形式ってことでいいね!

下でマクロがあるWorkbookの2シート目にデータが入るはずだけど
この後どうしたいの?
("C:\TEMP\TEST.CSV"は 実際のCSVに合わせて変更して)

Sub TEST()
Dim CSV As Workbook
Set CSV = Workbooks.Open(FileName:="C:\TEMP\TEST.CSV", Format:=2)
CSV.Worksheets(1).UsedRange.Copy ThisWorkbook.Worksheets(2).Range("A2")
CSV.Close
End Sub
918名無しさん@そうだ選挙にいこう:2011/10/23(日) 16:38:27.98
そもそも、表整形といっているけど、
表=一覧表=明細表=List という意味で使ってないんじゃないのかな。
おそらく、Listではなく、Tableにするのが目的なんじゃないの?
919名無しさん@そうだ選挙にいこう:2011/10/23(日) 16:44:20.57
まあ、申し訳ないけど、「表整形したいんです」とか言っているだけで具体的に指示が出来ていないから、絶対自分の思い通りの表はできないでしょ

>単にエクセル上の列に無規則に数値が配置されるだけで、手動で枠を見やすくしたり、間違った項目に表示されている数値を
コピーして移してあげる等しなければなりません。

こう言っているからテーブルってことじゃないと思うけど
920名無しさん@そうだ選挙にいこう:2011/10/23(日) 17:06:06.21
>>917
>今一つやりたい事がわからないんで回答に困るんだけど

今十個くらいわからんだろ
921917:2011/10/23(日) 17:11:02.63
>>920
するどい突っ込みありがとう(笑)
922名無しさん@そうだ選挙にいこう:2011/10/23(日) 18:29:39.18
自分のカキコにレスするやつって何が楽しいんだか…
923名無しさん@そうだ選挙にいこう:2011/10/23(日) 18:42:12.27
>>922
あんた見たいのが、つれるからじゃないかな
924864:2011/10/23(日) 18:46:48.16
>>917
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_020.html
上記のサイトにCSVファイルの読み取りコードが書かれているのですが、
このソースコード内のどこにワークシートの処理の記載を始めればいいでしょうか?
何から何まですいません。
925名無しさん@そうだ選挙にいこう:2011/10/23(日) 18:49:56.51
>>924
だからそんな初学者レベルで
業務に使うシステムを組もうだなんてやめとけって。
誰も幸せにならないから。
わかる人探して連れてきて作ってもらえ。
926名無しさん@そうだ選挙にいこう:2011/10/23(日) 18:50:02.88
マクロの記録でファイルの読み込みから自分のやりたい整形を完了するところまで
通しで実行して、出来上がったVBAのファイル読み込み部分を選択式にするとか
して改造すればいいんじゃなイカ?
927名無しさん@そうだ選挙にいこう:2011/10/23(日) 18:53:02.70
>>924
悪いことは言わない。ホントにやめとけ。日本語も不自由な奴がマクロを使うのは無理。
そもそもエクセルの機能を使えていないと思われる。
本来なら、マクロじゃなくてもCSVの読取は簡単にできる
928美乳:2011/10/23(日) 18:53:32.54
ワークシートの処理っていっても、何をするのかわかんない。
CSVをシートに取り込めたなら、別のシートからそれを参照すればいいじゃないの。前にも書いたけど。
それがなぜできないのかの説明がないとどうにもならない。
929名無しさん@そうだ選挙にいこう:2011/10/23(日) 19:28:50.97
864の職場には、彼よりエクセルが使える人っていないのかね?
マクロの自動記録をここに貼って、CSVのファイル名が変わっても使えるように
手直しした方がいいんでね〜の?
930917:2011/10/23(日) 19:33:32.96
>>864 >>924
CSVは取り込めた・・・・んで、どうしたいの?

こうも話しが噛み合わないとどうしようもないな。
Excelとかマクロうんぬんの前に、他人に状況を的確に説明できるスキルを身につけなさいよ。

自分も"やめとけ"って意見に賛同する
931名無しさん@そうだ選挙にいこう:2011/10/23(日) 19:40:02.48
思うんだけど、CSV自体を取り込めてないと思うんだよね。
たぶんだけど、全部A列に格納されている・・・んじゃないかな。
それをばらすのを「整形」って言ってるとか。

・・・「データ」の「区切り位置」使え。
932名無しさん@そうだ選挙にいこう:2011/10/23(日) 19:47:59.22
だんだんに、推測のスレッドになってきたな・
次期スレの題名「Excel探偵団」に変えるようかな。
933名無しさん@そうだ選挙にいこう:2011/10/23(日) 19:49:34.83
少し話がズレるが、みんなの職場ではCSVはちゃんと扱えてる?
というのは、俺のところではCSVは「使い勝手の悪いExcelファイル」としか見られて
おらず、カンマ区切りされてるとかそういうことも皆分かっていない。
ExcelでCSVを開いて、そのセルをまんまコピーして貼り付けるというように使われてる。
データ区切り位置の機能で開くことも教えたが、難しがって誰もそれは使わない。
みんな、その辺はちゃんと出来てるのかな。
934名無しさん@そうだ選挙にいこう:2011/10/23(日) 19:50:24.77
関数についてですが、

数学のテストの点数表

番号 氏名 点数
1   斉藤  80
2   山田  60
3   高橋  58
4   伊藤  100
5   加藤  70

順位  氏名  点数
 1   伊藤  100


上の表で、
順位に数字を入力すると、その順位の人の名前と点数が表示されるような表を作りたいのですが
(伊藤さんが100点なので、1と入力すると、「伊藤 100」と表示されるようにしたい。)
どの関数を使いますか?


(わかりにくくて申し訳ないです・・)

935名無しさん@そうだ選挙にいこう:2011/10/23(日) 20:02:52.28
>934
1.上表の番号列の左右どちらかに 順位 列を追加して、rank関数を点数列に対してかけて
順位を出す。
2.下表の氏名、点数にvlookupを入力値対象、上表順位〜点数範囲、検索方法falseにして
設定して入力値に対応した順位の氏名と点数を引く。

ようにすればいいんじゃなイカ?
936名無しさん@そうだ選挙にいこう:2011/10/23(日) 20:03:57.67
>>934
同一順位は「なし」の場合しかできない。

A1〜A5に番号、
同じくB列、氏名、C列点数として、

順位をE1に入力
F1(氏名)
=INDEX(B:B,MATCH($E$1,INDEX(RANK($C$1:$C$5,$C$1:$C$5),),0))
G1(点数)
F1を右にコピー
937名無しさん@そうだ選挙にいこう:2011/10/23(日) 20:24:20.13
>>936も言ってるが、関数だと同一順位というか同一点数が複数有った場合に一つしか返せない。
用途的にそれじゃ困るはずだから、こういうのは一つの結果しか返せない関数ではなく複数の結果を返せるVBAの方が良い。
938935:2011/10/23(日) 20:29:50.15
>936-937
なるほど…実践的だナァ。確かに同一点数だと一つしか返せないんじゃ運用するには
不適よねぇ。
939864:2011/10/23(日) 20:30:23.05
>>930
すいません言い方が間違っていました。
CSVファイルのデータをシート上の各項目ごとに展開したいと言えばよかったでしょうか
処理の流れは
フォームボタン押し下げてファイル指定からCSVファイルを選択
   ↓
読み込んだCSVのデータを別シート(フォームボタンとは別のシート)の見出しのタイトルが付けられた項目ごとに展開
   ↓
表が完成

という流れになります
940名無しさん@そうだ選挙にいこう:2011/10/23(日) 20:36:25.59
>>934
関数で抽出はよくない。
フィルタオプションで簡単だな。
RANKを使うにしても順位の列を作らない方法もある。
941名無しさん@そうだ選挙にいこう:2011/10/23(日) 20:37:36.42
>939
『展開』という用語がぶれそうだけど、「別シート」には既に列名だけがついてて値が
入ってない状態で、CSVには値とともに1行目には「別シート」の列名と同じ名称の列名が
ついているけど異なる順序で並んでる。それを取りこんで、列名を自動的にマッチング
させつつ値のみ「別シート」にインポートする。その後罫線とかを整えて完成させるまでを
マクロ化したいってこと?
942名無しさん@そうだ選挙にいこう:2011/10/23(日) 20:47:55.26
>>939
Sheet1にボタン作って、別シートに読みたいってことはわかったから

一番肝心なCSVのデータはどうなってるの?
分けたい項目ごとにカンマで区切られての?

以上の逆質問にちゃんと答えるか、サンプルでもいいからCSVを
アップするなりしてよ。
943名無しさん@そうだ選挙にいこう:2011/10/23(日) 20:49:54.55
>>939
やっぱり
・・・「データ」の「区切り位置」使え。
944917:2011/10/23(日) 21:16:40.26
>>864 >>939
同じことを表現変えて言ってるだけで なんの説明にもなってない

もう明日上司なりに『自分のスキルでは出来ませんでした』って謝ってしまいな
万が一 何とか完成させたとしても
すこしでも仕様変更や問題あったら どうにも出来なくなるよ
945864:2011/10/23(日) 21:24:15.15
>>942
2011,10,23,21,30,00.0

のような区切りになってます
946名無しさん@そうだ選挙にいこう:2011/10/23(日) 21:39:19.38
もしかしてこれ 巧妙な釣りなのか?
そしておれらは思いっきり釣られてるのか?
947名無しさん@そうだ選挙にいこう:2011/10/23(日) 21:50:34.82
948美乳:2011/10/23(日) 21:54:08.66
>>945
つまり、シート1は

  A   B   C   D   E   F
1 2011 10 23 21 30 00.0

になってるわけだよね。シート2の例えばB2に =sheet1!A1 とかすればいいのではないの?
949名無しさん@そうだ選挙にいこう:2011/10/23(日) 22:20:17.29
しかし、みんな切れずに
大したもんです。
950864:2011/10/23(日) 22:37:22.91
A B C D E F
2011 10 23 21 30 00.0

CSVを読み込んだ際、シート2にこの様な表が作成されるようになればと思ってます。
その際に、CSVを読み込むソース上のどこにsheet1!A1のようなコードを記載していくのかがイマイチわかりません
951名無しさん@そうだ選挙にいこう:2011/10/23(日) 22:47:25.94
こういうこと?

CSVファイルが以下のようになっていることが前提で
1行目:年,月,日,時,分,秒
2行目以降:2011,10,23,10,20,15.0

元ブックのシート1に作ったボタンに以下のマクロを登録
ボタンを押下→CSVを読み込み→元ブックのシート2にコピーされる。


Sub CSV取込()

 Dim CSV As String, WS As Worksheet, WB As Workbook

 Set WS = ActiveWorkbook.Worksheets(2)
 CSV = Application.GetOpenFilename("csvファイル (*.csv), *.csv")
 If CSV = "False" Then Exit Sub
 Set WB = Workbooks.Open(CSV)
 ActiveSheet.Range("A1").CurrentRegion.Copy Destination:=WS.Range("A1")
 WB.Close
End Sub

952864:2011/10/23(日) 23:02:21.05
>>951
年(A1)月(B1)日(C1)時(D1)分(E1)秒(F1)については、
シート2に列のタイトルとして予め記載してあります。
2行目以降とされている2011,10,23,10,20,15.0が1行目からCSVにあり、
それを読み込むとA2、B2と1行ずつ表に配置されていくイメージになります。
953951:2011/10/23(日) 23:08:25.47
>>952
とりあえず試してみたのかな?

CSVの1行目はタイトルがなく値から始まるのなら

上の
ActiveSheet.Range("A1").CurrentRegion.Copy Destination:=WS.Range("A1")

ActiveSheet.Range("A1").CurrentRegion.Copy Destination:=WS.Range("A2")←ここ
に変更すればA2の行以下にデータが入る。
954名無しさん@そうだ選挙にいこう:2011/10/23(日) 23:16:38.79
横からだが>>951>>953さんのコード試したがこれで十分じゃないの?
955864:2011/10/23(日) 23:21:19.87
>>953
出来ました。
度々みなさんにお手数おかけして申し訳ありませんでした。
他補足は自分でもやれそうです。
本当にありがとうございました。
956美乳:2011/10/23(日) 23:55:20.33
めでたしめでたし
957名無しさん@そうだ選挙にいこう:2011/10/24(月) 00:01:33.43
秋の夜長にご苦労様でした。
958864:2011/10/24(月) 18:58:32.27
CSVをエクセルに取り込んだら文字列の後ろに半角スペースがくっ付いており削除したいのですが、
どのようなマクロを使えばいいでしょうか。
959微乳:2011/10/24(月) 19:58:32.96
>>958
trim関数を使いたまえ
960名無しさん@そうだ選挙にいこう:2011/10/24(月) 20:43:15.53
【1 OSの種類         .】 Windows Vista
【2 Excelのバージョン   】 2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】両対数グラフ 二本 excel

散布図を用いて、疑似両対数グラフとして2本以上の線を1グラフの中に引きたいのですが、可能でしょうか。
よろしくお願いします。
961名無しさん@そうだ選挙にいこう:2011/10/24(月) 21:10:02.39
http://www.k1simplify.com/vba/tipsleaf/leaf291.html

このサイトのソースコードを使用してCSVテキストファイルのデータをエクセルシート上に展開させたいのですが、
1行に全部のデータが出力されてしまいます。
10列で1行にした後、2行目にまた10列といった感じデータを表示させたいのですが、
どんなコードを中に挟めばいいでしょうか?
あとテキストファイルのダブルクオーテションとカンマも取り外して配列処理を行いたいです。
962名無しさん@そうだ選挙にいこう:2011/10/24(月) 22:10:57.23
さんざん既出の質問だろうけど、ピボットテーブルのページ生成機能について。
Excel2003なら「ページの表示」、Excel2010なら「レポートフィルターページの表示」で、
ピボットテーブルから多数のシートを作ることができる。それらシート全て(最低50は作る)に
@罫線を引きたい
Aウインドウ枠を固定したい
Bページ設定から、タイトル行・タイトル列を設定したい

@〜Bを上手いことやるには、やっぱりマクロしかないのかね。
マクロでやるにせよ、「ピボットテーブルのページ生成機能から作られたシート」だけを区別して
一斉に処理をかける上手い記述は、あるのでしょうか。
963名無しさん@そうだ選挙にいこう:2011/10/24(月) 22:22:18.81
>>962
>「ピボットテーブルのページ生成機能から作られたシート」だけを区別

どういう風に作りたいのか分からないけど、「selectしたシートのみ」とか「「シート1」の左側にあるシートのみ」とか等の指定は出来るよ。
50シートならマクロだろうねえ。



964名無しさん@そうだ選挙にいこう:2011/10/24(月) 23:14:20.83
A1=10
A2=11
A3=
A4=
A5=
A6=
A7=

こういう状態の場合、
たとえばA8でその上を見て最後にデータが入っているセル(ここではA2)の数値の
プラス1を格納したい場合、関数式としてはどうすればいいのでしょうか?

上記でA6に141と手入力したら自動的にA8が142に変わるようにしたいです。

また数値以外の文字が入っていたらその1月みたいに部分的に数値が入っていても
空白としてみなしたいです。
965名無しさん@そうだ選挙にいこう:2011/10/24(月) 23:48:50.21
>>960
できますよ。
まず、軸の書式設定に対数目盛りがあるのはご存知ですよね。
ということで対数表示はこれを使います。
その前に2軸目の指定をどうやるかですよね。

データは最初から3変数分選んで、これをA、B、Cとしましょうか。
これで散布図を書きます。すると2軸の散布図が描かれますので
表示されているデータを一つクリックして右クリックで「データ系列の
書式設定」を選び「第2軸」を選べばそのデータが2軸目として表示されます。
あとは、グラフで2軸目の「軸の書式設定」を対数目盛に変えれば
できると思います。
966名無しさん@そうだ選挙にいこう:2011/10/24(月) 23:51:47.35
>>960
あ〜、よく読んだら右に軸を追加するなんてなかったですね。
ということは、単に下と左の軸ラベルクリックして「軸の書式設定」で
対数表示を選ぶだけでいけますね。
967960:2011/10/25(火) 00:37:43.92
>>965-966
とても助かりました。有り難うございました。
将来ここの住人になれるようにがんばりたいと思います。
968名無しさん@そうだ選挙にいこう:2011/10/25(火) 00:41:58.97
は〜い頑張ってください
969単乳:2011/10/25(火) 01:17:32.40
>>964
VBAは可?
970下乳:2011/10/25(火) 01:18:25.05
>>964
なんだかよくわからないけど

=IF(ISNUMBER(A7),A7+1,IF(ISNUMBER(A6),A6+1,IF(ISNUMBER(A5),A5+1,IF(ISNUMBER(A4),A4+1,IF(ISNUMBER(A3),A3+1,IF(ISNUMBER(A2),A2+1,IF(ISNUMBER(A1),A1+1,"")))))))
971名無しさん@そうだ選挙にいこう:2011/10/25(火) 02:03:23.13
>>969
可能です
972名無しさん@そうだ選挙にいこう:2011/10/25(火) 02:05:12.39
>>700
行は可変でどんどん増えて行く予定です。
973名無しさん@そうだ選挙にいこう:2011/10/25(火) 13:09:47.78
>>964
=VLOOKUP(MAX(A1:A7)+1,A1:A7,1,TRUE)+1
974名無しさん@そうだ選挙にいこう:2011/10/25(火) 13:36:52.09
エクセル2003なのですが
!!αと打つと最後のαがAと勝手に変換されます。
!αだと打てます。当然αだけだと普通に打てます。
オートコレクトとかではないようですが、何が原因でしょうか?
ちなみに知り合いのパソコンで調べたところ、
エクセル2000も同じようで、エクセル2007だと大丈夫でした。
わかるかた教えていただけますか?
975名無しさん@そうだ選挙にいこう:2011/10/25(火) 14:20:23.94
>>974
いや、オートコレクトの「文の先頭文字を大文字にする」ではないか?
976名無しさん@そうだ選挙にいこう:2011/10/25(火) 14:22:35.18
=LOOKUP(MAX(A1:A7)+1,A1:A7)+1
977名無しさん@そうだ選挙にいこう:2011/10/25(火) 14:44:54.52
>>975
ありがとうございます。
そのとおりでした。
Aはアルファベットのエーとばかり思ってたら
アルファの大文字だったんですね。
!!の後の文字を文の先頭文字と判断するということがよくわからないですが
オートコレクトのその部分のチェックを外したらいけました。
助かりました。ありがとうございました。
978名無しさん@そうだ選挙にいこう:2011/10/25(火) 20:22:40.27
>>964
なんでみんなこれが出来てないの?

=LOOKUP(10^10,A1:A7)+1

これだけでOKやん
979名無しさん@そうだ選挙にいこう:2011/10/25(火) 20:40:42.67
>>978
>>964は質問者や。
980名無しさん@そうだ選挙にいこう:2011/10/25(火) 20:49:59.58
>>979
そんなのは分かってる。回答者が出来ていないから(゚Д゚)ハァ?ってなってるの。
訳わからん式とかしか出てない。こんな簡単なのに
981名無しさん@そうだ選挙にいこう:2011/10/25(火) 20:50:15.88
str関数にCSVのテキストデータを読み込ませて、
セルごとに配置する所まではいいのですが、
「インデックスの有効範囲ではありません」が処理後に表示されてしまいます。
For i = 4 To UBound(str)
Cell(i,j)
J = J + 1
Next i

のような感じで出力してるのですがCell(i,j)の所がデバックで黄色く反転表示になります。
どなたか対処についてお願いします。
982名無しさん@そうだ選挙にいこう:2011/10/25(火) 20:56:54.89
なんか、おっぱいがいっぱいあると聞いてきたんですが
983名無しさん@そうだ選挙にいこう:2011/10/25(火) 21:00:03.92
次スレ立てとけよ
984名無しさん@そうだ選挙にいこう:2011/10/25(火) 21:02:00.37
>>981=>>864 だろうかw
相変わらず質問のしかたが下手糞だね
こんな断片的な情報では誰も答えられないよ
985名無しさん@そうだ選挙にいこう:2011/10/25(火) 21:05:28.88
>>981
シートの指定が曖昧だったりするのが原因な気がするけど
986名無しさん@そうだ選挙にいこう:2011/10/25(火) 23:08:11.28
PROPER関数で特定の単語を例外にしたいんですが
以下のように数値を変換するいい方法ないですかね?

・例
「This Is Greatest Hit'S」 → 「This is Greatest Hit's」 (is と 's の小文字を保持)
987名無しさん@そうだ選挙にいこう:2011/10/26(水) 04:28:44.81
うめ
988名無しさん@そうだ選挙にいこう:2011/10/26(水) 07:47:23.78
>>964
これ、A8=12 となった後、スペースが続き
A15で値が入るとすると A15=13 としたいんじゃないのかな?
だとすると次でどうでしょう

=MAX(OFFSET(A$1,,,ROW()-1,))+1
989名無しさん@そうだ選挙にいこう:2011/10/26(水) 09:04:54.05
990名無しさん@そうだ選挙にいこう:2011/10/26(水) 21:14:39.13
次スレよろ
991名無しさん@そうだ選挙にいこう:2011/10/26(水) 21:32:34.81
992名無しさん@そうだ選挙にいこう:2011/10/27(木) 00:24:01.06
Ubound(str)を用いてFor文でstrのデータを表示させたいのですが、
範囲外領域まで読み込んでしまうみたいで、インデックスの有効範囲ではありませんというエラー出て来てしまいます。
空のstrが出て来たらループ文をやめてしまいたいのですが、
エラーを表示させずに処理を実行する方法はありますでしょうか?
993名無しさん@そうだ選挙にいこう:2011/10/27(木) 00:52:09.99
>>992
もう来なくていいよw
994992:2011/10/27(木) 01:25:17.33
>>993
わかりました。
では今度はどこに行けばいいでしょうか?
995魔乳乳:2011/10/27(木) 03:03:30.97
>>994
on error goto か エラー処理 でぐぐる
もしくは、for unko = 1 to Ubound(str) -1
じゃねーかな。
>>981
cell(i,j)の部分でインデックスの有効範囲〜なんてエラーでたっけ?
でるなら、iが256超えてるかjが65536超えてるかあたりだろう
996名無しさん@そうだ選挙にいこう:2011/10/27(木) 04:43:59.13
>>991
おつうめ
997名無しさん@そうだ選挙にいこう:2011/10/27(木) 10:10:36.57
おつうじ
998魔乳:2011/10/27(木) 14:02:04.56
うめ
999魔乳:2011/10/27(木) 14:02:19.09
おかか
1000魔乳:2011/10/27(木) 14:02:36.81
とろさーもん
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。