質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.99%

  • Excel

    1227questions

    Excelは、マイクロソフト社が開発しているデータ集計や分析を行う表計算ソフトの一つです。文書作成や表計算、資料作成などの多彩な機能を備えており、統合パッケージであるMicrosoft Officeに含まれています。

列を追加したら隣の書式・数式を引き継ぐようにしたい

受付中

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 180

pyoo001213

score 5

仕事で急遽頼まれてしまいましたが、どうしても検索しても見つからなかったため投稿させて頂きます。
今までは抜けている関数を手動で挿入していましたが、自動化をしたいとおもっております。

イメージ説明

画像を載せましたが、列を追加したら隣の書式・数式を引き継ぐようにしたいのですが
可能であればマクロを利用しないで設定することは可能でしょうか?
しない理由としてはxlsxでクライアントにファイルを渡さなければ行けないためです。

最悪、xlsmからxlsxに変更しますので
もし、マクロで可能でしたらこちらもご教示頂ければ幸いです。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

0

①Hをクリックして、列全体をコピー。
②Iをクリックして、コピーしたセルの挿入。
これで、挿入したI列には数式もコピーされます。

但し、挿入前後の式までは変わりませんので、例のような数式には対応できません。
OFFSET()やINDIRECT()で自身のセルからの相対参照の式に変更する必要があります。
多分、こちらの方が本題のような。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

sazi様がおっしゃるように、エクセルの機能や関数だけで、自動でコピーすることは不可能だと思います。
自動となると、VBAでマクロを作る必要がありますが、元のファイルを変更したくない思いと、
複数のユーザーで使用しているエクセルなのかと思いました。
その場合は、エクセルアドインを利用してはと思います。

下の様なコードを作り、アドインで、エクセルを保存して下さい。
保存先を自分で指定するのがポイントです。
保存された、アドインをフーザーに配布して、アドインファイルを開いてもらいます。
イメージ説明
開くと、上の様なメッセージが表示されますが、「マクロを有効にする」を選択すると、
普通のエクセルの様に使用することが出来ます。

動作イメージ
イメージ説明

その後のメンテも、アドインファイルを上書きしてもらうだけなので、便利かと思います。

尚、下のコードは、下にコピーも作ってしまいました。
しかし、このプログラムは、エクセルのオブジェクト構造を理解していないと、
メンテナンスができない難点があります。
sazi様のおっしゃるように、普通のコピー貼り付けが、良いような気がします。

Option Explicit


Public Sub 右に挿入してコピー()
    Dim myRange As Range
    Dim x1 As Long
    Dim x2 As Long
    Dim y1 As Long
    Dim y2 As Long

    Set myRange = Selection

    x1 = myRange.Row
    y1 = myRange.Column
    x2 = x1 + myRange.Rows.Count - 1
    y2 = y1 + myRange.Columns.Count - 1

    If y1 = 1 Then
        Set myRange = Nothing
        Exit Sub
    End If

    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove

    Application.CutCopyMode = False
    Range(Cells(x1, y1 - 1), Cells(x2, y1 - 1)).Copy
    Range(Cells(x1, y1), Cells(x2, y2)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlToRight)).PasteSpecial

    Range(Cells(x1, y1), Cells(x2, y2)).Select

    Set myRange = Nothing

End Sub

Public Sub 下に挿入してコピー()
    Dim myRange As Range
    Dim x1 As Long
    Dim x2 As Long
    Dim y1 As Long
    Dim y2 As Long

    Set myRange = Selection

    x1 = myRange.Row
    y1 = myRange.Column
    x2 = x1 + myRange.Rows.Count - 1
    y2 = y1 + myRange.Columns.Count - 1

    If x1 = 1 Then
        Set myRange = Nothing
        Exit Sub
    End If

    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

    Application.CutCopyMode = False
    Range(Cells(x1 - 1, y1), Cells(x1 - 1, y2)).Copy
    Range(Cells(x1, y1), Cells(x2, y2)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlDown)).PasteSpecial

    Range(Cells(x1, y1), Cells(x2, y2)).Select

    Set myRange = Nothing

End Sub


Public Sub 右メニュー削除()
    On Error Resume Next
    Application.CommandBars("Cell").Controls("挿入&コピペ").Delete
End Sub


Public Sub 右メニュー追加()
    Dim CmdBar As CommandBar
    Dim CmdCtl As CommandBarControl

    Set CmdBar = Application.CommandBars("Cell")
    CmdBar.Reset

    Set CmdCtl = CmdBar.Controls.Add(Before:=1, Type:=msoControlPopup)

    With CmdCtl
        .Caption = "挿入&コピペ"
        With .Controls.Add
            .Caption = "右に挿入してコピー"
            .OnAction = "右に挿入してコピー"
        End With
        With .Controls.Add
            .Caption = "下に挿入してコピー"
            .OnAction = "下に挿入してコピー"
        End With
    End With
End Sub


Public Sub auto_open()

    On Error Resume Next
    Application.CommandBars("Cell").Controls("挿入&コピペ").Delete

    Err.Clear

    Call 右メニュー追加

End Sub

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.99%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    xcodeでの画面サイズ変更方法

    swiftでサンプルコードを写しているのですが、参考書を今まで放置してたのでxcodeのバージョンが違うので画面サイズ変更の方法がわからないです。 simulatorでの表示画面

  • 受付中

    swift3でxibにあるUILabelを別のViewControllerから操作したい

    前提・実現したいこと swift3でiOSアプリを開発しています。 xibにあるUILabelを別のViewControllerから操作したいです。 xibと関連づけているV

  • 解決済

    Blender Game Engineでマテリアルを透過したい

    Blenderでゲーム開発をしようとしているものです。 Blender Renderで透過処理したマテリアルをBlender Gameに反映させたいと思っているのですが、透過でき

  • 解決済

    xcodeのUIButtonの文字が右下に固定されてします

    下記のように、UIButtonの文字が右下に固定されてします xcodeの設定を試して見ても、上手くいきません なぜmこのような現象になったか原因が知りたいです

  • 解決済

    UIScrollViewのStoryboards上でのY座標がおかしい

    UIScrollViewの設定値が、どうしても最上部がマイナス値になってしまいます。 contentOffsetの値を、実行中に y:-56 とかにするとうまく表示されるので

  • 解決済

    ACCESS クエリでの一部重複?の除外方法について

    前提・実現したいこと こんにちは、質問タイトルが適格でないかもしれませんが宜しくお願いいたします。 通販事業をしており、商品の仕入から販売までのデータベースをACCESSの

  • 解決済

    pycharmのpython console部分の色の変更

    プログラムには関係ないんですが・・・ 長時間PCの画面を見てると目が疲れてしまうので、色を変えてみようと思って 色を変更してみたのですが、python consoleの部分の色

  • 解決済

    vb2017でexcel2016操作

    vb2017を使っています。 communityです。 excel2016を開いてセルのデータを読み込みたいと思っています。 参考にしているサイトです。 http://d.

同じタグがついた質問を見る

  • Excel

    1227questions

    Excelは、マイクロソフト社が開発しているデータ集計や分析を行う表計算ソフトの一つです。文書作成や表計算、資料作成などの多彩な機能を備えており、統合パッケージであるMicrosoft Officeに含まれています。